Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 87758 - ERROR: app-doc/doxygen-1.4.2 failed Function src_compile, Line 40, Exitcode 2 "make all" failed
Summary: ERROR: app-doc/doxygen-1.4.2 failed Function src_compile, Line 40, Exitcode 2...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Mac OSX (show other bugs)
Hardware: PPC All
: High normal
Assignee: Gentoo for Mac OS X
URL:
Whiteboard:
Keywords:
: 89405 94537 (view as bug list)
Depends on: 63440
Blocks:
  Show dependency tree
 
Reported: 2005-04-03 04:06 UTC by Roberto Griso
Modified: 2006-04-12 10:53 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roberto Griso 2005-04-03 04:06:29 UTC
emerge -v doxygen
Calculating dependencies ...done!
>>> emerge (1 of 1) app-doc/doxygen-1.4.2 to /
>>> md5 src_uri ;-) doxygen-1.4.2.src.tar.gz
>>> Unpacking source...
>>> Unpacking doxygen-1.4.2.src.tar.gz to /var/tmp/portage/doxygen-1.4.2/work
 * Applying bsd-configure.patch ...                                                                     [ ok ]
>>> Source unpacked.
  Autodetected platform macosx-c++... 
  Detected Qt via the QTDIR environment variable...
                     headers /usr/qt/3/include,
                     libraries /usr/qt/3/lib
  Checking for GNU make tool... using /usr/bin/make
  Checking for GNU install tool... using /usr/bin/install
  Checking for dot (part of GraphViz)... using /usr/bin/dot
  Checking for perl... using /usr/bin/perl
  Created Makefile from Makefile.in...
  Created qtools/Makefile from qtools/Makefile.in...
  Created src/Makefile from src/Makefile.in...
  Created examples/Makefile from examples/Makefile.in...
  Created doc/Makefile from doc/Makefile.in...
  Created addon/doxywizard/Makefile from addon/doxywizard/Makefile.in...
  Created addon/doxmlparser/src/Makefile from addon/doxmlparser/src/Makefile.in...
  Created addon/doxmlparser/test/Makefile from addon/doxmlparser/test/Makefile.in...
  Created addon/doxmlparser/examples/metrics/Makefile from addon/doxmlparser/examples/metrics/Makefile.in...
  Created libpng/Makefile from libpng/Makefile.in...
  Created libmd5/Makefile from libmd5/Makefile.in...
  Created qtools/qtools.pro from qtools/qtools.pro.in...
  Created src/libdoxygen.pro from src/libdoxygen.pro.in...
  Created src/libdoxycfg.pro from src/libdoxycfg.pro.in...
  Created src/doxygen.pro from src/doxygen.pro.in...
  Created src/doxytag.pro from src/doxytag.pro.in...
  Created addon/doxywizard/doxywizard.pro from addon/doxywizard/doxywizard.pro.in...
  Created addon/doxmlparser/src/doxmlparser.pro from addon/doxmlparser/src/doxmlparser.pro.in...
  Created addon/doxmlparser/test/xmlparse.pro from addon/doxmlparser/test/xmlparse.pro.in...
  Created addon/doxmlparser/examples/metrics/metrics.pro from addon/doxmlparser/examples/metrics/metrics.pro.in...
  Created libpng/libpng.pro from libpng/libpng.pro.in...
  Created libmd5/libmd5.pro from libmd5/libmd5.pro.in...
  Generating src/lang_cfg.h...
echo "char versionString[]=\"1.4.2\";" > src/version.cpp
/usr/bin/make -C qtools
env TMAKEPATH=/var/tmp/portage/doxygen-1.4.2/work/doxygen-1.4.2/tmake/lib/macosx-c++ /usr/bin/perl /var/tmp/portage/doxygen-1.4.2/work/doxygen-1.4.2/tmake/bin/tmake qtools.pro >Makefile.qtools
/usr/bin/make -f Makefile.qtools    all
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qbuffer.o qbuffer.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qcollection.o qcollection.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/scstring.o scstring.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qdatastream.o qdatastream.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qdatetime.o qdatetime.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qdir.o qdir.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qfile.o qfile.cpp
c++ -c -pipe -D__FreeBSD__ -DQT_NO_CODECS -DQT_LITE_UNICODE -Wall -W -O2 -I. -o ../objects/qfileinfo.o qfileinfo.cpp

...
...
...

/usr/bin/make -f Makefile.doxygen    PERL=/usr/bin/perl all
c++ -c -pipe -D__FreeBSD__ -Wall -W -O2 -I../qtools -I../libpng -I../libmd5 -I. -o ../objects/main.o main.cpp
c++  -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 
ld: Undefined symbols:
_MD5Buffer
_MD5SigToString
make[2]: *** [../bin/doxygen] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

Reproducible: Always
Steps to Reproduce:
1.
2.
3.




emerge info
!!! Relying on the shell to locate gcc, this may break
!!! DISTCC, installing gcc-config and setting your current gcc
!!! profile will fix this
Portage 2.0.51.19 (default-darwin/macos/10.3, gcc-3.3, libsystem-7.1-r0, 7.8.0
Power Macintosh)
=================================================================
System uname: 7.8.0 Power Macintosh powerpc
macos-20041118
Python:               [2.3 (#1, Sep 13 2003, 00:49:11)]
distcc 2.0.1-zeroconf powerpc-apple-darwin7.0 (protocol 1) (default port 3632)
[disabled]
ccache version 2.4 [enabled]
dev-lang/python:     [Not Present]
sys-devel/autoconf:  [Not Present]
sys-devel/automake:  [Not Present]
sys-devel/binutils:  [Not Present]
sys-devel/libtool:   [Not Present]
virtual/os-headers:  7.1
ACCEPT_KEYWORDS="ppc-macos ~ppc-macos"
AUTOCLEAN="yes"
CFLAGS="-O2 -pipe"
CHOST="powerpc-apple-darwin"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache collision-protect distlocks userpriv"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="ppc X Xaw3d bash-completion berkdb cdr cups emboss gdbm gif imlib2 ipv6
java javascript jpeg latex lesstif libwww motif ncurses neXt nls oggvorbis
opengl png ppc-macos qt readline ruby speex sqlite ssl tetex tiff unicode xface
xinerama zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
Comment 1 Lina Pezzella (RETIRED) gentoo-dev 2005-04-03 12:21:38 UTC
I am checking this on my own machine right now, but my suspicion is that it fails because of USE="qt".
We have not hard masked USE="qt" because it supposedly works (another dev was working on it and
keyworded it). However, the rest of us have been unable to emerge qt (meaning we cannot test qt
functionality in packages that optionally use it). I'd like to know when/how you got qt emerged, or if
you installed it yourself.

I'll let you know definitely what the problem is in a few hours (still compiling).
Comment 2 Lina Pezzella (RETIRED) gentoo-dev 2005-04-03 13:01:48 UTC
Yup. Works fine with USE="-qt". Please let me know how you got qt installed so I can install it myself
and work on fixing that problem.
Comment 3 Lina Pezzella (RETIRED) gentoo-dev 2005-04-17 13:49:59 UTC
*** Bug 89405 has been marked as a duplicate of this bug. ***
Comment 4 Lina Pezzella (RETIRED) gentoo-dev 2005-05-30 18:05:26 UTC
*** Bug 94537 has been marked as a duplicate of this bug. ***
Comment 5 Fabian Groffen gentoo-dev 2005-08-28 13:39:37 UTC
so this is actually a bug around qt.
Comment 6 Lina Pezzella (RETIRED) gentoo-dev 2005-08-29 09:46:28 UTC
Version 1.4.3-r1 works for me. Please try that and reopen if it is still a problem.
Comment 7 Fabian Groffen gentoo-dev 2005-08-31 23:18:46 UTC
 * Applying doxygen-1.4.3-nls.patch ...                                   [ ok ]
QA Notice: USE Flag 'userland_Darwin' not in IUSE for app-doc/doxygen-1.4.3-r1
 * Applying bsd-configure.patch ...                                       [ ok ]
>>> Source unpacked.
  Autodetected platform macosx-c++... 
  QTDIR environment variable not set!
  Checking for Qt...QTDIR not set and Qt not found at standard locations!

tmake requires the QTDIR environment variable to be set.
check the Qt installation instructions!

!!! ERROR: app-doc/doxygen-1.4.3-r1 failed.
!!! Function src_compile, Line 45, Exitcode 2
!!! "./configure" failed.
!!! If you need support, post the topmost build error, NOT this status message.


Something tells me that this env should be there as it is in /etc/env.d/*qt*
Comment 8 Lina Pezzella (RETIRED) gentoo-dev 2005-09-01 10:31:08 UTC
This is my build process: It definitely makes it past where yours died. 
  Autodetected platform macosx-c++... 
  Detected Qt via the QTDIR environment variable...
                     headers /usr/qt/3/include,
                     libraries /usr/qt/3/lib
  Checking for GNU make tool... using /usr/bin/make
  Checking for GNU install tool... using /usr/bin/install
  Checking for dot (part of GraphViz)... using /usr/bin/dot
  Checking for perl... using /usr/bin/perl
  Created Makefile from Makefile.in...     

Hasan (gongloo) gets the same as me.
Comment 9 Lina Pezzella (RETIRED) gentoo-dev 2005-09-02 16:28:18 UTC
Does emerging baselayout and the recent QT patch fix the issue with doxygen for you? Please let me know 
as I would love to close this bug once again. :-)
Comment 10 Fabian Groffen gentoo-dev 2005-09-03 00:54:38 UTC
We need to have a discussion on that first.  In the meanwhile all of my actions
are frozen.
Comment 11 Jari-Matti Mäkelä 2005-09-15 07:17:45 UTC
Does the QT use flag affect the doxywizard GUI?
I've emerged doxygen-1.4.2, ..., doxygen-1.4.4 (x86, not Mac), but the QT-flag
doesn't seem to have any effect. The precompiled binary from the doxygen
homepage (http://www.stack.nl/~dimitri/doxygen/) on the other hand takes
advantage of QT.

emerge -av qt doxygen

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] x11-libs/qt-3.3.4-r7  +cups -debug -doc -examples 
-firebird +gif -immqt -immqt-bc -ipv6 -mysql -nas -odbc +opengl 
-postgres -sqlite -xinerama +zlib 0 kB 
[ebuild   R   ] app-doc/doxygen-1.4.4  -doc* +qt +tetex 0 kB
Comment 12 Dirk Schoenberger 2005-10-06 12:39:17 UTC
while emerging doxygen 1.4.4 on MacOS Tiger, I have the following problem:

c++ -c -pipe -D__FreeBSD__=5=6 -Wall -W -O2 -DNO_DEBUG -I../../src -I/usr/qt/3/include -o obj/
doxywizard.o doxywizard.cpp
c++ -c -pipe -D__FreeBSD__=5=6 -Wall -W -O2 -DNO_DEBUG -I../../src -I/usr/qt/3/include -o obj/
version.o version.cpp
c++ -c -pipe -D__FreeBSD__=5=6 -Wall -W -O2 -DNO_DEBUG -I../../src -I/usr/qt/3/include -o obj/
inputstring.o inputstring.cpp
In file included from /usr/include/gcc/darwin/4.0/c++/cstddef:48,
                 from /usr/include/gcc/darwin/4.0/c++/cstring:49,
                 from /usr/include/gcc/darwin/4.0/c++/bits/char_traits.h:45,
                 from /usr/include/gcc/darwin/4.0/c++/string:46,
                 from /usr/qt/3/include/qstring.h:56,
                 from /usr/qt/3/include/qwindowdefs.h:44,
                 from /usr/qt/3/include/qwidget.h:42,
                 from /usr/qt/3/include/qframe.h:42,
                 from /usr/qt/3/include/qlabel.h:42,
                 from doxywizard.cpp:1:
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:57:86: error: token "=" is not valid in 
preprocessor expressions
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:61:31: error: token "=" is not valid in 
preprocessor expressions
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:311:31: error: token "=" is not valid in 
preprocessor expressions
In file included from /usr/include/gcc/darwin/4.0/c++/cstddef:48,
                 from /usr/include/gcc/darwin/4.0/c++/cstring:49,
                 from /usr/include/gcc/darwin/4.0/c++/bits/char_traits.h:45,
                 from /usr/include/gcc/darwin/4.0/c++/string:46,
                 from /usr/qt/3/include/qstring.h:56,
                 from /usr/qt/3/include/qwindowdefs.h:44,
                 from /usr/qt/3/include/qwidget.h:42,
                 from inputstring.h:18,
                 from inputstring.cpp:15:
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:57:86: error: token "=" is not valid in 
preprocessor expressions
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:61:31: error: token "=" is not valid in 
preprocessor expressions
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/include/stddef.h:311:31: error: token "=" is not valid in 
preprocessor expressions
input.h:7: warning: 'class IInput' has virtual functions but non-virtual destructor
/usr/qt/3/include/qnetworkprotocol.h:58: warning: 'class QNetworkProtocolFactoryBase' has virtual 
functions but non-virtual destructor
/usr/qt/3/include/qfiledialog.h:78: warning: 'class QFilePreview' has virtual functions but non-virtual 
destructor
/usr/qt/3/include/qnetworkprotocol.h:58: warning: 'class QNetworkProtocolFactoryBase' has virtual 
functions but non-virtual destructor
/usr/qt/3/include/qfiledialog.h:78: warning: 'class QFilePreview' has virtual functions but non-virtual 
destructor
/usr/qt/3/include/qtooltip.h:86: warning: 'class QToolTip' has virtual functions but non-virtual 
destructor
/usr/qt/3/include/qtooltip.h:86: warning: 'class QToolTip' has virtual functions but non-virtual 
destructor
make[2]: *** [obj/inputstring.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [obj/doxywizard.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2


Seems the problem is the part -D__FreeBSD__=5=6, where my gcc expects something like 
-D__FreeBSD__
Comment 13 Fabian Groffen gentoo-dev 2005-10-06 12:43:00 UTC
can you find out if doxygen perhaps has some OSX/Darwin support looking through
the configure/README/INSTALL and that kind of files?
Comment 14 Dirk Schoenberger 2005-10-06 12:58:27 UTC
> can you find out if doxygen perhaps has some OSX/Darwin support looking through
> the configure/README/INSTALL and that kind of files?

According to the ebuild there is MacOSX support. However the following line in doxygen-1.4.4.ebuild 
looks problematic

        if use ppc-macos; then
                epatch ${FILESDIR}/bsd-configure.patch
                [[ "$MACOSX_DEPLOYMENT_TARGET" == "10.4" ]] &&  sed -i -e 's:-D__FreeBSD__:-
D__FreeBSD__=5:' \
                        tmake/lib/macosx-c++/tmake.conf
        fi
Comment 15 Dirk Schoenberger 2005-10-06 13:30:14 UTC
                [[ "$MACOSX_DEPLOYMENT_TARGET" == "10.4" ]] &&  sed -i -e 's:-D__FreeBSD__:-
D__FreeBSD__=5:' \
                        tmake/lib/macosx-c++/tmake.conf

without this, the package emerges and runs fine on, Tiger, at least with USE="qt doc". Currently I don't 
have tetex installed.
Comment 16 Fabian Groffen gentoo-dev 2005-10-06 13:40:30 UTC
hey, that's interesting Dirk!  Less is More(tm) in this case ;)

I am compiling now without the whole ppc-macos if (so I removed the patch as
well) and so far it appears to be happy
Comment 17 Fabian Groffen gentoo-dev 2005-10-06 13:44:31 UTC
bleh...
linker errors (but I doubt they will be prevented by the patch)

/usr/bin/make -f Makefile.doxygen    PERL=/usr/bin/perl all
c++ -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libpng -I../libmd5
-I. -o ../objects/main.o main.cpp
c++  -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools
-lpng -lmd5 
/usr/bin/ld: Undefined symbols:
_MD5Buffer
_MD5SigToString
collect2: ld returned 1 exit status
make[2]: *** [../bin/doxygen] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
Comment 18 Lina Pezzella (RETIRED) gentoo-dev 2005-10-07 14:56:12 UTC
The fix should be simple. This is apparently a problem introduced in the later version of doxygen. 
Please change the line in question to:

if use ppc-macos; then
                epatch ${FILESDIR}/bsd-configure.patch
                [[ "$MACOSX_DEPLOYMENT_TARGET" == "10.4" ]] &&  sed -i -e 's:-D__FreeBSD__=6:-
D__FreeBSD__=5:' \
                        tmake/lib/macosx-c++/tmake.conf
        fi

The older version simply had -D__FreeBSD__. The weird linker errors were taken care of by the 
specification of FreeBSD 5.

Let me know what you get.
Comment 19 Fabian Groffen gentoo-dev 2005-10-08 02:56:55 UTC
the changed define didn't help for me, it still doesn't link properly :(

/usr/bin/ld: Undefined symbols:
_MD5Buffer
_MD5SigToString

Dirk, you managed to compile successly, didn't you?
Comment 20 Dirk Schoenberger 2005-10-08 03:30:30 UTC
> /usr/bin/ld: Undefined symbols:
> _MD5Buffer
> _MD5SigToString

> Dirk, you managed to compile successly, didn't you?

Same problem on Tiger, after my last emmerge --sync
Comment 21 Dirk Schoenberger 2005-10-08 06:55:57 UTC
> /usr/bin/ld: Undefined symbols:
> _MD5Buffer
> _MD5SigToString

> Dirk, you managed to compile successly, didn't you?

Seems like MacOSX gcc doesn't like to link against static libs (.a files).
If you replace -lmd5 by ../lib/libmd5.a in src/Makefile.doxygen, it seems to link correctly.
Comment 22 Kito (RETIRED) gentoo-dev 2005-10-08 08:09:53 UTC
Pretty sure this is a result of it finding the dylib first. Adding -search_paths_first to the linker flags, or 
as Dirk suggested specifying the static archive should fix it, the latter probably easier to get accepted 
upstream.

From the ld(1) manpage:

-search_paths_first
              By  default  when  the  -dynamic  flag is in effect, the -lx and
              -weak-lx  options  first  search  for  a  file   of   the   form
              `libx.dylib'  in each directory in the library search path, then
              a file of the form `libx.a'  is  searched  for  in  the  library
              search  paths.   This  option  changes  it  so that in each path
              `libx.dylib' is searched for then `libx.a' before the next  path
              in the library search path is searched.
Comment 23 Fabian Groffen gentoo-dev 2005-10-08 09:50:45 UTC
Thanks kito for that helpful comment.

Doxygen uses profiles for systems, so it was actually quite simple to add
-search_paths_first to the linker options of the final linker stage and so to
allow compilation to succeed.

I'd like kito to have a look at my patch, then I'll submit it upstream.  Closing
the bug for now, based on Dirk's experiences with qt, and mine on tetex.
Comment 24 Fabian Groffen gentoo-dev 2005-10-08 11:22:24 UTC
update, I compiled with USE flags qt and tetex, and that worked too.