#19691: Mediatomb failing to build universal when dependencies aren't -------------------------------------+-------------------------------------- Reporter: peter.davis8@… | Owner: yattenator@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.1 Resolution: fixed | Keywords: universal Port: mediatomb | -------------------------------------+-------------------------------------- Changes (by ryandesign@…): * cc: ryandesign@… (added) * status: new => closed * resolution: => fixed * keywords: mediatomb leopard => universal Comment: Replying to [ticket:19691 peter.davis8@…]:
/usr/bin/g++-4.0 -I../src -I../tombupnp/ixml/inc -I../tombupnp/threadutil/inc -I../tombupnp/upnp/inc -I.. -I/opt/local/include/js -I/opt/local/include/taglib -D_THREAD_SAFE -I/opt/local/include -O2 -L/opt/local/lib -o mediatomb mediatomb-main.o libmediatomb.a ../tombupnp/build/libtombupnp.a -L/opt/local/lib -liconv -L/opt/local/lib -ltag -ljs -lmagic -D_THREAD_SAFE -lavformat -lavutil -L/opt/local/lib -lcurl -L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -mmacosx-version-min=10.5 -L/opt/local/lib -lz -lcurl -ltag -lsqlite3 -lz -lavformat -lavutil -lexif -lexpat
"-arch ppc -arch i386" means you have requested a universal build by selecting the universal variant
ld warning: in mediatomb-main.o, file is not of required architecture [[br]] ld warning: in libmediatomb.a, file is not of required architecture [[br]] ld warning: in ../tombupnp/build/libtombupnp.a, file is not of required architecture
This means the objects mediatomb is compiling are not universal. mediatomb 0.11.0 didn't build universal properly. 0.12.0, to which I just updated the port, does; see #23058.
ld warning: in /opt/local/lib/libtag.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libjs.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libmagic.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libavformat.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libavutil.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libsqlite3.dylib, file is not of required architecture [[br]] ld warning: in /opt/local/lib/libexif.dylib, file is not of required architecture [[br]] Undefined symbols for architecture i386:
This means those libraries, which are provided by mediatomb's dependencies, are not universal. To build any port universal, you must build its dependencies universal, too. In r65383 I added the archcheck portgroup to mediatomb so that you'll get a more-useful error message in this situation, advising you to upgrade the dependencies to universal, and showing you how to do so. Note, however, that ffmpeg cannot be built universal at this time, and that by default the mediatomb port requests ffmpeg support. So if you want a universal binary, you have to deselect the ffmpeg variant when building mediatomb (and then you won't have ffmpeg support). -- Ticket URL: <http://trac.macports.org/ticket/19691#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS