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: Aleix Conchillo Flaqué
Subject: Re: compilation error on Apple M1
Date: Sun, 25 Dec 2022 23:40:56 -0800

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]