Opened 8 months ago
Last modified 5 months 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 8 months ago by ballapete (Peter "Pete" Dyballa)
comment:1 follow-up: 2 Changed 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months 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 6 months ago by barracuda156
comment:8 Changed 5 months 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