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

Reply via email to