unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* bug#24631: Mac OS X 10.5.8: build error, undefined symbols
@ 2016-10-06 21:07 Jens Bauer
  2017-03-01  9:24 ` Andy Wingo
  0 siblings, 1 reply; 2+ messages in thread
From: Jens Bauer @ 2016-10-06 21:07 UTC (permalink / raw)
  To: 24631

I'm trying to build autogen on Mac OS X 10.5.8.
Building all dependencies goes alright until I'm building guile.
I've built all libraries as static libraries and placed them in /opt, mostly because I don't want gmp to be shared.

Here's my build-recipe. "dlxb" means "download, extract and build", the arguments are passed to configure from package's own build directory:
--8<-----8<-----8<-----
dlxb gmp-5.1.3.tar.bz2 --disable-shared --prefix=/opt
dlxb libunistring-0.9.6.tar.gz --disable-shared --prefix=/opt
dlxb libffi-3.2.1.tar.gz --disable-shared --prefix=/opt

dlxb libatomic_ops-7.4.4.tar.gz --disable-shared --prefix=/opt
dlxb gc-7.6.0.tar.gz --disable-shared --prefix=/opt

dlxb guile-2.0.12.tar.gz --disable-shared --with-libgmp-prefix=/opt --with-libunistring-prefix=/opt --prefix=/opt
-->8----->8----->8-----

Here's the last lines of the output:
--8<-----8<-----8<-----
ranlib: file: .libs/libguile-2.0.a(unistd.o) has no symbols
ranlib: file: .libs/libguile-2.0.a(wctype-h.o) has no symbols
  CCLD     guile
Undefined symbols:
  "_CFRelease", referenced from:
      _libunistring_gl_locale_name_default in libunistring.a(localename.o)
  "_CFLocaleCopyCurrent", referenced from:
      _libunistring_gl_locale_name_default in libunistring.a(localename.o)
  "_CFLocaleGetIdentifier", referenced from:
      _libunistring_gl_locale_name_default in libunistring.a(localename.o)
  "_CFStringGetCString", referenced from:
      _libunistring_gl_locale_name_default in libunistring.a(localename.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [guile] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Failed (guile) 
-->8----->8----->8-----

-As you see, it's a linker error, and it means that the CoreFoundation framework is not linked.
The error might be related to libunistring referencing the mentioned symbols.

I've searched the net and come across only very few similar problems.
This is probably the closest match:
<http://stackoverflow.com/questions/13683581/undefined-symbols-when-trying-to-compile-rtaudio>

When I look at the Makefile in the build directory, I see lines including the CoreFoundation framework:


Makefile:INTLLIBS = -lintl -Wl,-framework -Wl,CoreFoundation
Makefile:INTL_MACOSX_LIBS = -Wl,-framework -Wl,CoreFoundation
Makefile:LIBINTL = -lintl -Wl,-framework -Wl,CoreFoundation
Makefile:LTLIBINTL = -lintl -Wl,-framework -Wl,CoreFoundation

-And in other Makefiles as well, a whole bunch in total.

Here's some relevant output from uname:
uname -m: Power Macintosh
uname -p: powerpc
uname -r: 9.8.0
uname -s: Darwin

-Yes, I'm on a PowerMac, a PowerPC based one; not an Intel based Mac. ;)
The error might show up on Intel based Macs too, though.


Love
Jens





^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#24631: Mac OS X 10.5.8: build error, undefined symbols
  2016-10-06 21:07 bug#24631: Mac OS X 10.5.8: build error, undefined symbols Jens Bauer
@ 2017-03-01  9:24 ` Andy Wingo
  0 siblings, 0 replies; 2+ messages in thread
From: Andy Wingo @ 2017-03-01  9:24 UTC (permalink / raw)
  To: Jens Bauer; +Cc: 24631-done

Hi,

On Thu 06 Oct 2016 23:07, Jens Bauer <jens-guile-bug@plustv.dk> writes:

> I'm trying to build autogen on Mac OS X 10.5.8.
> Building all dependencies goes alright until I'm building guile.
> I've built all libraries as static libraries and placed them in /opt, mostly because I don't want gmp to be shared.
>
> Here's my build-recipe. "dlxb" means "download, extract and build", the arguments are passed to configure from package's own build directory:
> --8<-----8<-----8<-----
> dlxb gmp-5.1.3.tar.bz2 --disable-shared --prefix=/opt
> dlxb libunistring-0.9.6.tar.gz --disable-shared --prefix=/opt
> dlxb libffi-3.2.1.tar.gz --disable-shared --prefix=/opt
>
> dlxb libatomic_ops-7.4.4.tar.gz --disable-shared --prefix=/opt
> dlxb gc-7.6.0.tar.gz --disable-shared --prefix=/opt
>
> dlxb guile-2.0.12.tar.gz --disable-shared --with-libgmp-prefix=/opt --with-libunistring-prefix=/opt --prefix=/opt
> -->8----->8----->8-----
>
> Here's the last lines of the output:
> --8<-----8<-----8<-----
> ranlib: file: .libs/libguile-2.0.a(unistd.o) has no symbols
> ranlib: file: .libs/libguile-2.0.a(wctype-h.o) has no symbols
>   CCLD     guile
> Undefined symbols:
>   "_CFRelease", referenced from:
>       _libunistring_gl_locale_name_default in libunistring.a(localename.o)
>   "_CFLocaleCopyCurrent", referenced from:
>       _libunistring_gl_locale_name_default in libunistring.a(localename.o)
>   "_CFLocaleGetIdentifier", referenced from:
>       _libunistring_gl_locale_name_default in libunistring.a(localename.o)
>   "_CFStringGetCString", referenced from:
>       _libunistring_gl_locale_name_default in libunistring.a(localename.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status

In general, when you build statically, AFAIU you may have to add
additional libs when linking final programs.  Guile itself doesn't use
CoreFoundation, but if unistring does and doesn't propagate that
dependency somehow -- something that is usually handled by libtool, but
I dunno I guess it's not working here -- then in that case you may have
to add additional LDFLAGS when building your final static binary.

I think this is not really a Guile bug so I am going to close it.
Please follow up if you feel like this bug should have some other
resolution.

Andy





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-03-01  9:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-06 21:07 bug#24631: Mac OS X 10.5.8: build error, undefined symbols Jens Bauer
2017-03-01  9:24 ` Andy Wingo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).