Opened 4 years ago
Last modified 4 years ago
#60798 closed defect
gwenhywfar5: Undefined symbols _strndup — at Initial Version
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.2 |
Keywords: | haspatch | Cc: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), kencu (Ken) |
Port: | gwenhywfar5, legacy-support |
Description
gwenhywfar5 fails to build on 10.6:
/bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/clang-mp-9.0 -pipe -Os -arch x86_64 -Wall -Wall -Wall -no-undefined -version-info 82:0:3 -L/opt/local/lib -Wl,-headerpad_max_install_names /opt/local/lib/libMacportsLegacySupport.dylib -arch x86_64 -o libgwenhywfar.la -rpath /opt/local/lib binreloc.lo gwenhywfar.lo base/libbase.la crypt3/libcrypt3.la crypttoken/libcrypttoken.la cryptmsg/libcryptmsg.la sio/libsio.la os/libos.la parser/libparser.la html/libgwenhtml.la gui/libgui.la sar/libsar.la test_framework/libtestframework.la -lintl -liconv -L/opt/local/lib -lgcrypt -lgpg-error -L/opt/local/lib -lgnutls libtool: link: /opt/local/bin/clang-mp-9.0 -dynamiclib -o .libs/libgwenhywfar.79.dylib .libs/binreloc.o .libs/gwenhywfar.o -Wl,-force_load,base/.libs/libbase.a -Wl,-force_load,crypt3/.libs/libcrypt3.a -Wl,-force_load,crypttoken/.libs/libcrypttoken.a -Wl,-force_load,cryptmsg/.libs/libcryptmsg.a -Wl,-force_load,sio/.libs/libsio.a -Wl,-force_load,os/.libs/libos.a -Wl,-force_load,parser/.libs/libparser.a -Wl,-force_load,html/.libs/libgwenhtml.a -Wl,-force_load,gui/.libs/libgui.a -Wl,-force_load,sar/.libs/libsar.a -Wl,-force_load,test_framework/.libs/libtestframework.a -L/opt/local/lib /opt/local/lib/libintl.dylib /opt/local/lib/libiconv.dylib /opt/local/lib/libgcrypt.dylib /opt/local/lib/libgpg-error.dylib /opt/local/lib/libgnutls.dylib -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64 -framework Security -framework CoreFoundation -install_name /opt/local/lib/libgwenhywfar.79.dylib -compatibility_version 83 -current_version 83.0 -Wl,-single_module Undefined symbols for architecture x86_64: "_strndup", referenced from: _GWEN_Text_strndup in libparser.a(text.o) (maybe you meant: _GWEN_Text_strndup) ld: symbol(s) not found for architecture x86_64
I already added the legacysupport 1.1 portgroup which should have taken care of this but didn't. On the /bin/sh ../libtool
line we can see that /opt/local/lib/libMacportsLegacySupport.dylib is specified. That should invoke libtool and it should pass that on to clang when it invokes it but on the libtool: link:
line legacysupport is not mentioned.
Is this fix to the legacysupport 1.1 portgroup the correct fix?
Index: legacysupport-1.1.tcl =================================================================== --- legacysupport-1.1.tcl (revision 173390) +++ legacysupport-1.1.tcl (working copy) @@ -66,8 +66,8 @@ depends_lib-delete path:lib/libMacportsLegacySupport.dylib:legacy-support depends_lib-append path:lib/libMacportsLegacySupport.dylib:legacy-support - configure.ldflags-delete [option legacysupport.library_name] - configure.ldflags-append [option legacysupport.library_name] + configure.ldflags-delete -Wl,[option legacysupport.library_name] + configure.ldflags-append -Wl,[option legacysupport.library_name] if {![option compiler.limit_flags]} { configure.cppflags-delete [option legacysupport.header_search]
I think this works for this case, but I don't know if it messes up any other use cases.
Note: See
TracTickets for help on using
tickets.