Subject: pkg/37444: devel/gettext-0.14.6 fails building gettext-tools, whist devel/gettext-tools suceeds!
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <srcshelton@gmail.com>
List: pkgsrc-bugs
Date: 11/28/2007 09:40:00
>Number: 37444
>Category: pkg
>Synopsis: devel/gettext-0.14.6 fails building gettext-tools, whist devel/gettext-tools suceeds!
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Nov 28 09:40:00 +0000 2007
>Originator: Stuart Shelton
>Release: n/a - pkgsrc latest from CVS
>Organization:
>Environment:
IRIX64 octane 6.5 07202013 IP30; MIPSpro 7.4.4m
>Description:
devel/gettext-0.14.6 fails to build in two ways, one of which is fixable.
gettext's gettext-tools/src/po-lex.h also requires a patch (as has been added to po-lex.c and indeed partially implemented in po-lex.h) to exclude the C99 codepath if '__sgi' is defined, following the check for DECC:
devel/gettext/work/gettext-0.14.6/gettext-tools/src/po-lex.h
@76
-#if __STDC__ && (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __DECC)
+#if __STDC__ && (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __DECC && !defined __sgi)
This has been solved in gettext-tools by simply "#ifdef 0"'ing out the entire section(!)
However, even with that change gettext's gettext-tools compiles but fails to link, stating that "po_gram_error_at_line" isn't defined - which is correct, because as-stands, the header defines it as extern, and it isn't defined elsewhere.
In gettext-tools' po-lex.c, the varargs functions are built as the condition has been changed to '#if 1' - but making the similar change to gettext itself again results in errors and a build failure.
>How-To-Repeat:
(Also, as of now, gettext-tools is at 0.14.6nb1 and gettext is at 0.14.6. Building gettext-tools causes a fatal error stating that there is a circular dependency between gettext and gettext-tools, whereas building gettext goes and builds gettext-tools-0.14.6nb1, then returns to build gettext at which point it says that a package named gettext-tools should be installed but isn't.
I fixed this by changing the DEPENDS line in gettext's Makefile to 'gettext-tools-0.14.6nb1')
>Fix:
However, having said all of this, if I copy po-lex.* from gettext-tools to gettext, then it compiles cleanly and passes its test-suite, except for:
/usr/bsd/var/tmp/devel/gettext/work/.wrapper/bin/shlibtool[59]: ../../gettext-runtime/libasprintf/libasprintf.la: not found
libtool: link: cannot find the library `../../gettext-runtime/libasprintf/libasprintf.la' or unhandled argument `../../gettext-runtime/libasprintf/libasprintf.la'
FAIL: lang-c++
(which may an issue with the build-environment rather than the code itself)
I can't see any difference in the (corrected) source between the two trees, so I imagine that I also copied over the pre-compiled object file, and that was used.