Opened 11 years ago

Closed 11 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) 11 years ago.
doxygen-build-main-SnowLeopard.log (248.4 KB) - added by cooljeanius (Eric Gallager) 11 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) 11 years ago.
Log of failing doxygen build on Mountain Lion
doxygen-fix-37546.patch (524 bytes) - added by macports@… 11 years ago.

Download all attachments as: .zip

Change History (22)

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

Attachment: main.log added

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

Cc: egall@… added

Cc Me!

comment:2 Changed 11 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 11 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 11 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 11 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 11 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 11 years ago by cooljeanius (Eric Gallager)

My latest build log of doxygen (was successful)

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

Cc: Torsten.Maehne@… added

Cc Me!

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

Cc: dgonyier@… added

Cc Me!

Changed 11 years ago by maehne (Torsten Maehne)

Log of failing doxygen build on Mountain Lion

comment:9 Changed 11 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 11 years ago by bgschaid@…

Cc: bgschaid@… added

Cc Me!

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

Cc: siavash.kazemian@… added

Cc Me!

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

Cc: g5pw@… added

Cc Me!

comment:13 Changed 11 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 11 years ago by macports@…

Cc: macports@… added

Cc Me!

comment:15 Changed 11 years ago by macgeek21@…

I was able to get the doxygen +wizard to build with 1.8.3.1 by changing line 150 from

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

It looks like the ppc option has been removed, but the RE was sill looking for it.

Version 0, edited 11 years ago by macgeek21@… (next)

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

I can confirm that macgeek21's fix works.

Changed 11 years ago by macports@…

Attachment: doxygen-fix-37546.patch added

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

I can confirm, too. Commited in r106761.

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

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