Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#55090 closed defect (fixed)

libalkimia fails to link lots of undefined symbols

Reported by: barry-scott (Barry) Owned by: mkae (Marko Käning)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: pixilla (Bradley Giesbrecht), huppmann, tryonlinux (Jordan Tryon)
Port: libalkimia

Description (last modified by mf2k (Frank Schima))

Extract from:

/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_libalkimia/libalkimia/main.log
:info:build /usr/bin/clang++  -pipe -Os -stdlib=libc++ -fno-common -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -Woverloaded-virtual -fno-common -fvisibility=hidden -Werror=return-type -fvisibility-inlines-hidden -Wno-return-type-c-linkage -fexceptions -UQT_NO_EXCEPTIONS -O2 -DNDEBUG -DQT_NO_DEBUG -arch x86_64 -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-headerpad_max_install_names CMakeFiles/alkcompanytest.dir/alkcompanytest_automoc.cpp.o CMakeFiles/alkcompanytest.dir/alkcompanytest.cpp.o  -o alkcompanytest.app/Contents/MacOS/alkcompanytest -Wl,-rpath,/opt/local/lib ../lib/libalkimia.4.3.2.dylib /opt/local/libexec/qt4/lib/libQtCore.dylib /opt/local/libexec/qt4/lib/libQtTest.dylib 
:info:build Undefined symbols for architecture x86_64:
:info:build   "AlkCompany::setExchange(QString const&)", referenced from:
:info:build       AlkCompanyTest::copyCtor() in alkcompanytest.cpp.o
:info:build       AlkCompanyTest::settersAndGetters() in alkcompanytest.cpp.o
:info:build   "AlkCompany::setRecordId(QString const&)", referenced from:
:info:build       AlkCompanyTest::copyCtor() in alkcompanytest.cpp.o
:info:build       AlkCompanyTest::settersAndGetters() in alkcompanytest.cpp.o

Attachments (3)

main.log (192.6 KB) - added by barry-scott (Barry) 7 years ago.
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_libalkimia/libalkimia/main.log
libalkimia-KDE_HAVE_GCC_VISIBILITY-hack.patch (1.8 KB) - added by huppmann 7 years ago.
patch to macports-port 586bfa29 kde/libalkimia
main.2.log (2.1 MB) - added by tryonlinux (Jordan Tryon) 7 years ago.

Change History (16)

Changed 7 years ago by barry-scott (Barry)

Attachment: main.log added

/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_libalkimia/libalkimia/main.log

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Cc: pixilla added
Owner: set to mkae
Port: libalkimia added
Status: newassigned

In the future, please use WikiFormatting, fill in the Port field and Cc the port maintainers (port info --maintainers libalkimia).

comment:2 Changed 7 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:3 Changed 7 years ago by huppmann

this seems to result from the libalkimia objects being built without external linkage; i.e., the symbols aren't "exported". i hacked the Portfile as attached and it builds thus, but it does so by lying to kdemacros.h and telling it that clang is gcc. obviously something more systematic may be required so that other libraries don't have the same issue, but i'm not sure how interested the KDE developers would be in this task, since they've moved on to KDE 5 and the macports stuff is KDE 4

there is some related discussion at https://lists.macports.org/pipermail/macports-tickets/2012-July/115190.html

Changed 7 years ago by huppmann

patch to macports-port 586bfa29 kde/libalkimia

comment:4 Changed 7 years ago by huppmann

Cc: huppmann added

comment:5 Changed 7 years ago by tryonlinux (Jordan Tryon)

Cc: tryonlinux added

comment:6 Changed 7 years ago by tryonlinux (Jordan Tryon)

Is there a way I can add this patch to KmyMoney4? I can't build it because libalkimia fails due to this bug.

I apologize if I shouldn't ask this here, please let me know where I should.

comment:7 Changed 7 years ago by kencu (Ken)

I thought I might fix this for you today, but strangely enough libalkimia installed without issue building with clang-3.9 (10.6.8/libc++) without using this patch. I see the buildbots build it on darwin 11 through 16 so far. So must be more to this question than just this patch...

Changed 7 years ago by tryonlinux (Jordan Tryon)

Attachment: main.2.log added

comment:8 Changed 7 years ago by tryonlinux (Jordan Tryon)

I attached my log it looks like I am building on Darwin_17? Thanks by the way for taking a look at this!

comment:9 Changed 7 years ago by kencu (Ken)

Pull request submitted to maintainers: <https://github.com/macports/macports-ports/pull/972>

comment:10 Changed 7 years ago by tryonlinux (Jordan Tryon)

Thanks Ken!

comment:11 Changed 7 years ago by ken-cunningham-webuse

Resolution: fixed
Status: assignedclosed

In c8ee1373681cd1ea4d37f155e9d94655cfa6e0d9/macports-ports:

libalkimia: force export of visible symbols

requires KDE_HAVE_GCC_VISIBILITY to export
symbols on darwin17 (and later?)
closes: #55090

comment:12 Changed 7 years ago by kencu (Ken)

see also 55104. I pushed this fix through because there were multiple tickets about it recently, and it was holding people up, but the same error is showing up in other kde4 ports, and therefore it is looking for a proper, more comprehensive fix than this.

comment:13 Changed 7 years ago by tryonlinux (Jordan Tryon)

This fixed the liableimia install on High Sierra, which fixed my kMyMoney install. Thanks!

Note: See TracTickets for help on using tickets.