guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: compilation error on Apple M1


From: Damien Mattei
Subject: Re: compilation error on Apple M1
Date: Mon, 26 Dec 2022 12:13:05 +0100

Hello Alex and Colin,

i was thinking also at the beginning of an M1 incompatibility but it seems that my system was just missing some libraries:

libiconv (and before gc (garbage collector) ,libunistring,...)

i first use homebrew but each time i use it , it is useless for compiling,and i had also to install the libs from source (i suppose the homeberew lib version do not include headers for dev or something else or put them in non standart locations...)

i cloned the guile at
git clone https://git.savannah.gnu.org/git/guile.git
and compile with

./configure --enable-mini-gmp (because i often have problem to install correctly GMP for any program,not only guile)

and then it missed makeinfo, so i installed texinfo with homebrew this time
and then i continue the 'make' and it worked to compile but now i have
 an error at install i do not understand:

/usr/bin/install -c -m 644 weak-set.h weak-table.h weak-vector.h '/usr/local/include/guile/3.0/libguile'
 .././build-aux/install-sh -c -d '/usr/local/include/guile/3.0/libguile'
 /usr/bin/install -c -m 644 version.h scmconfig.h '/usr/local/include/guile/3.0/libguile'
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-data-hook
 /usr/bin/install -c -m 644 libguile-3.0-gdb.scm /usr/local/lib/libguile-3.0.a-gdb.scm
sed: -e: No such file or directory
make[5]: *** [install-data-hook] Error 1
make[4]: *** [install-data-am] Error 2
make[3]: *** [install-am] Error 2
make[2]: *** [install] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

note: i still have to disable JIT as alex mention it, i will do it at last.

In fact i was using guile 3.0.7. since many years from homebrew but at some point i needed
 libguile.h for testing interaction from guile and C and the opposite like in the examples 
of the site:
https://www.gnu.org/software/guile/manual/html_node/C-Extensions.html

Damien

On Mon, Dec 26, 2022 at 8:41 AM Aleix Conchillo Flaqué <aconchillo@gmail.com> wrote:
Hi Damien,

This looks like a linking issue probably related to how things are installed in your system, not with Guile itself. And the issue seems to be with libiconv. Usually that comes with macOS itself and is located in /usr/lib/libiconv.2.dylib.

Building Guile on M1 is definitely possible and works. I would suggest using Homebrew which already has all Guile dependencies figured out. Actually, I just recently added the Apple Silicon chip fix that Colin mentions to Homebrew as well (https://github.com/Homebrew/homebrew-core/pull/118698), because even if you solve the issue you are currently getting you are going to run into the next one (which is that you need to disable JIT which makes Guile very slow unless you apply that fix).

Also, if you use Guile from Homebrew you will benefit from Guile Homebrew which has all these packages ready to be used: https://github.com/aconchillo/homebrew-guile/tree/master/Formula

Some people dislike Homebrew very much and refuse to install it, so I totally understand if that's the case.

Best,

Aleix

On Sun, Dec 25, 2022 at 3:33 PM Damien Mattei <damien.mattei@gmail.com> wrote:
hello,

on Apple M1 i have this error:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
  CC       libguile_3.0_la-net_db.lo
  CC       libguile_3.0_la-socket.lo
  CC       libguile_3.0_la-regex-posix.lo
  CCLD     libguile-3.0.la
Undefined symbols for architecture arm64:
  "_iconv", referenced from:
      _mem_cd_iconveh_internal in libgnu.a(striconveh.o)
     (maybe you meant: _str_iconveh, _mem_iconveh , _scm_port_acquire_iconv_descriptors , _iconveh_open , _iconveh_close , _mem_cd_iconveh , _str_cd_iconveh , _scm_port_release_iconv_descriptors )
  "_iconv_close", referenced from:
      _iconveh_open in libgnu.a(striconveh.o)
      _iconveh_close in libgnu.a(striconveh.o)
  "_iconv_open", referenced from:
      _iconveh_open in libgnu.a(striconveh.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libguile-3.0.la] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

any idea about this arm64?

regards,
Damien

reply via email to

[Prev in Thread] Current Thread [Next in Thread]