Date: Sat, 2 Aug 2003 17:30:23 +0200 (CEST) From: Idar Tollefsen <idart@performancedesign.no> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/55186: Doxygen 1.3.1 build fails on Alpha Message-ID: <20030802153023.6709320C70@mail.performancedesign.no> Resent-Message-ID: <200308021540.h72Fe9jh097293@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 55186 >Category: ports >Synopsis: Doxygen 1.3.1 build fails on Alpha >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sat Aug 02 08:40:09 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Idar Tollefsen >Release: FreeBSD 4.8-STABLE alpha >Organization: Performance Design >Environment: System: FreeBSD blackbird.performancedesign.no 4.8-STABLE FreeBSD 4.8-STABLE #0: Tue Jul 22 06:55:45 CEST 2003 idart@blackbird.performancedesign.no:/usr/obj/usr/src/sys/BLACKBIRD alpha >Description: Doxygen (1.3.1) fails to build from ports on an Alpha. Here's the last part of the output: gmake[2]: Entering directory `/usr/ports/devel/doxygen/work/doxygen-1.3.1/src' c++ -c -O1 -pipe -mcpu=ev56 -D_THREAD_SAFE -Wall -W -I../qtools -I../libpng -I. -o ../objects/main.o main.cpp c++ -o ../bin/doxygen ../objects/main.o -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -pthread /usr/libexec/elf/ld: ../lib/libdoxygen.a(language.o): .got subsegment exceeds 64K (size 94168) /usr/libexec/elf/ld: failed to set dynamic section sizes: File format not recognized The error indicates that ld can't have more than 64K symbols in any one object file, but apparently languages.o has more. This seems to be Alpha spesific, as all references I found to it was from Linux/Alpha users, but I'm not 100% sure. >How-To-Repeat: Try to build Doxygen 1.3.1 from ports/devel/doxygen on an Alpha. In my case, I did the build with HAVE_LATEX=yes, but that's not significant. >Fix: I've attached a patch against the ports' makefile that changes the default build to only build with English, as opposed to all supported languages which is the default now. I've also added a WITH-LANGS switch which will allow building with other languages. The suggested output should be changed, as the configure script isn't available .pre-everyting, but you get the point. I propose to apply this regardless of platform (Alpha or not) since I can't imagine anyone actually needing all the supported languanges. And with the WITH_LANGS switch, it should be easy enough to add this to pkgtools.conf for automatic builds. With this applied, I was able to build Doxygen with WITH_LANGS=no (no as in "Norwegian", not no as opposed to yes). One more thing; I've seen some package build logs for Doxygen on Alpha that indicates the build as "runaway". This happens while compiling a Flex generated config.cpp. It's actually not "runaway", it just takes an awfull long time to compile that file (between 12 and 24 hours on my 164LX, 533MHz). --- Makefile.patch begins here --- --- Makefile.orig Wed Jul 9 07:15:56 2003 +++ Makefile Sat Aug 2 16:52:36 2003 @@ -49,6 +49,12 @@ PLIST_SUB+= HAVE_DOXYWIZARD="@comment " .endif # !WITHOUT_DOXYWIZARD +.if defined(WITH_LANGS) +CONFIGURE_ARGS+=--enable-langs ${WITH_LANGS} +.else +CONFIGURE_ARGS+=--english-only +.endif #WITH_LANGS + USE_PERL5= yes HAS_CONFIGURE= yes USE_GMAKE= yes @@ -56,8 +62,9 @@ CONFIGURE_ARGS+=--prefix ${PREFIX} --perl ${PERL} --make ${GMAKE} \ --install "${INSTALL}" -.if !defined(NOPORTDOCS) && !defined(HAVE_LATEX) +.if (!defined(NOPORTDOCS) && !defined(HAVE_LATEX)) || (!defined(WITH_LANGS)) pre-everything:: +.if !defined(NOPORTDOCS) && !defined(HAVE_LATEX) @${ECHO_MSG} @${ECHO_MSG} "=================================================" @${ECHO_MSG} "If you want DVI, Postscript, and PDF documentation" @@ -66,6 +73,21 @@ @${ECHO_MSG} "=================================================" @${ECHO_MSG} .endif # !defined(NOPORTDOCS) && !defined(HAVE_LATEX) +.if !defined(WITH_LANGS) + @${ECHO_MSG} + @${ECHO_MSG} "=================================================" + @${ECHO_MSG} "If you want to enable support for languages other" + @${ECHO_MSG} "than English, hit Ctrl-C right now and use" + @${ECHO_MSG} "\"make WITH_LANGS=list\", where list is a comma" + @${ECHO_MSG} "separated list of languages (two letters). See" + @${ECHO_MSG} "\"http://www.stack.nl/~dimitri/doxygen/langhowto.html\"" + @${ECHO_MSG} "for a list of supported languages, or run" + @${ECHO_MSG} "\"${WRKSRC}/configure --help\"" + @${ECHO_MSG} "to see the list of supported two letter notations." + @${ECHO_MSG} "=================================================" + @${ECHO_MSG} +.endif # !defined(WITH_LANGS) +.endif # (!defined(NOPORTDOCS) && !defined(HAVE_LATEX)) || (!defined(WITH_LANGS)) pre-configure: @${PERL} -pi -e "s:gcc:${CC}:g; \ --- Makefile.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030802153023.6709320C70>