Bug 3338 - iptables-1.4.15: autoreconf run failed on gmae-toolchain
Summary: iptables-1.4.15: autoreconf run failed on gmae-toolchain
Status: VERIFIED FIXED
Alias: None
Product: ADT
Classification: Yocto Project Subprojects
Component: adt (show other bugs)
Version: 1.4
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 1.4 M5
Assignee: Hongxu Jia
QA Contact:
URL:
Whiteboard: Design
Depends on:
Blocks:
 
Reported: 2012-10-26 02:38 UTC by liang li
Modified: 2013-03-20 15:05 UTC (History)
12 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description liang li 2012-10-26 02:38:13 UTC
the bug similar to bug 3100, the toolchain is installed on "/home/yocto/mips_toolchain/" , not in "/opt/poky/".

run "autoreconf" of gmae-toolchain from:
http://autobuilder.pokylinux.org/nightly/20121024-1/toolchain/x86_64/poky-eglibc-x86_64-mips-toolchain-gmae-1.3+snapshot-20121024.sh

errors met below:
-----------
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libipq.la': linking libtool libraries using a non-POSIX
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libipq/Makefile.am:7:   while processing Libtool library 'libipq.la'
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libip4tc.la': linking libtool libraries using a non-POSIX
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libip4tc.la'
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libip6tc.la': linking libtool libraries using a non-POSIX
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libip6tc.la'
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libiptc.la': linking libtool libraries using a non-POSIX
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libiptc.la'
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libxtables.la': linking libtool libraries using a non-POSIX
/home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libxtables/Makefile.am:6:   while processing Libtool library 'libxtables.la'
Can't locate strict.pm in @INC (@INC contains: /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/autoconf /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/site_perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/site_perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/vendor_perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/vendor_perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2 .) at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/autoconf/Autom4te/Channels.pm line 70.
BEGIN failed--compilation aborted at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/autoconf/Autom4te/Channels.pm line 70.
Compilation failed in require at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/autoconf/Autom4te/ChannelDefs.pm line 19.
BEGIN failed--compilation aborted at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/share/autoconf/Autom4te/ChannelDefs.pm line 19.
Compilation failed in require at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/gnu-configize line 40.
BEGIN failed--compilation aborted at /home/yocto/mips_toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/gnu-configize line 40.
autoreconf: gnu-configize failed with exit status: 2
yocto@yocto-OptiPlex-990:/buildarea/tester/test_compile_toolchain_suse/iptables-1.4.15> perl -V
Can't locate Config.pm in @INC (@INC contains: /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/site_perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/site_perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/vendor_perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/vendor_perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2/ /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2 /opt/poky/1.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/perl/5.14.2 .).
BEGIN failed--compilation aborted.

steps:
1. run "sh poky-eglibc-x86_64-mips-toolchain-gmae-1.3+snapshot-20121024.sh",set destination dir to "/home/yocto/mips_toolchain/".
2. run "source /home/yocto/mips_toolchain/environment-setup-mips32-poky-linux"/
3. in iptables-1.4.15 directory,run "autoreconf -fi" or "./autogen.sh".

test env: 
hosts: opensuse 12.1 x86_64

git info:33440ee70623394d06a4b214c2be10788cba6d08
git branch: poky/master
Comment 1 Yi Zhao 2012-10-26 02:48:27 UTC
This issue doesn't happen when using the default toolchain directory /opt/poky/, but only happens with a relocated directory.
Comment 2 Robert Yang 2012-11-01 13:18:54 UTC
Hi RP:

Would you please help me to take a look at this:

This is because the perl's @INC value is compiled into the binary, and we can't change it when install the SDK, the @INC's value is /opt/xxxx which is set when comile, but our SDK is relocatable now, there is a solution is set the PERLLIB or PERL5LIB in the "environment-setup-*", I tested it on openSUSE 12.1, got another error: "can't find libssp.so.0", I export the LD_LIBRARY_PATH as a quick workaround, the it worked well except there are several warnings:

/home/lyang1/testsdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libipq.la': linking libtool libraries using a non-POSIX

What do you think about export the "PERLLIB" or "PERL5LIB" to fix this problem? I will find a correct way to fix the "libssp.so.0" issue.
Comment 3 Richard Purdie 2012-11-02 11:34:16 UTC
perl-native already has a call:

create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/'

Perhaps we should add this for nativesdk too?
Comment 4 Robert Yang 2012-11-12 15:33:52 UTC
(In reply to comment #3)
> perl-native already has a call:
> 
> create_wrapper ${D}${bindir}/perl
> PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/'
> 
> Perhaps we should add this for nativesdk too?

Hi RP:

Yes, we should use a wrapper for the nativesdk-perl, and it does have other problems as you had pointed out:-).

1) The perl's Fcntl.so (and others) needs libssp.so.0 (stack-protector) which is in the SDK, but it can't find it. Laurentiu is working on this now.

2) After workaround the libssp.so issue, when run "autoreconf", there is an error if the host's perl's version is not the same as the one in the SDK, the error says that the executable perl mismatches the perl lib's version, this is because most of the autotools' scripts use the "#!/usr/bin/perl -w" which is host perl, but the gnu-configize uses "#! /usr/bin/env perl" which invokes the perl wrapper in the SDK, and the wrapper will set the PERL5LIB to the SDK which causes the mismatch. We can make all the perl scripts to use the host perl or the SDK perl to fix this problem. I prefer to use the host's perl since there are 10 perl scripts (maybe not very accurate) use "#! /usr/bin/perl -w", but only 2 use "#!/bin/env perl", but if we make all these scripts use the host perl, then it seems that we don't need the nativesdk-perl any more.

3) There is another problem is that we only install the perl modules (pm), but doesn't install some corresponding shared libraries (so), for example the "Data::Dumper" which is needed by the autotools, we have installed the usr/lib/perl/5.14.2/Data/Dumper.pm, but didn't install the usr/lib/perl/5.14.2/auto/Data/Dumper/Dumper.so, so it doesn work.

The nativesdk would work correctly after fix all the above issues, I think that 
another solution is removing the nativesdk-perl.
Comment 5 Laurentiu Palcu 2012-11-22 15:25:31 UTC
> 1) The perl's Fcntl.so (and others) needs libssp.so.0 (stack-protector)
> which is in the SDK, but it can't find it. Laurentiu is working on this now.
> 
Sent a patch for this issue on the mailing list.
Comment 6 Jessica 2012-12-06 00:14:59 UTC
Laurentiu,

Is the patch merged? If so, please update the bug. thx
Comment 7 Robert Yang 2012-12-06 01:50:29 UTC
(In reply to comment #6)
> Laurentiu,
> 
> Is the patch merged? If so, please update the bug. thx

Yes, Laurentiu's patch has been merged, but it still needs another two patches which I'm working on.

// Robert
Comment 9 Alexandru Georgescu 2013-03-15 19:55:31 UTC
Hello,
I am reopening since I have some errors with the http://autobuilder.yoctoproject.org/pub/nightly/20130313-3/toolchain/x86_64/poky-eglibc-x86_64-i586-toolchain-gmae-1.3+snapshot-20130314.sh build.

commit:4da406cd50cf02a63ed76810a670aba1eb561c79

Tested with Ubuntu 12.10 64bit and Fedora 17 64bit

yocto@yocto-o1:~/0313-3/standalone-automated-MAR-4/iptables-1.4.15$ echo $CC
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/i586-poky-linux
yocto@yocto-o1:~/0313-3/standalone-automated-MAR-4/iptables-1.4.15$ autoreconf -fi
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libipq.la': linking libtool libraries using a non-POSIX
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libipq/Makefile.am:7:   while processing Libtool library 'libipq.la'
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libip4tc.la': linking libtool libraries using a non-POSIX
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libip4tc.la'
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libip6tc.la': linking libtool libraries using a non-POSIX
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libip6tc.la'
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libiptc.la': linking libtool libraries using a non-POSIX
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libiptc/Makefile.am:8:   while processing Libtool library 'libiptc.la'
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libxtables.la': linking libtool libraries using a non-POSIX
/home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libxtables/Makefile.am:6:   while processing Libtool library 'libxtables.la'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
yocto@yocto-o1:~/0313-3/standalone-automated-MAR-4/iptables-1.4.15$
Comment 10 Hongxu Jia 2013-03-19 08:14:54 UTC
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
>         LANGUAGE = "en_US:en",
>         LC_ALL = (unset),
>         LANG = "en_US.UTF-8"
>     are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").

This has nothing to do with the relocation or adt. On the test machine, the
`LC_ALL'  is unset, warning can be removed if the following lines are added
to `~/.bashrc':
...
export LC_ALL=C
...

> /home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-
> linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libipq.la': linking
> libtool libraries using a non-POSIX
> /home/yocto/0313-3/standalone-automated-MAR-4/sdk/sysroots/x86_64-pokysdk-
> linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires
> 'AM_PROG_AR' in 'configure.ac'
> libipq/Makefile.am:7:   while processing Libtool library 'libipq.la'
This has nothing to do with the relocation or adt. It's an automake 1.12 
issue, well known over internet. autoreconf can be run if the following
lines are added to configure.ac:
...
m4_pattern_allow([AM_PROG_AR])
    AM_PROG_AR
...

Maybe we should ignore the previous warnings.

//Hongxu
Comment 11 Hongxu Jia 2013-03-19 08:22:52 UTC
If there is not other error, maybe we should close it.
Comment 12 Alexandru Georgescu 2013-03-20 15:05:13 UTC
verified as per last comment.
I will open another bug which will cover the additional warnings that I found.