Summary: | emerge dev-perl/Locale-gettext-1.05 fails after changing CHOSTs | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Christian Theune <ct> |
Component: | New packages | Assignee: | Gentoo Perl team <perl> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | Paul.Sorensen, vapier |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Christian Theune
2006-11-20 05:34:07 UTC
Failure is: checking for gettext... no checking for gettext in -lintl... no gettext function not found. Please install libintl at Makefile.PL line 18. dev-perl/Locale-gettext DEPENDs on sys-devel/gettext. Could you make sure you have it installed? Yes, it's installed: [ Searching for package 'gettext' in all categories among: ] * installed packages [I--] [ ] sys-devel/gettext-0.15 (0) The tests associated with determing whether you have gettext support aren't really too complex. Is libintl.h in /usr/include (provided by glibc and necessary for half the basic tests here)? What does gcc -print-search-dirs say? Please also include perl -V output so we can see how perl was compiled. You can also try the following, which is the same process that is failing in the Makefile.PL: create a file called conftest.c with the following input: #include <libintl.h> int main(int argc, char **argv) { char *x = gettext("foo"); return 0; } perl -V:cc to get the compiler to use (the script bases it's compiler on what perl was built with, so for example on the box i'm on atm, it's i686-pc-linux-gnu-gcc - perl -V:cc should tell you what to use). Then run both: i686-pc-linux-gnu-gcc -o conftest -lintl conftest.c which tests whether -lintl could be loaded (not important, but good to know) and if that fails, run: i686-pc-linux-gnu-gcc -o conftest conftest.c On my test x86 desktop, the first failed, but the second passed, which is all that Locale-gettext really cared about anyway. Since the Makefile.PL is capturing the errors, this will be your best for finding out what/why this module is failing to locate gettext. I think this happens because the installed perl is looking for the wrong compiler (I had this issue when building up from a chroot that started with i386-pc-linux-gnu and upgraded to i686-pc-linux-gnu - i.e. changed CHOST, and that was the problem). It blames gettext because that's the first test it does that uses the compiler from 'perl -V:cc'. To fix it, did: gcc-config <compiler> env-update source /etc/profile after which 'perl -V:cc' returned i686-pc-linux-gnu-gcc. Probably a good idea to rebuild dev-lang/perl at this point. I'd also like to add that I've had this fail on a stage1 install too! See: http://forums.gentoo.org/viewtopic-t-541210.html I don't know if this will help, but emerging perl *before* running the bootstrap process is a workaround for my issue i.e. # emerge --oneshot --nodeps perl # /usr/portage/scripts/bootstrap.sh I wasn't sure if this was a good idea tho, as I believe perl shouldn't be installed until the emerge -e system part of a stage1 install. @Christian, have you changed your CHOST? (In reply to comment #6) (In reply to comment #7) We don't support stage1 installs at all, so we really don't care much about boostrap or whatnot bombing out on you, sorry. This also occurred under gentoo-prefix: I have gettext-0.16.1 installed but it cannot seem to detect it what so ever, as follows: checking for gettext in -lintl...gettext function not found. Please install libintl at Makefile.PL line 18. no !!! ERROR: dev-perl/Locale-gettext-1.05 failed. Call stack: ebuild.sh, line 1694: Called dyn_compile ebuild.sh, line 1051: Called qa_call 'src_compile' environment, line 3218: Called src_compile ebuild.sh, line 1384: Called perl-module_src_compile perl-module.eclass, line 136: Called perl-module_src_prep perl-module.eclass, line 125: Called die !!! Unable to build! (are you using USE="build"?) !!! If you need support, post the topmost build error, and the call stack if relevant. !!! A complete build log is located at '/opt/var/log/portage/dev-perl:Locale-gettext-1.05:20070307-202050.log' (In reply to comment #9) > This also occurred under gentoo-prefix: I have gettext-0.16.1 installed but it > cannot seem to detect it what so ever, as follows: > > checking for gettext in -lintl...gettext function not found. Please install > libintl at Makefile.PL line 18. > no > > !!! ERROR: dev-perl/Locale-gettext-1.05 failed. > Call stack: > ebuild.sh, line 1694: Called dyn_compile > ebuild.sh, line 1051: Called qa_call 'src_compile' > environment, line 3218: Called src_compile > ebuild.sh, line 1384: Called perl-module_src_compile > perl-module.eclass, line 136: Called perl-module_src_prep > perl-module.eclass, line 125: Called die > > !!! Unable to build! (are you using USE="build"?) > !!! If you need support, post the topmost build error, and the call stack if > relevant. > !!! A complete build log is located at > '/opt/var/log/portage/dev-perl:Locale-gettext-1.05:20070307-202050.log' > Correction: Prepend following to comment #9: /opt/var/tmp/portage/dev-perl/Locale-gettext-1.05/work/gettext-1.05 * Using ExtUtils::MakeMaker checking for gettext... no above text was missing from my paste into comment #9. If comment #5 is right (sorry, I actually missed the followup actions on this bug or would have posted sooner), then you can try to edit (adjust paths accordingly): /usr/lib64/perl5/5.8.8/x86_64-linux/Config_heavy.pl to update the compiler - but i'd really recommend rebuilding perl over this (or at least think I do - I'm not sure of the ramifications of adjusting this file directly, to be blunt - perl uses the values from build to then build modules with and expects the two to be in sync with one another). (In reply to comment #4) > The tests associated with determing whether you have gettext support aren't > really too complex. Is libintl.h in /usr/include (provided by glibc and > necessary for half the basic tests here)? What does gcc -print-search-dirs > say? Please also include perl -V output so we can see how perl was compiled. > You can also try the following, which is the same process that is failing in > the Makefile.PL: > > create a file called conftest.c with the following input: > #include <libintl.h> > > int main(int argc, char **argv) > { > char *x = gettext("foo"); > return 0; > } > > perl -V:cc to get the compiler to use (the script bases it's compiler on what > perl was built with, so for example on the box i'm on atm, it's > i686-pc-linux-gnu-gcc - perl -V:cc should tell you what to use). Then run both: > i686-pc-linux-gnu-gcc -o conftest -lintl conftest.c > which tests whether -lintl could be loaded (not important, but good to know) > and if that fails, run: > i686-pc-linux-gnu-gcc -o conftest conftest.c > > On my test x86 desktop, the first failed, but the second passed, which is all > that Locale-gettext really cared about anyway. Since the Makefile.PL is > capturing the errors, this will be your best for finding out what/why this > module is failing to locate gettext. > Under gentoo-prefix, it looks for libintl.h in /usr/include. To be prefix-friendly it should look in {prefix}/usr/include. As a temporary work-around I symlinked {prefix}/usr/include/libintl.h @/usr/include. Its sloppy, but it built and installed just fine after that for me. Until then it could not locate gettext-0.16.1 that was installed. (In reply to comment #5) > I think this happens because the installed perl is looking for the wrong > compiler (I had this issue when building up from a chroot that started with > i386-pc-linux-gnu and upgraded to i686-pc-linux-gnu - i.e. changed CHOST, and > that was the problem). It blames gettext because that's the first test it does > that uses the compiler from 'perl -V:cc'. > > To fix it, did: > > gcc-config <compiler> > env-update > source /etc/profile > > after which 'perl -V:cc' returned i686-pc-linux-gnu-gcc. > > Probably a good idea to rebuild dev-lang/perl at this point. > I just had this issue after installing a fresh stage 3 a few days ago and then updating. After updating the perl installation 'perl -V:cc' returned the correct profile and the update to Locale-gettext-1.05 now installs correctly. Thanks hmm, perhaps the perl-module eclass could be updated with a sanity check for when things fail to see if 'perl -V:cc' works ? any CHOST change would trigger this sort of weird breakage ... I've just run into this too just rebuilding perl helped, no need to play with gcc-config ... Same Problem on 2008.0 i686: perl -V:cc returned: cc='i486-pc-linux-gnu-gcc'; after re-emerging Perl everything's right Is this still an issue? I am going to close the bug as it works here, if not please reopen. |