Opened 3 months ago
Last modified 12 days ago
#69279 new defect
gpgme @1.23.2 does not build on PPC Tiger, Mac OS X 10.4.11, because of "Undefined symbols"
Reported by: | ballapete (Peter "Pete" Dyballa) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.1 |
Keywords: | ppc tiger | Cc: | |
Port: | gpgme |
Description
libtool: compile: /opt/local/bin/g++-mp-7 -std=c++11 -DHAVE_CONFIG_H -I. -I../../../conf -I../../../src -fvisibility=hidden -I/opt/local/include -I/opt/local/include -DBUILDING_GPGMEPP -Wsuggest-override -Wzero-as-null-pointer-constant -I/opt/local/include -pipe -Os -std=c++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -MT context_vanilla.lo -MD -MP -MF .deps/context_vanilla.Tpo -c context_vanilla.cpp -o context_vanilla.o >/dev/null 2>&1 mv -f .deps/context_vanilla.Tpo .deps/context_vanilla.Plo /bin/sh ../../../libtool --tag=CXX --mode=link /opt/local/bin/g++-mp-7 -std=c++11 -pipe -Os -std=c++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -no-undefined -version-info 26:1:20 -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -o libgpgmepp.la -rpath /opt/local/lib exception.lo context.lo key.lo trustitem.lo data.lo callbacks.lo eventloopinteractor.lo editinteractor.lo keylistresult.lo keygenerationresult.lo importresult.lo decryptionresult.lo verificationresult.lo signingresult.lo encryptionresult.lo engineinfo.lo gpgsetexpirytimeeditinteractor.lo gpgsetownertrusteditinteractor.lo gpgsignkeyeditinteractor.lo gpgadduserideditinteractor.lo gpggencardkeyinteractor.lo gpgaddexistingsubkeyeditinteractor.lo gpgrevokekeyeditinteractor.lo defaultassuantransaction.lo scdgetinfoassuantransaction.lo gpgagentgetinfoassuantransaction.lo statusconsumerassuantransaction.lo vfsmountresult.lo configuration.lo tofuinfo.lo swdbresult.lo util.lo context_vanilla.lo ../../../src/libgpgme.la -L/opt/local/lib -lassuan libtool: link: /opt/local/bin/g++-mp-7 -dynamiclib -arch ppc -o .libs/libgpgmepp.6.dylib .libs/exception.o .libs/context.o .libs/key.o .libs/trustitem.o .libs/data.o .libs/callbacks.o .libs/eventloopinteractor.o .libs/editinteractor.o .libs/keylistresult.o .libs/keygenerationresult.o .libs/importresult.o .libs/decryptionresult.o .libs/verificationresult.o .libs/signingresult.o .libs/encryptionresult.o .libs/engineinfo.o .libs/gpgsetexpirytimeeditinteractor.o .libs/gpgsetownertrusteditinteractor.o .libs/gpgsignkeyeditinteractor.o .libs/gpgadduserideditinteractor.o .libs/gpggencardkeyinteractor.o .libs/gpgaddexistingsubkeyeditinteractor.o .libs/gpgrevokekeyeditinteractor.o .libs/defaultassuantransaction.o .libs/scdgetinfoassuantransaction.o .libs/gpgagentgetinfoassuantransaction.o .libs/statusconsumerassuantransaction.o .libs/vfsmountresult.o .libs/configuration.o .libs/tofuinfo.o .libs/swdbresult.o .libs/util.o .libs/context_vanilla.o -L/opt/local/lib ../../../src/.libs/libgpgme.dylib /opt/local/lib/libgpg-error.dylib /opt/local/lib/libassuan.dylib -Os -arch ppc -Wl,-headerpad_max_install_names -arch ppc -install_name /opt/local/lib/libgpgmepp.6.dylib -compatibility_version 27 -current_version 27.1 -Wl,-single_module Undefined symbols: "strcasecmp(char const*, char const*)", referenced from: GpgME::Key::isRoot() const in key.o GpgME::Key::mergeWith(GpgME::Key const&) in key.o ld: symbol(s) not found collect2: error: ld returned 1 exit status make[4]: *** [libgpgmepp.la] Error 1 make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_gpgme/gpgme/work/gpgme-1.23.2/lang/cpp/src'
In C I's say strcasecmp is in libc…
These seem to be the relevant statements:
/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_gpgme/gpgme/work/gpgme-1.23.2/lang/cpp/src/key.cpp:201: strcasecmp(key->subkeys->fpr, key->chain_id) == 0; /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_gpgme/gpgme/work/gpgme-1.23.2/lang/cpp/src/key.cpp:329: strcasecmp(this->primaryFingerprint(), other.primaryFingerprint()) != 0) {
Attachments (1)
Change History (9)
Changed 3 months ago by ballapete (Peter "Pete" Dyballa)
comment:1 follow-up: 2 Changed 3 weeks ago by barracuda156
Replying to ballapete:
Yeah, it fails.
Did you try reporting this to upstream? https://www.gnupg.org/documentation/bts.html
comment:2 Changed 3 weeks ago by ballapete (Peter "Pete" Dyballa)
Replying to barracuda156:
Did you try reporting this to upstream? https://www.gnupg.org/documentation/bts.html
Yes: https://dev.gnupg.org/T7056. Werner Koch relegated to me a German developer who did not respond. Now easter is over and so are the school holidays. Time for repetition!
comment:3 Changed 3 weeks ago by barracuda156
Maybe this can be ported? https://github.com/muttmua/mutt/blob/1f3da81014914afad4b07086a7d56af9ee32f9aa/strcasecmp.c
Ideally, of course, this should go into legacysupport.
- S. Alternatively, C++ can be disabled, but that will leave some dependents in trouble. (Well, still better than a broken
gpgme
though.)
comment:4 Changed 3 weeks ago by ballapete (Peter "Pete" Dyballa)
According to https://developer.apple.com/documentation/kernel/1579333-strcasecmp strcasecmp()
is in Tiger
… And I also see it declared in string.h
and strings.h
– although put between include guards as neither for _ANSI_SOURCE
nor _POSIX_C_SOURCE
. A manual entry exists as well – but it seems missing from libc
…
comment:5 follow-up: 6 Changed 3 weeks ago by kencu (Ken)
it's also in /usr/lib/libSystem.dylib (check with nm).
So -- bit of a mystery to solve yet.
comment:6 Changed 3 weeks ago by ballapete (Peter "Pete" Dyballa)
Replying to kencu:
it's also in /usr/lib/libSystem.dylib (check with nm).
Yes, nm
, this helps! Was using otool
…
So -- bit of a mystery to solve yet.
Why I am using the wrong tools? I'd presume age, too many other "projects"…
comment:7 Changed 3 weeks ago by barracuda156
comment:8 Changed 12 days ago by ballapete (Peter "Pete" Dyballa)
It built now: gpgme @1.23.2_0 (active) requested_variants='' platform='darwin 8' archs='ppc' date='2024-04-30T12:12:11+0200'
.
The developers seem to be uninterested…
Main.log from PPC Tiger, Mac OS X 10.4.11