Opened 14 years ago

Closed 14 years ago

#21552 closed defect (duplicate)

doxygen +wizard +universal (x86_64 i386) fails on Leopard

Reported by: td@… Owned by: cssdev
Priority: Normal Milestone:
Component: ports Version: 1.8.0
Keywords: doxywizard Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: doxygen

Description

Doxygen 1.6.1 build with wizard and universal (set to x86_64, i386) fails on leopard (not snow)

I'm building this way because i'd like to use java 1.6 which is only distributed in 64bit and use newer libraries within macports in jruby.

DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.6.1" && /usr/bin/make -j2 all " returned error 2
Command output:       Step3::init()     in wizard.o
      Step2::init()     in wizard.o
      Step2::init()     in wizard.o
      Step2::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step4::init()     in wizard.o
      Step1::init()     in wizard.o
      Step4::Step4(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step4::Step4(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step4::Step4(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step4::Step4(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step1::Step1(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step2::Step2(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step2::Step2(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step3::Step3(Wizard*, QHash<QString, Input*> const&)in wizard.o
      Step3::Step3(Wizard*, QHash<QString, Input*> const&)in wizard.o
      InputBool::setValue(bool) in inputbool.o
      InputBool::update()     in inputbool.o
ld: symbol(s) not found for architecture ppc
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccQyEyus.out (No such file or directory)
make[2]: *** [../../bin/DoxyWizard.app/Contents/MacOS/DoxyWizard] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

    while executing
"command_exec build"
    (procedure "portbuild::build_main" line 9)
    invoked from within
"$procedure $targetname"
Error: Status 1 encountered during processing.

Attachments (1)

doxygen.build.debug.txt (204.1 KB) - added by td@… 14 years ago.
debug log of build

Download all attachments as: .zip

Change History (7)

Changed 14 years ago by td@…

Attachment: doxygen.build.debug.txt added

debug log of build

comment:1 Changed 14 years ago by td@…

forgot to mention the build without +wizard seems to work fine.

comment:2 Changed 14 years ago by mf2k (Frank Schima)

Keywords: doxygen universal removed
Owner: changed from macports-tickets@… to css@…

comment:3 Changed 14 years ago by dweber@…

I'm playing around with a sandbox version of doxygen in http://trac.macports.org/browser/users/dweber/textproc/doxygen

It appears that doxygen requires Qt 3.3.x, so the qt4-mac dependency will fail. (Also, it fails to find the qmake binary with a qt4-mac dependency, because it's called qmake-mac in the qt4-mac port, so this can be handled with a reinplace to change QMAKE=qmake into QMAKE=qmake-mac, see my sandbox Portfile for details). However, even with a qt3 dependency, the build fails. This might be an upstream issue (beyond my ability to fix this). Maybe a qt3-mac dependency would work?

Furthermore, on my system, even the default build fails (without any variants enabled). This appears to be due to some link errors (might be related to the md5 lib?). In my sandbox version that is working for me, the post-patch phase is commented to leave the default link arguments alone. The changes made in the post-patch phase are to a file in:

work/doxygen-1.6.1/tmake/lib/macosx-c++/tmake.conf

The link setting changes are (reasonable?):

37,38c37,38
< TMAKE_LINK		= c++
< TMAKE_LINK_SHLIB	= c++
---
> TMAKE_LINK		= /usr/bin/g++-4.0 -L/opt/local/lib
> TMAKE_LINK_SHLIB	= /usr/bin/g++-4.0

When these link changes are disabled, it will build, destroot, install and run OK. With those link changes disabled, the library dependencies for doxygen (and doxytag) are:

work/doxygen-1.6.1/bin/doxygen:
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)

When the link changes are enabled, the link phase fails because of undefined symbols. These are the gory details on the failure:

gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
/usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp
/usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv
Undefined symbols:
  "_MD5SigToString", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
  "_MD5Buffer", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
gmake[2]: *** [../bin/doxygen] Error 1
gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
make: *** [all] Error 2
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1" && /usr/bin/make -j8 all " returned error 2
Command output: gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
/opt/local/bin/gmake -f Makefile.doxygen    PERL=/opt/local/bin/perl all
gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
/usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp
/usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv
Undefined symbols:
  "_MD5SigToString", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
  "_MD5Buffer", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
gmake[2]: *** [../bin/doxygen] Error 1
gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
make: *** [all] Error 2

DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1" && /usr/bin/make -j8 all " returned error 2
Command output: gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
/opt/local/bin/gmake -f Makefile.doxygen    PERL=/opt/local/bin/perl all
gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
/usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp
/usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv
Undefined symbols:
  "_MD5SigToString", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
  "_MD5Buffer", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QCString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
      MemberGroup::anchor() const in libdoxygen.a(membergroup.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
gmake[2]: *** [../bin/doxygen] Error 1
gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src'
make: *** [all] Error 2

    while executing
"command_exec build"
    (procedure "portbuild::build_main" line 9)
    invoked from within
"$procedure $targetname"
Warning: the following items did not execute (for doxygen): org.macports.build
Error: Status 1 encountered during processing.

comment:4 Changed 14 years ago by cssdev

You might need to deactivate libwww and try the build again. Its headers and libs confuse the doxygen build process.

comment:5 Changed 14 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:6 Changed 14 years ago by jmroot (Joshua Root)

Resolution: duplicate
Status: newclosed

Doxygen had its universal variant disabled in r43212, and #25769 now has a patch to add a working one.

Note: See TracTickets for help on using tickets.