Summary: | dev-lang/perl-5.26.1-r1 fails to compile on prefix | ||
---|---|---|---|
Product: | Gentoo/Alt | Reporter: | Guilherme Amadio <amadio> |
Component: | Prefix Support | Assignee: | Gentoo Prefix <prefix> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | zeekec |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | perl-5.26.1-r1-build.log |
Description
Guilherme Amadio
2018-01-26 13:24:26 UTC
Is it just bootstrapped or migrated from prefix/linux-standalone? If it is the latter, following https://www.gentoo.org/support/news-items/2017-11-30-new-17-profiles.html would be necessary. amadio, would you mind digging into "../../miniperl" "-I../../lib" Errno_pm.PL Errno.pm to see exactly what gcc invoke gives this error? Hi Benda, this was a fresh bootstrap. I will have a look for the cause and report it here. However, it looks like the paths looked at are hardcoded when generating Errno.pm, so we will have to add $EPREFIX/usr/include with a patch. (In reply to Guilherme Amadio from comment #3) > Hi Benda, this was a fresh bootstrap. I will have a look for the cause and > report it here. However, it looks like the paths looked at are hardcoded > when generating Errno.pm, so we will have to add $EPREFIX/usr/include with a > patch. Is it failing during `emerge -e @system`? The bottom line is, if $EPREFIX/usr/include need to be added, the toolchain is screwed, and we need to fix that instead. That said, if I were you, I would put Comment 2 into priority before inspecting the toolchain. Hi Benda, I don't think it's the toolchain. There is a script to generate the source file, it's that script that has hard-coded search paths and fails to find errno.h. (In reply to Guilherme Amadio from comment #5) > Hi Benda, I don't think it's the toolchain. There is a script to generate > the source file, it's that script that has hard-coded search paths and fails > to find errno.h. I see! CoreOS might have revealed this bug for us. I see this on OpenIndiana: x86_64-pc-solaris2.11-gcc -m64 -o miniperl \ opmini.o perlmini.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl .o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o p erlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o dquo te.o time64.o miniperlmain.o -lpthread -lsocket -ldl -lm -lc /gentoo/prefix64/usr/x86_64-pc-solaris2.11/binutils-bin/2.29.1/ld: pp_sys.o: und efined reference to symbol 'h_errno@@SUNW_0.7' /lib/amd64/libnsl.so.1: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [makefile:357: lib/buildcustomize.pl] Error 1 make: *** Waiting for unfinished jobs.... * ERROR: dev-lang/perl-5.26.1-r2::gentoo_prefix failed (compile phase): Perhaps related? Hi Fabian, Yes, it could be related. I already have a fix, though. I will push it soon and we will find out. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=475f23e198ba9e76dad67a8762eef64c037c55f3 commit 475f23e198ba9e76dad67a8762eef64c037c55f3 Author: Guilherme Amadio <amadio@gentoo.org> AuthorDate: 2018-03-02 09:19:33 +0000 Commit: Guilherme Amadio <amadio@gentoo.org> CommitDate: 2018-03-05 19:29:27 +0000 dev-lang/perl: use errno.h from prefix, bug #645804 Closes: https://bugs.gentoo.org/645804 Package-Manager: Portage-2.3.24, Repoman-2.3.6 dev-lang/perl/perl-5.26.1-r2.ebuild | 5 +++++ 1 file changed, 5 insertions(+) This breaks prefix-guest, which uses host libc... The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=773709ec686624a37ca8bd1725bdb6739bd2b278 commit 773709ec686624a37ca8bd1725bdb6739bd2b278 Author: Michael Haubenwallner <haubi@gentoo.org> AuthorDate: 2018-05-17 10:29:53 +0000 Commit: Michael Haubenwallner <haubi@gentoo.org> CommitDate: 2018-05-17 10:31:12 +0000 dev-lang/perl: use host errno.h with prefix-guest, bug #645804 Closes: https://bugs.gentoo.org/645804 Package-Manager: Portage-2.3.24, Repoman-2.3.6 dev-lang/perl/perl-5.26.2.ebuild | 2 +- dev-lang/perl/perl-5.26.9999.ebuild | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) I meet this bug again. I'm trying install a fresh prefix bootstrap. meet this error on stage3. I checked Errno_pm.PL, found the search path root at line 132 was: ${EPRIFIX}/tmp/ It should been modified by these lines in perl-5.26.2.ebuild: # Use errno.h from prefix rather than from host system, bug #645804 if use prefix && ! use prefix-guest; then sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die fi I found errno.h in ${EPREFIX}/usr/include/. but ${EPREFIX}/tmp/usr/include/ do not contain errno.h. seem bootstrap-prefix script change the environment variable ${EPREFIX} to ${EPREFIX}/tmp cause this? This should check the existence of errno.h in the Prefix IMO. During stage3, EPREFIX should always be ${EPREFIX}, not ${EPREFIX}/tmp. |