Opened 6 years ago
Last modified 4 months ago
#60078 assigned defect
lftp @4.9.1: Undefined CoreFoundation symbols
| Reported by: | cocobende | Owned by: | Schamschula (Marius Schamschula) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.6.2 |
| Keywords: | mojave | Cc: | |
| Port: | lftp |
Description
Hello.
lftp port build fails on macOS Mojave 10.14.6. Here is the output of the port command:
$ sudo port install lftp ---> Computing dependencies for lftp ---> Fetching archive for lftp ---> Attempting to fetch lftp-4.9.1_0.darwin_18.x86_64.tbz2 from https://packages.macports.org/lftp ---> Attempting to fetch lftp-4.9.1_0.darwin_18.x86_64.tbz2 from http://lil.fr.packages.macports.org/lftp ---> Attempting to fetch lftp-4.9.1_0.darwin_18.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/lftp ---> Fetching distfiles for lftp ---> Verifying checksums for lftp ---> Extracting lftp ---> Applying patches to lftp ---> Configuring lftp ---> Building lftp Error: Failed to build lftp: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_lftp/lftp/main.log for details. Error: Follow https://guide.macports.org/#project.tickets to report a bug. Error: Processing of port lftp failed
Always reproducible, tried to uninstall and clean port, to not avail.
The abovementioned log file is attached to this ticket.
Attachments (2)
Change History (10)
Changed 6 years ago by cocobende
| Attachment: | main.log.gz added |
|---|
comment:1 Changed 6 years ago by Schamschula (Marius Schamschula)
comment:2 Changed 6 years ago by mf2k (Frank Schima)
| Port: | @4.9.1 (net) removed |
|---|
comment:3 Changed 6 years ago by Schamschula (Marius Schamschula)
I cannot reproduce this issue on my Mojave machine with Xcode 11.3.1.
comment:4 Changed 6 years ago by cocobende
Thank you very much for your feedback. I'll reinstall from scratch MacPorts and see if I can reproduce the problem on my side with a fresh install.
comment:5 Changed 6 years ago by cocobende
Hello, it still fails after a complete cleanup and reinstall of MacPorts. Please find attached to this message the full port command logs. The specific error comes in the making of the binary:
/bin/sh ../libtool --silent --tag=CXX --mode=link /usr/bin/clang++ -std=gnu++11 -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -arch x86_64 -Wall -Wwrite-strings -Woverloaded-virtual -fno-exceptions -fno-rtti -fno-implement-inlines -export-dynamic -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -arch x86_64 -o lftp lftp-lftp.o lftp-complete.o lftp-lftp_rl.o lftp-attach.o liblftp-jobs.la liblftp-tasks.la -L/opt/local/lib -R/opt/local/lib -lreadline -lcurses -lresolv -lidn2
Undefined symbols for architecture x86_64:
"_CFArrayGetCount", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFArrayGetTypeID", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFArrayGetValueAtIndex", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFGetTypeID", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFLocaleCopyCurrent", referenced from:
__nl_locale_name_default in libintl.a(localename.o)
"_CFLocaleGetIdentifier", referenced from:
__nl_locale_name_default in libintl.a(localename.o)
"_CFPreferencesCopyAppValue", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFRelease", referenced from:
__nl_locale_name_default in libintl.a(localename.o)
"_CFStringGetCString", referenced from:
__nl_locale_name_default in libintl.a(localename.o)
__nl_language_preferences_default in libintl.a(langprefs.o)
"_CFStringGetTypeID", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
"___CFConstantStringClassReference", referenced from:
CFString in libintl.a(langprefs.o)
"_iconv", referenced from:
__nl_find_msg in libintl.a(dcigettext.o)
"_iconv_open", referenced from:
__nl_find_msg in libintl.a(dcigettext.o)
"_kCFPreferencesCurrentApplication", referenced from:
__nl_language_preferences_default in libintl.a(langprefs.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Any help on how to circumvent this error would be greatly appreciated.
Thanks again.
Changed 6 years ago by cocobende
| Attachment: | lftp_full_logs.txt.gz added |
|---|
comment:6 Changed 6 years ago by Schamschula (Marius Schamschula)
Somehow the Core Foundation is not being linked in. See
https://github.com/shazow/gohttplib/commit/3a1a4d2f3fb22cd82a40f70c9fc4321b70e5e74e
comment:7 Changed 6 years ago by cocobende
Hello.
This link is not much to help me, but please be aware that I've tried to manually install oldest versions of lftp using this doc: wiki:howto/InstallingOlderPort#install and here are the results:
- lftp 4.9.0 -> same error
- lftp 4.8.4 -> build and install were successful
comment:8 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
| Keywords: | mojave added |
|---|---|
| Summary: | lftp @4.9.1 (net) Build fails on Mojave → lftp @4.9.1: Undefined CoreFoundation symbols |
For some reason your build seems to be linking with the static library libintl.a. When you do that, you need to link with everything the static library requires, in this case including the CoreFoundation framework. However, using a static library is unexpected. Normally the dynamic library libintl.dylib should be used. Does libintl.dylib exist on your system?
libintl is part of gettext and there was a huge overhaul of the gettext port after this ticket was last dealt with so the issue may no longer exist. We had successful builds of lftp 4.9.3 on the buildbot machines, including on Mojave. Can you recheck?

I'll have a look on my non-default build machine. I still use Xcode 10.3 under Mojave, as I still consider Xcode 11.x broken.