Opened 8 years ago

Closed 8 years ago

#37546 closed defect (fixed)

doxygen @1.8.3: +wizard fails to build

Reported by: raimue (Rainer Müller) Owned by: cssdev
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: mamoll (Mark Moll), cooljeanius (Eric Gallager), maehne (Torsten Maehne), dgonyier (Dwaine Gonyier), bgschaid@…, siavash.kazemian@…, g5pw (Aljaž Srebrnič), macports@…
Port: doxygen

Description (last modified by raimue (Rainer Müller))

doxygen @1.8.3 fails to build with the +wizard variant.

From the attached main.log:

:info:build /usr/bin/clang++ -headerpad_max_install_names -arch x86_64 -arch i386 -Xarch_x86_64 -mmacosx-version-min=10.8 -o ../../bin/DoxyWizard.app/Contents/MacOS/DoxyWizard obj/doxywizard.o obj/version.o obj/expert.o obj/wizard.o obj/inputbool.o obj/inputstring.o obj/inputint.o obj/inputstrlist.o obj/moc_doxywizard.o obj/moc_expert.o obj/moc_helplabel.o obj/moc_inputbool.o obj/moc_inputstring.o obj/moc_inputint.o obj/moc_inputstrlist.o obj/moc_wizard.o obj/qrc_doxywizard.o obj/config_lex.o   -F/opt/local/Library/Frameworks -F/opt/local/lib  -F/opt/local/Library/Frameworks -F/opt/local/lib -L/opt/local/lib -framework QtXml -framework QtCore -framework QtGui 
:info:build ld: warning: ld: warning: ld: warning: ignoring file /opt/local/Library/Frameworks/QtCore.framework/QtCore, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /opt/local/Library/Frameworks/QtCore.framework/QtCoreignoring file /opt/local/Library/Frameworks/QtXml.framework/QtXml, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /opt/local/Library/Frameworks/QtXml.framework/QtXmlignoring file /opt/local/Library/Frameworks/QtGui.framework/QtGui, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /opt/local/Library/Frameworks/QtGui.framework/QtGui
:info:build 
:info:build 
:info:build Undefined symbols for architecture i386:
:info:build   "qDrawShadePanel(QPainter*, QRect const&, QPalette const&, bool, int, QBrush const*)", referenced from:
:info:build       ColorPicker::paintEvent(QPaintEvent*) in wizard.o
:info:build   "qt_message_output(QtMsgType, char const*)", referenced from:
:info:build       QDebug::~QDebug() in doxywizard.o
:info:build   "qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)", referenced from:
:info:build       qInitResources_doxywizard() in qrc_doxywizard.o
:info:build       __GLOBAL__I_a in qrc_doxywizard.o
:info:build   "qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)", referenced from:
:info:build       qCleanupResources_doxywizard() in qrc_doxywizard.o
:info:build       qCleanupResources_doxywizard__dest_class__::~qCleanupResources_doxywizard__dest_class__() in qrc_doxywizard.o
:info:build   "endl(QTextStream&)", referenced from:
:info:build       Expert::saveTopic(QTextStream&, QDomElement&, QTextCodec*, bool) in expert.o
:info:build       Expert::writeConfig(QTextStream&, bool) in expert.o
:info:build       InputStrList::writeValue(QTextStream&, QTextCodec*) in inputstrlist.o
...

I think the reason is the inclusion of -arch i386 in the compilation above. This argument is at least passed in doxygen-1.8.3/addon/doxywizard/Makefile.doxywizard in CFLAGS/CXXFLAGS. A patch and reinplace should be used to select the arch currently building for only. I tested with the patch from ticket #37522 applied, against qt4-mac @4.8.4_2+quartz on Mac OS X 10.8.2 Mountain Lion.

The previous version doxygen @1.8.1.1_1+wizard did work fine for me. I assume changes by upstream introduced these universal arch selections that break the port now for me.

Attachments (4)

main.log (267.5 KB) - added by raimue (Rainer Müller) 8 years ago.
doxygen-build-main-SnowLeopard.log (248.4 KB) - added by cooljeanius (Eric Gallager) 8 years ago.
My latest build log of doxygen (was successful)
doxygen_failed_build_on_Mountain_Lion.log (190.1 KB) - added by maehne (Torsten Maehne) 8 years ago.
Log of failing doxygen build on Mountain Lion
doxygen-fix-37546.patch (524 bytes) - added by macports@… 8 years ago.

Download all attachments as: .zip

Change History (22)

Changed 8 years ago by raimue (Rainer Müller)

Attachment: main.log added

comment:1 Changed 8 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:2 Changed 8 years ago by mamoll (Mark Moll)

The file doxygen-1.8.3/addon/doxywizard/Makefile.doxywizard is part of the problem. The architectures are also hard-coded in doxygen-1.8.3/tmake/lib/macosx-intel-c++/tmake.conf. The first file can be regenerated with qmake, but qmake still sets up universal architectures.

comment:3 Changed 8 years ago by cooljeanius (Eric Gallager)

I just successfully installed doxygen with the +wizard variant on Snow Leopard; perhaps it's a clang vs. gcc issue?

comment:4 in reply to:  3 Changed 8 years ago by raimue (Rainer Müller)

Description: modified (diff)

I noticed I did not copy the full lines from the log for the ticket description, that's corrected now.

comment:5 in reply to:  3 ; Changed 8 years ago by raimue (Rainer Müller)

Replying to egall@…:

I just successfully installed doxygen with the +wizard variant on Snow Leopard; perhaps it's a clang vs. gcc issue?

It could be that you actually have the required 32-bit libraries on your system (qt4-mac with +universal variant?). Or qmake did not generate multiple -arch flags for your system.

Could you please produce a main.log on your Snow Leopard for comparison? sudo port clean doxygen; sudo port build doxygen, then attach the file from the path returned by port logfile doxygen.

comment:6 in reply to:  5 Changed 8 years ago by cooljeanius (Eric Gallager)

Replying to raimue@…:

Replying to egall@…:

I just successfully installed doxygen with the +wizard variant on Snow Leopard; perhaps it's a clang vs. gcc issue?

It could be that you actually have the required 32-bit libraries on your system (qt4-mac with +universal variant?).

Local-Admins-MacBook-Pro:Desktop ericgallager$ port -d installed qt4-mac
The following ports are currently installed:
  qt4-mac @4.8.4_2+debug+demos+examples+odbc+quartz+universal (active) platform='darwin 10' archs='i386 x86_64'

(all those variants make it take forever to build btw)

Could you please produce a main.log on your Snow Leopard for comparison? sudo port clean doxygen; sudo port build doxygen, then attach the file from the path returned by port logfile doxygen.

OK, just finished rebuilding, will attach log next

Changed 8 years ago by cooljeanius (Eric Gallager)

My latest build log of doxygen (was successful)

comment:7 Changed 8 years ago by maehne (Torsten Maehne)

Cc: Torsten.Maehne@… added

Cc Me!

comment:8 Changed 8 years ago by dgonyier (Dwaine Gonyier)

Cc: dgonyier@… added

Cc Me!

Changed 8 years ago by maehne (Torsten Maehne)

Log of failing doxygen build on Mountain Lion

comment:9 Changed 8 years ago by maehne (Torsten Maehne)

Building doxygen 1.8.3 on Mountain Lion (x86_64) still fails to build due to some stray -arch i386 compiler argument. I uploaded the log of my clean build try.

comment:10 Changed 8 years ago by bgschaid@…

Cc: bgschaid@… added

Cc Me!

comment:11 Changed 8 years ago by siavash.kazemian@…

Cc: siavash.kazemian@… added

Cc Me!

comment:12 Changed 8 years ago by g5pw (Aljaž Srebrnič)

Cc: g5pw@… added

Cc Me!

comment:13 Changed 8 years ago by g5pw (Aljaž Srebrnič)

I was able to build with +wizard by removing the -arch flags in Makefile.doxywizard. Funny thing is, the file gets regenerated in the build phase, so we can't patch it alone. I think this stems from an error in qmake...

comment:14 Changed 8 years ago by macports@…

Cc: macports@… added

Cc Me!

comment:15 Changed 8 years ago by macgeek21@…

I was able to get the doxygen +wizard variant to build with doxygen 1.8.3.1 by changing line 150 in the Portfile as follows

original: reinplace "/CONFIG/s@x86 ppc@${qt_arch_types}@/" \
modified: reinplace "/CONFIG/s@x86@${qt_arch_types}@/" \

It looks like the ppc arch option has been removed from the addons/doxywizard/doxywizard.pro.in file, but the RE was sill looking for it in the Portfile.

Last edited 8 years ago by macgeek21@… (previous) (diff)

comment:16 in reply to:  15 Changed 8 years ago by macports@…

I can confirm that macgeek21's fix works.

Changed 8 years ago by macports@…

Attachment: doxygen-fix-37546.patch added

comment:17 Changed 8 years ago by g5pw (Aljaž Srebrnič)

I can confirm, too. Commited in r106761.

comment:18 Changed 8 years ago by g5pw (Aljaž Srebrnič)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.