Today I got an error trying to compile Amarok. No big deal, right.
Just fix the libraries and move on.
Wrong ... Command to execute the link at the end of this message. And
that took me about 30 minutes of digging through wrapped build tools to
finally extract.
Excuse me, but this is broken. Badly broken.
I accepted the 38 *hours* to compile KDE and its infinite chain of
dependencies. But that link command is over the top, and it's typical.
This wouldn't even *execute* in the bad old days of shells with fixed
length buffers.
Configure must die. Autoconf must die. Make must die. m4 needs to be
shot in the head, poisoned, encased in concrete and dumped into the
Marianas Trench. Come on people, if you are checking for *fortran* in
your configure script because *even the developers can't figure it out*,
it's time for a better way. If you need to wrap ld in libtool inside
ltmain inside libtool (a shell script) (Why?????), it's time for a
better way.
Sheesh. Pick a build system which uses a real programming language.
Perl, Tcl, Python, Ruby, *anything* and compile it up. Python only
takes about 40 minutes to compile from scratch, if necessary. Ruby is
similar. Use scons. Use cons. Use *anything* which uses a *REAL
PROGRAMMING LANGUAGE* underneath. It'll only add about 5% to the total
build time for KDE and you can hunt the bugs using *real debugging
tools*. What a concept!
I can pull up compiled Java projects which are 5+ years old and they
work *perfectly*. I probably have to futz to get a recompile to work,
but probably that is a single "Use JDK 1.2" switch. Python similarly.
I presume Ruby is the same. Please quit using C/C++. I beg you.
People, Amarok is a gui wrapped around a bunch of libraries. WHY DID
YOU USE C++? Performance is *not* an issue. It's a GUI!
I'd even go out and *learn* another language just to rid myself of
autoconf, et al. I spent quite a lot of time learning scons and I do
use it when I'm not using Java (everybody uses ant or a managed build
IDE on Java so scons is a bit behind on Java). I even learned ant and
am much happier using it than autoconf, et al.
Grrrrrrrrr... Back to debugging.
-a
g++ -dynamiclib -single_module -Wl,-flat_namespace -Wl,-undefined
-Wl,suppress -o .libs/libamarok.0.0.0.dylib -Wno-long-long -Wundef -Wall
-W -Wpointer-arith -O2 -Wno-non-virtual-dtor -fno-exceptions
-fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST
-DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION .libs/actionclasses.o
.libs/app.o .libs/atomicstring.o .libs/atomicurl.o .libs/browserbar.o
.libs/clicklineedit.o .libs/collectionbrowser.o .libs/collectiondb.o
.libs/columnlist.o .libs/configdialog.o .libs/contextbrowser.o
.libs/coverfetcher.o .libs/covermanager.o .libs/cuefile.o
.libs/deletedialog.o .libs/deviceconfiguredialog.o .libs/devicemanager.o
.libs/directorylist.o .libs/dynamicmode.o .libs/enginebase.o
.libs/enginecontroller.o .libs/engineobserver.o .libs/equalizergraph.o
.libs/equalizerpresetmanager.o .libs/equalizersetup.o .libs/expression.o
.libs/fht.o .libs/filebrowser.o .libs/hintlineedit.o .libs/htmlview.o
.libs/iconloader.o .libs/k3bexporter.o .libs/kbookmarkhandler.o
.libs/ktrm.o .libs/lastfm.o .libs/mediabrowser.o .libs/medium.o
.libs/mediumpluginmanager.o .libs/metabundle.o .libs/multitabbar.o
.libs/mydiroperator.o .libs/osd.o .libs/pixmapviewer.o
.libs/playerwindow.o .libs/playlist.o .libs/playlistbrowser.o
.libs/playlistbrowseritem.o .libs/playlistitem.o .libs/playlistloader.o
.libs/playlistselection.o .libs/playlistwindow.o .libs/pluginmanager.o
.libs/podcastsettings.o .libs/prettypopupmenu.o .libs/queuemanager.o
.libs/refreshimages.o .libs/scancontroller.o .libs/scriptmanager.o
.libs/scrobbler.o .libs/sliderwidget.o .libs/smartplaylisteditor.o
.libs/socketserver.o .libs/statistics.o .libs/systray.o
.libs/tagdialog.o .libs/tagguesser.o .libs/threadweaver.o
.libs/tooltip.o .libs/trackpickerdialog.o .libs/tracktooltip.o
.libs/transferdialog.o .libs/xmlloader.o .libs/xspfplaylist.o
.libs/Options1.o .libs/Options2.o .libs/Options4.o .libs/Options5.o
.libs/Options7.o .libs/Options8.o .libs/dbsetup.o
.libs/deletedialogbase.o .libs/firstrunwizard.o .libs/newdynamic.o
.libs/organizecollectiondialog.o .libs/podcastsettingsbase.o
.libs/scriptmanagerbase.o .libs/tagdialogbase.o
.libs/tagguesserconfigdialog.o .libs/trackpickerdialogbase.o -all_load
../../amarok/src/amarokcore/.libs/libamarokcore.a
../../amarok/src/analyzers/.libs/libanalyzers.a
../../amarok/src/plugin/.libs/libplugin.a
../../amarok/src/statusbar/.libs/libstatusbar.a
../../amarok/src/metadata/.libs/libmetadata.a
../../amarok/src/sqlite/.libs/libsqlite.a /opt/local/lib/libkparts.dylib
/opt/local/lib/libkdeprint.dylib /opt/local/lib/libpcre.dylib
/opt/local/lib/libpcreposix.dylib /opt/local/lib/libkjs.dylib
/opt/local/lib/libjpeg.dylib /opt/local/lib/libkdefx.dylib
/opt/local/lib/libiconv.dylib /opt/local/lib/libidn.dylib
/opt/local/lib/libart_lgpl_2.dylib /opt/local/lib/libDCOP.dylib
/opt/local/lib/libkwalletclient.dylib /opt/local/lib/libkdesu.dylib
/usr/X11R6/lib/libICE.dylib /usr/X11R6/lib/libSM.dylib
/usr/X11R6/lib/libX11.dylib /usr/X11R6/lib/libXext.dylib
/opt/local/lib/libfontconfig.dylib /opt/local/lib/libfreetype.dylib
/opt/local/lib/libXft.dylib /usr/X11R6/lib/libXinerama.dylib
/usr/X11R6/lib/libXcursor.dylib /usr/X11R6/lib/libXrandr.dylib
/opt/local/lib/libXrender.dylib /usr/X11R6/lib/libXmu.dylib
/usr/X11R6/lib/libGL.dylib /opt/local/lib/libz.dylib
-L/opt/local/lib/qt3/lib -L/opt/local/lib -L/opt/local/lib/qt3
-L/usr/X11R6/lib /opt/local/lib/libqt-mt.dylib
/opt/local/lib/libpng12.dylib -lz -lm -lXext -lX11 -lSM -lICE
/opt/local/lib/libkutils.dylib /opt/local/lib/libkio.dylib
/opt/local/lib/libkdeui.dylib /opt/local/lib/libkdecore.dylib
/opt/local/lib/libkhtml.dylib /opt/local/lib/libknewstuff.dylib
/opt/local/lib/libtag.dylib -lGL -lpthread -install_name
/home/amarok/lib/libamarok.0.dylib -compatibility_version 1
-current_version 1.0
ld: multiple definitions of symbol ___cmpdi2
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libgcc.a(_cmpdi2.o) private
external definition of ___cmpdi2 in section (__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libgcc_s.10.4.dylib(_cmpdi2_s.o)
definition of ___cmpdi2
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg