Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 57559

Summary: gnuconfig fails with USE=uclibc and sys-devel/libtool-1.5.2-r5 (and QA faults)
Product: Gentoo Linux Reporter: Daniel Black (RETIRED) <dragonheart>
Component: Current packagesAssignee: Aron Griffis (RETIRED) <agriffis>
Status: RESOLVED INVALID    
Severity: blocker CC: embedded
Priority: High    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: gnuconfig-test.patch

Description Daniel Black (RETIRED) gentoo-dev 2004-07-19 01:34:57 UTC
Attempting to do a uclibc install.

This is in a chroot of solar's uclibc stage 1:

http://oc12.net/~solar/gentoo/uclibc/x86/stage1-uclibc-20040701.tar.bz2

Followed by emerge portage.

>>> emerge (2 of 19) sys-devel/libtool-1.5.2-r5 to /
>>> md5 src_uri ;-) libtool-1.5.2.tar.gz
>>> md5 src_uri ;-) libtool-1.3.5.tar.gz
>>> Unpacking source...
>>> Unpacking libtool-1.5.2.tar.gz to /var/tmp/portage/libtool-1.5.2-r5/work
>>> Unpacking libtool-1.3.5.tar.gz to /var/tmp/portage/libtool-1.5.2-r5/work

automake-1.5: configure.in: installing `./missing'
 * Patching libtool-1.3.5 ...
 * Applying libtool-1.2f-cache.patch...                                                                      [ ok ]
 * Applying libtool-1.3.5-nonneg.patch...                                                                    [ ok ]
 * Applying libtool-1.3.5-mktemp.patch...                                                                    [ ok ]
 * Applying ltconfig-uclibc.patch...                                                                         [ ok ]

 * Patching libtool-1.5.2 ...
 * Applying libtool-1.4-nonneg.patch...                                                                      [ ok ]
 * Applying libtool-1.4.2-multilib.patch...                                                                  [ ok ]
 * Applying libtool-1.4.2-demo.patch...                                                                      [ ok ]
 * Applying libtool-1.5-libtool.m4-x86_64.patch...                                                           [ ok ]
 * Applying libtool-1.5-testfailure.patch...                                                                 [ ok ]
 * Applying libtool-1.4.3-lib64.patch...                                                                     [ ok ]
 * Applying libtool-1.4.2-archive-shared.patch...                                                            [ ok ]
 * Applying libtool-1.4.3-ltmain-SED.patch...                                                                [ ok ]
 * Applying libtool-1.4.2-expsym-linux.patch...                                                              [ ok ]
 * Applying libtool-1.4.3-amd64-alias.patch...                                                               [ ok ]
 * Applying libtool-1.4.3-libtoolize--config-only.patch...                                                   [ ok ]
 * Applying libtool-1.4.3-pass-thread-flags.patch...                                                         [ ok ]
 * Applying libtool-1.4.2-portage.patch...                                                                   [ ok ]
 * Applying libtool-1.5.2-libtool_m4-shared_ext.patch...                                                     [ ok ]
 * Applying libtool-1.5.2-ltmain_sh-max_cmd_len.patch...                                                     [ ok ]
 * Generate ltmain.sh ...
 * Using GNU config files from /usr/share/gnuconfig
 * Can't read /usr/share/gnuconfig//var/tmp/portage/libtool-1.5.2-r5/work, skipping..
>>> Source unpacked.
 * Configuring libtool-1.3.5 ...
creating cache ./config.cache
checking for a BSD compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking whether the C compiler (gcc -Os -march=i386 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -Os -march=i386 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for ranlib... ranlib
checking host system type... Invalid configuration `i386-pc-linux-uclibc': machine `i386-pc-linux' not recognized

checking build system type... Invalid configuration `i386-pc-linux-uclibc': machine `i386-pc-linux' not recognized

checking for ld used by GCC... /usr/i386-pc-linux-uclibc/bin/ld
checking if the linker (/usr/i386-pc-linux-uclibc/bin/ld) is GNU ld... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking for mawk... no
checking for gawk... gawk
updating cache ./config.cache
creating ./config.status
creating Makefile
creating doc/Makefile
creating tests/Makefile
configuring in libltdl
running /bin/sh ./configure  --host=i386-pc-linux-uclibc --prefix=/usr --infodir=/usr/share/info --enable-ltdl-install --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking for a BSD compatible install... (cached) /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... (cached) yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... (cached) gcc
checking whether the C compiler (gcc -Os -march=i386 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -Os -march=i386 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for working const... yes
checking for inline... inline
checking host system type... Invalid configuration `i386-pc-linux-uclibc': machine `i386-pc-linux' not recognized

checking build system type... Invalid configuration `i386-pc-linux-uclibc': machine `i386-pc-linux' not recognized

checking for ranlib... (cached) ranlib
checking for ld used by GCC... (cached) /usr/i386-pc-linux-uclibc/bin/ld
checking if the linker (/usr/i386-pc-linux-uclibc/bin/ld) is GNU ld... (cached) yes
checking for BSD-compatible nm... (cached) /usr/bin/nm -B
checking whether ln -s works... (cached) yes
updating cache .././config.cache
loading cache .././config.cache within ltconfig
ltconfig: you must specify a host type if you use `--no-verify'
Try `ltconfig --help' for more information.
configure: error: libtool configure failed
configure: error: ./configure failed for libltdl

!!! ERROR: sys-devel/libtool-1.5.2-r5 failed.
!!! Function src_compile, Line 150, Exitcode 1
!!! (no error message)

# emerge info
Portage 2.0.50-r8 (x86, gcc-3.4.0, glibc-unavailable, 2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 i686
Gentoo Base System version 1.4.16
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.5-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-Os -march=i386 -pipe -fomit-frame-pointer"
CHOST="i386-pc-linux-uclibc"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=i386 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig buildpkg ccache nodoc noinfo noman sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.oregonstate.edu"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage-uclibc"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="crypt hardened justify multicall ncurses pic pie readline tcpd uclibc x86 zlib"

if you get a perl access violation on unlink /usr/bin/perl after the install (I have no idea how) do a ebuild.... qmerge will get past it.



QA:

header on sys-devel/libtool-1.5.2-r5 is corrupted.

and 
        export WANT_AUTOCONF_2_5=1
        export WANT_AUTOMAKE_1_5=1

sould be
        export WANT_AUTOCONF=2.5
        export WANT_AUTOMAKE=1.5

if I remember correcly.
Comment 1 solar (RETIRED) gentoo-dev 2004-07-19 09:13:58 UTC
 * Using GNU config files from /usr/share/gnuconfig
 * Can't read /usr/share/gnuconfig//var/tmp/portage/libtool-1.5.2-r5/work,

^ Key thing about this.

Same thing happens with misc other ebuild where we want to use gnuconfig_update <param> such as module-init-tools or any ebuild using the following gnuconfig_update ${WORKDIR}

This probably means the gnuconfig.eclass could probably use some logic rereview.
Comment 2 Aron Griffis (RETIRED) gentoo-dev 2004-07-20 15:21:26 UTC
I see that this was entered on the 19th, but I'm fairly certain this bug was fixed a couple days ago.  Mind checking?
Comment 3 Daniel Black (RETIRED) gentoo-dev 2004-07-20 17:43:47 UTC
No sorry - just did resync and emerge and got the same result. Have changed portage config to http://oc12.net/~solar/gentoo/uclibc/x86/etc.portage-20040719.tgz.
Comment 4 Aron Griffis (RETIRED) gentoo-dev 2004-07-25 10:09:52 UTC
Here is what it does on my system:

 * Using GNU config files from /usr/share/libtool
 *  Updating libtool-1.3.5/config.sub                 [ ok ]
 *  Updating libtool-1.5.2/libltdl/config.sub         [ ok ]
 *  Updating libtool-1.5.2/config.sub                 [ ok ]
 *  Updating libtool-1.3.5/config.guess               [ ok ]
 *  Updating libtool-1.5.2/libltdl/config.guess       [ ok ]
 *  Updating libtool-1.5.2/config.guess               [ ok ]

I'm not using uclibc though.  Please try this:

 grep Header /usr/portage/eclass/gnuconfig.eclass

My output is

# $Header: /var/cvsroot/gentoo-x86/eclass/gnuconfig.eclass,v 1.23 2004/07/13 21:43:28 agriffis Exp $
Comment 5 solar (RETIRED) gentoo-dev 2004-07-25 12:29:33 UTC
uCsimple portage # grep Header /usr/portage/eclass/gnuconfig.eclass
# $Header: /var/cvsroot/gentoo-x86/eclass/gnuconfig.eclass,v 1.23 2004/07/13 21:43:28 agriffis Exp $

I know this might seem odd to you but it's what's happening.
This may provide you some insight to the "why"

uCsimple libtool # ls -l /usr/share/libtool/
total 192
lrwxrwxrwx  1 root root     25 Jul  3 03:45 config.guess -> ../gnuconfig/config.guess
lrwxrwxrwx  1 root root     23 Jul  3 03:45 config.sub -> ../gnuconfig/config.sub
drwxr-xr-x  2 root root   4096 Jul  3 03:45 libltdl
-rw-r--r--  1 root root 185428 Jul  3 03:45 ltmain.sh

------------------------
The function gnuconfig_findnewest() returns both /usr/share/libtool in a uclibc and a glibc environment.

[ ! -r /usr/share/libtool/config.sub ] && echo ok
Also seem to yeild the same results.

What makes this bug even odder to me is that I just made it into a script and run it from comamnd line and all seems kosher.

I'm stumped atm on this one atm ;/
Comment 6 Aron Griffis (RETIRED) gentoo-dev 2004-07-25 19:43:36 UTC
Created attachment 36158 [details, diff]
gnuconfig-test.patch

How about trying the attached patch?  It's a shot in the dark really.
Comment 7 solar (RETIRED) gentoo-dev 2004-07-25 21:09:20 UTC
 * Generate ltmain.sh ...
gnuconfig_update arg1 = [/var/tmp/portage/libtool-1.5.2-r5/work]
 * Using GNU config files from /usr/share/libtool

Ok great libtool merged.
-----------------------------------------------------------
Now let's try that module-init-tools one.

First run as is. (FAILS)
Then with 


Index: module-init-tools-3.0-r2.ebuild
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-apps/module-init-tools/module-init-tools-3.0-r2.ebuild,v
retrieving revision 1.6
diff -u -b -B -w -p -r1.6 module-init-tools-3.0-r2.ebuild
--- module-init-tools-3.0-r2.ebuild	13 Jul 2004 21:55:26 -0000	1.6
+++ module-init-tools-3.0-r2.ebuild	26 Jul 2004 03:53:19 -0000
@@ -51,13 +51,12 @@ src_unpack() {
 	rm -f missing
 	export WANT_AUTOMAKE=1.6
 	automake --add-missing
-}
-
-src_compile() {
 
 	# If running mips64, we need updated configure data
-	gnuconfig_update
+	gnuconfig_update ${WORKDIR}
+}
 
+src_compile() {
 	local myconf=
 
 	filter-flags -fPIC


 * Applying modutils-2.4.22-no-above-below.patch...                                                                                                   [ ok ] * Applying module-init-tools-0.9.15-legacy-modext-support.patch...                                                                                   [ ok ] * Applying generate-modprobe-assume-kernel.patch...                                                                                                  [ ok ]configure.in: installing `./missing'
gnuconfig_update arg1 = [/var/tmp/portage/module-init-tools-3.0-r2/work]
 * Using GNU config files from /usr/share/libtool
 *  Updating module-init-tools-3.0/config.sub                                                                                                         [ ok ] *  Updating modutils-2.4.26/config.sub                                                                                                               [ ok ] *  Updating module-init-tools-3.0/config.guess                                                                                                       [ ok ] *  Updating modutils-2.4.26/config.guess                                                                                                           

---
Ok great so now module-init-tools merges.
ok so.. 
From looking at this patch it does seem to actually do anything other than print
your **argv array to the command line so I reverted it and rebuilt 
module-init-utils a few times and umm.. shoot me.. It no longer seems to be a problem. Anyway gnuconfig_update ${WORKDIR} seems to work like a charm now.

dragonheart can you confirm this please?
Comment 8 Aron Griffis (RETIRED) gentoo-dev 2004-07-26 10:28:06 UTC
solar, my patch made one other change, look closely ;-)

I don't know if that part has anything to do with it, though.  I was just guessing that for some reason in the uclibc environment there might be bogus characters on the front of $1 prior to the /.  I couldn't see any other reason for it to be failing.
Comment 9 solar (RETIRED) gentoo-dev 2004-07-26 10:36:07 UTC
+	for ((x = 1; x <= $#; x = x + 1)); do
+		echo "gnuconfig_update arg$x = [${!x}]"
+	done

Unless I'm getting blind/dense must be blind cuz this is all I see it doing.

What am I missing?
Comment 10 Aron Griffis (RETIRED) gentoo-dev 2004-07-26 12:44:16 UTC
-	if [[ $1 == /* ]]; then
+	if [[ $1 == */* ]]; then
Comment 11 Aron Griffis (RETIRED) gentoo-dev 2004-07-27 16:59:52 UTC
Ok, this is assigned to me, and even with my change it appears to work.  I'm marking resolved unless one of you re-opens with more information.