I've reached my limit in multiple linking on Mac OS X

Bill Hoffman bill.hoffman at kitware.com
Mon Jan 7 15:43:32 CET 2008


Benjamin Reed wrote:
> So a side-effect of OSX's crappy linker is that when you have a
> library specified multiple times on the command-line (-lkdecore
> -lkdecore) it actually tries to mmap them twice when linking, even
> though the resulting binary only has one link (as it should).
> 
> I'm hitting an issue now where it's impossible to link
> libkmailprivate, even with the tricky KDEPIM4_LINK_UNIQUE_LIBRARIES
> macro which deduplicates anything specified in a TARGET_LINK_LIBRARIES
> command:
> 
> ---(snip!)---
> Linking CXX shared library ../lib/libkmailprivate.dylib
> cd /Users/ranger/cvs/kde-mac/compile.build/kdepim/kmail &&
> /usr/bin/cmake -P CMakeFiles/kmailprivate.dir/cmake_clean_target.cmake
> cd /Users/ranger/cvs/kde-mac/compile.build/kdepim/kmail &&
> /usr/bin/cmake -E cmake_link_script
> CMakeFiles/kmailprivate.dir/link.txt --verbose=1
> /usr/bin/c++   -arch i386 -arch ppc -isysroot
> /Developer/SDKs/MacOSX10.4u.sdk
> -B/Users/ranger/cvs/kde-mac/compile.build/kdepim/../bin   -fno-common
> -Woverloaded-virtual -O2 -g -dynamiclib -headerpad_max_install_names
> -single_module -multiply_defined suppress  -L/opt/kde4-deps/lib
> -L/opt/kde4/lib -L/opt/qt4/lib -o ../lib/libkmailprivate.4.0.0.dylib
> -install_name /Users/ranger/cvs/kde-mac/compile.build/kdepim/lib/libkmailprivate.4.dylib
> "CMakeFiles/kmailprivate.dir/kmailprivate_automoc.o"
> "CMakeFiles/kmailprivate.dir/kmmessage.o"
> "CMakeFiles/kmailprivate.dir/kmmainwin.o"
> "CMakeFiles/kmailprivate.dir/configuredialog.o"
> "CMakeFiles/kmailprivate.dir/configuredialog_p.o"
> "CMakeFiles/kmailprivate.dir/simplestringlisteditor.o"
> "CMakeFiles/kmailprivate.dir/identitylistview.o"
> "CMakeFiles/kmailprivate.dir/identitydialog.o"
> "CMakeFiles/kmailprivate.dir/kmfolderdialog.o"
> "CMakeFiles/kmailprivate.dir/kmfoldertree.o"
> "CMakeFiles/kmailprivate.dir/kmfoldercombobox.o"
> "CMakeFiles/kmailprivate.dir/foldertreebase.o"
> "CMakeFiles/kmailprivate.dir/favoritefolderview.o"
> "CMakeFiles/kmailprivate.dir/kmaccount.o"
> "CMakeFiles/kmailprivate.dir/kmheaders.o"
> "CMakeFiles/kmailprivate.dir/headeritem.o"
> "CMakeFiles/kmailprivate.dir/listjob.o"
> "CMakeFiles/kmailprivate.dir/kmcomposewin.o"
> "CMakeFiles/kmailprivate.dir/kmfolder.o"
> "CMakeFiles/kmailprivate.dir/kmmsgpartdlg.o"
> "CMakeFiles/kmailprivate.dir/kmreaderwin.o"
> "CMakeFiles/kmailprivate.dir/htmlstatusbar.o"
> "CMakeFiles/kmailprivate.dir/kmmsgdict.o"
> "CMakeFiles/kmailprivate.dir/kmgroupware.o"
> "CMakeFiles/kmailprivate.dir/folderstorage.o"
> "CMakeFiles/kmailprivate.dir/csshelper.o"
> "CMakeFiles/kmailprivate.dir/actionscheduler.o"
> "CMakeFiles/kmailprivate.dir/messageproperty.o"
> "CMakeFiles/kmailprivate.dir/kmmsgpart.o"
> "CMakeFiles/kmailprivate.dir/kmmsginfo.o"
> "CMakeFiles/kmailprivate.dir/accountmanager.o"
> "CMakeFiles/kmailprivate.dir/kmacctfolder.o"
> "CMakeFiles/kmailprivate.dir/kmdict.o"
> "CMakeFiles/kmailprivate.dir/kmsystemtray.o"
> "CMakeFiles/kmailprivate.dir/kmacctlocal.o"
> "CMakeFiles/kmailprivate.dir/kmfolderdir.o"
> "CMakeFiles/kmailprivate.dir/kmfoldermgr.o"
> "CMakeFiles/kmailprivate.dir/kmfoldernode.o"
> "CMakeFiles/kmailprivate.dir/kmsender.o"
> "CMakeFiles/kmailprivate.dir/kmacctseldlg.o"
> "CMakeFiles/kmailprivate.dir/kmfiltermgr.o"
> "CMakeFiles/kmailprivate.dir/kmsearchpatternedit.o"
> "CMakeFiles/kmailprivate.dir/kmfilteraction.o"
> "CMakeFiles/kmailprivate.dir/kmsearchpattern.o"
> "CMakeFiles/kmailprivate.dir/folderselectiondialog.o"
> "CMakeFiles/kmailprivate.dir/kmfilter.o"
> "CMakeFiles/kmailprivate.dir/kmfilterdlg.o"
> "CMakeFiles/kmailprivate.dir/kmmsgbase.o"
> "CMakeFiles/kmailprivate.dir/kmmsglist.o"
> "CMakeFiles/kmailprivate.dir/kmaddrbook.o"
> "CMakeFiles/kmailprivate.dir/signatureconfigurator.o"
> "CMakeFiles/kmailprivate.dir/xfaceconfigurator.o"
> "CMakeFiles/kmailprivate.dir/networkaccount.o"
> "CMakeFiles/kmailprivate.dir/imapaccountbase.o"
> "CMakeFiles/kmailprivate.dir/kmacctimap.o"
> "CMakeFiles/kmailprivate.dir/kmacctcachedimap.o"
> "CMakeFiles/kmailprivate.dir/kmfawidgets.o"
> "CMakeFiles/kmailprivate.dir/kmfoldermbox.o"
> "CMakeFiles/kmailprivate.dir/kmfolderimap.o"
> "CMakeFiles/kmailprivate.dir/undostack.o"
> "CMakeFiles/kmailprivate.dir/kmfoldercachedimap.o"
> "CMakeFiles/kmailprivate.dir/kmfoldermaildir.o"
> "CMakeFiles/kmailprivate.dir/popaccount.o"
> "CMakeFiles/kmailprivate.dir/kmkernel.o"
> "CMakeFiles/kmailprivate.dir/accountdialog.o"
> "CMakeFiles/kmailprivate.dir/searchwindow.o"
> "CMakeFiles/kmailprivate.dir/vcardviewer.o"
> "CMakeFiles/kmailprivate.dir/vacationdialog.o"
> "CMakeFiles/kmailprivate.dir/vacation.o"
> "CMakeFiles/kmailprivate.dir/sievedebugdialog.o"
> "CMakeFiles/kmailprivate.dir/sieveconfig.o"
> "CMakeFiles/kmailprivate.dir/sievejob.o"
> "CMakeFiles/kmailprivate.dir/kmpopheaders.o"
> "CMakeFiles/kmailprivate.dir/kmpopfiltercnfrmdlg.o"
> "CMakeFiles/kmailprivate.dir/kmmimeparttree.o"
> "CMakeFiles/kmailprivate.dir/mailinglist-magic.o"
> "CMakeFiles/kmailprivate.dir/kmacctmaildir.o"
> "CMakeFiles/kmailprivate.dir/attachmentstrategy.o"
> "CMakeFiles/kmailprivate.dir/headerstrategy.o"
> "CMakeFiles/kmailprivate.dir/headerstyle.o"
> "CMakeFiles/kmailprivate.dir/khtmlparthtmlwriter.o"
> "CMakeFiles/kmailprivate.dir/filehtmlwriter.o"
> "CMakeFiles/kmailprivate.dir/teehtmlwriter.o"
> "CMakeFiles/kmailprivate.dir/objecttreeparser.o"
> "CMakeFiles/kmailprivate.dir/attachmentcollector.o"
> "CMakeFiles/kmailprivate.dir/bodypartformatter.o"
> "CMakeFiles/kmailprivate.dir/bodypartformatterfactory.o"
> "CMakeFiles/kmailprivate.dir/partNode.o"
> "CMakeFiles/kmailprivate.dir/mailsourceviewer.o"
> "CMakeFiles/kmailprivate.dir/kmcommands.o"
> "CMakeFiles/kmailprivate.dir/kmreadermainwin.o"
> "CMakeFiles/kmailprivate.dir/kmstartup.o"
> "CMakeFiles/kmailprivate.dir/kmmainwidget.o"
> "CMakeFiles/kmailprivate.dir/kmfolderindex.o"
> "CMakeFiles/kmailprivate.dir/kmfoldersearch.o"
> "CMakeFiles/kmailprivate.dir/folderjob.o"
> "CMakeFiles/kmailprivate.dir/cachedimapjob.o"
> "CMakeFiles/kmailprivate.dir/maildirjob.o"
> "CMakeFiles/kmailprivate.dir/mboxjob.o"
> "CMakeFiles/kmailprivate.dir/imapjob.o"
> "CMakeFiles/kmailprivate.dir/subscriptiondialog.o"
> "CMakeFiles/kmailprivate.dir/kmailicalifaceimpl.o"
> "CMakeFiles/kmailprivate.dir/aboutdata.o"
> "CMakeFiles/kmailprivate.dir/mailserviceimpl.o"
> "CMakeFiles/kmailprivate.dir/attachmentlistview.o"
> "CMakeFiles/kmailprivate.dir/kmcomposereditor.o"
> "CMakeFiles/kmailprivate.dir/kmlineeditspell.o"
> "CMakeFiles/kmailprivate.dir/kmatmlistview.o"
> "CMakeFiles/kmailprivate.dir/composer.o"
> "CMakeFiles/kmailprivate.dir/isubject.o"
> "CMakeFiles/kmailprivate.dir/bodyvisitor.o"
> "CMakeFiles/kmailprivate.dir/antispamwizard.o"
> "CMakeFiles/kmailprivate.dir/urlhandlermanager.o"
> "CMakeFiles/kmailprivate.dir/dictionarycombobox.o"
> "CMakeFiles/kmailprivate.dir/secondarywindow.o"
> "CMakeFiles/kmailprivate.dir/filterlog.o"
> "CMakeFiles/kmailprivate.dir/filterlogdlg.o"
> "CMakeFiles/kmailprivate.dir/messagecomposer.o"
> "CMakeFiles/kmailprivate.dir/keyresolver.o"
> "CMakeFiles/kmailprivate.dir/globalsettings.o"
> "CMakeFiles/kmailprivate.dir/regexplineedit.o"
> "CMakeFiles/kmailprivate.dir/rulewidgethandlermanager.o"
> "CMakeFiles/kmailprivate.dir/headerlistquicksearch.o"
> "CMakeFiles/kmailprivate.dir/acljobs.o"
> "CMakeFiles/kmailprivate.dir/folderdialogacltab.o"
> "CMakeFiles/kmailprivate.dir/partnodebodypart.o"
> "CMakeFiles/kmailprivate.dir/expirejob.o"
> "CMakeFiles/kmailprivate.dir/compactionjob.o"
> "CMakeFiles/kmailprivate.dir/jobscheduler.o"
> "CMakeFiles/kmailprivate.dir/callback.o"
> "CMakeFiles/kmailprivate.dir/searchjob.o"
> "CMakeFiles/kmailprivate.dir/renamejob.o"
> "CMakeFiles/kmailprivate.dir/annotationjobs.o"
> "CMakeFiles/kmailprivate.dir/accountcombobox.o"
> "CMakeFiles/kmailprivate.dir/redirectdialog.o"
> "CMakeFiles/kmailprivate.dir/foldershortcutdialog.o"
> "CMakeFiles/kmailprivate.dir/folderrequester.o"
> "CMakeFiles/kmailprivate.dir/spamheaderanalyzer.o"
> "CMakeFiles/kmailprivate.dir/antispamconfig.o"
> "CMakeFiles/kmailprivate.dir/recipientseditor.o"
> "CMakeFiles/kmailprivate.dir/recipientspicker.o"
> "CMakeFiles/kmailprivate.dir/kwindowpositioner.o"
> "CMakeFiles/kmailprivate.dir/distributionlistdialog.o"
> "CMakeFiles/kmailprivate.dir/expirypropertiesdialog.o"
> "CMakeFiles/kmailprivate.dir/mailinglistpropertiesdialog.o"
> "CMakeFiles/kmailprivate.dir/newfolderdialog.o"
> "CMakeFiles/kmailprivate.dir/accountwizard.o"
> "CMakeFiles/kmailprivate.dir/textsource.o"
> "CMakeFiles/kmailprivate.dir/managesievescriptsdialog.o"
> "CMakeFiles/kmailprivate.dir/chiasmuskeyselector.o"
> "CMakeFiles/kmailprivate.dir/util.o"
> "CMakeFiles/kmailprivate.dir/kmmessagetag.o"
> "CMakeFiles/kmailprivate.dir/templateparser.o"
> "CMakeFiles/kmailprivate.dir/templatesconfiguration.o"
> "CMakeFiles/kmailprivate.dir/templatesinsertcommand.o"
> "CMakeFiles/kmailprivate.dir/customtemplates.o"
> "CMakeFiles/kmailprivate.dir/customtemplatesmenu.o"
> "CMakeFiles/kmailprivate.dir/quotajobs.o"
> "CMakeFiles/kmailprivate.dir/folderdialogquotatab.o"
> "CMakeFiles/kmailprivate.dir/folderdialogquotatab_p.o"
> "CMakeFiles/kmailprivate.dir/folderadaptor.o"
> "CMakeFiles/kmailprivate.dir/copyfolderjob.o"
> "CMakeFiles/kmailprivate.dir/messagecopyhelper.o"
> "CMakeFiles/kmailprivate.dir/localsubscriptiondialog.o"
> "CMakeFiles/kmailprivate.dir/groupwareadaptor.o"
> "CMakeFiles/kmailprivate.dir/editorwatcher.o"
> "CMakeFiles/kmailprivate.dir/scalix.o"
> "CMakeFiles/kmailprivate.dir/kmailadaptor.o"
> "CMakeFiles/kmailprivate.dir/mailcomposeradaptor.o"
> "CMakeFiles/kmailprivate.dir/kmailinterface.o"
> "CMakeFiles/kmailprivate.dir/mailcomposerinterface.o"
> "CMakeFiles/kmailprivate.dir/calendarinterface.o"
> "CMakeFiles/kmailprivate.dir/serviceadaptor.o"
> "CMakeFiles/kmailprivate.dir/globalsettings_base.o"
> "CMakeFiles/kmailprivate.dir/replyphrases.o"
> "CMakeFiles/kmailprivate.dir/custommimeheader.o"
> "CMakeFiles/kmailprivate.dir/templatesconfiguration_kfg.o"
> "CMakeFiles/kmailprivate.dir/customtemplates_kfg.o"
> -L/Users/ranger/cvs/kde-mac/compile.build/kdepim/lib -L/opt/kde4/lib
> -L/opt/kde4-deps/lib -lkhtml -lthreadweaver -lkmime -lkpimidentities
> -lphonon -lknotifyconfig -lktnef -lkutils -lmailtransport -lkimap
> -lkleo -lmimelib -lksieve -lkpgp -lkdepim -F/opt/qt4/lib -framework
> Qt3Support -lnepomuk -lqgpgme -lgpgme++-pthread -lgpgme-pthread
> -lpthread -lgpg-error -lkdecore -lkdeui -lkparts -lkdecore -lkpty
> -lkdecore -lkdeui -lkfile -F/opt/qt4/lib -framework QtDesigner
> -lkdecore -lkdeui -lstreamanalyzer -lstreams -lkdecore -lsolid -lfam
> -lkio -lkresources -lkabc -lkdecore -lkabc -lkresources -lkldap
> -lkde3support -lkpimutils -lkcal -lkimproxy -lkio -lkdecore
> -lkpimutils -lkdecore -lkdeui -lstreamanalyzer -lstreams -lkdecore
> -lsolid -lfam -lkio -framework LDAP -lsasl2 -lkdecore -lkldap
> -lkpimutils -lkdeui -lkdecore -lkdeui -F/opt/qt4/lib -framework QtSvg
> -lstreamanalyzer -lstreams -lkdecore -F/opt/qt4/lib -framework
> QtNetwork -lz -lbz2 -lintl -lresolv -framework Carbon -lsolid
> -F/opt/qt4/lib -framework QtCore -lpthread -F/opt/qt4/lib -framework
> QtDBus -F/opt/qt4/lib -framework QtXml -F/opt/qt4/lib -framework QtGui
> -lfam -lkio -lkpimidentities
> /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/libtool:
> /usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: can't map file:
> /Developer/SDKs/MacOSX10.4u.sdk/opt/kde4/lib/libkio.dylibcan't map
> file: /Developer/SDKs/MacOSX10.4u.sdk/opt/kde4/lib/libkio.dylib
> ((os/kern) no space available)
>  ((os/kern) no space available)
> ---(snip!)---
> 

So if you do the same line (by hand) without any duplicates does it work?

-Bill


More information about the Kde-buildsystem mailing list