Skip site navigation (1)Skip section navigation (2)
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>