Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 404529 - sys-devel/binutils-2.21.1-r1 : -L options ignored in GROUPS ld scripts
Summary: sys-devel/binutils-2.21.1-r1 : -L options ignored in GROUPS ld scripts
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: Normal normal
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-19 14:50 UTC by Bertrand Jacquin
Modified: 2012-02-20 19:29 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
sys-libs:libcap-2.22:20120219-145038.log (sys-libs:libcap-2.22:20120219-145038.log,9.57 KB, text/plain)
2012-02-19 14:51 UTC, Bertrand Jacquin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bertrand Jacquin 2012-02-19 14:50:06 UTC
I'm trying to cross-compile libcap using crossdev to a different ROOT that crossdev define, and I'm face to a LD script issue.

I'm running :

ROOT=/data/cross/kvm32/firmware emerge-wrapper --target i686-pc-linux-gnu -vat libcap

crossdev toolchain is installed in /usr/i686-pc-linux-gnu

sys-libs/libcap-2.22 depend on sys-apps/attr that create $ROOT/usr/lib/libattr.so containing 

OUTPUT_FORMAT ( elf32-i386 )
GROUP ( /lib/libattr.so.1 )

This is fine but when linking libcap to libattr.so, ld search for :

/data/cross/kvm32/firmware/usr/lib/libattr.so <= The LD script
/usr/i686-pc-linux-gnu/lib/libattr.so.1
/lib/libattr.so.1

So I get an ld error telling me that /lib/libattr.so.1 has the wrong format :

# strace -fF -s 1024 -e trace=open /usr/bin/i686-pc-linux-gnu-ld -v --sysroot=/usr/i686-pc-linux-gnu --eh-frame-hdr -m elf_i386 -shared -o libcap.so.2.22 /usr/i686-pc-linux-gnu/usr/lib/../lib/crti.o /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/crtbeginS.o -L/data/cross/kvm32/firmware/lib -L/data/cross/kvm32/firmware/usr/lib -L/var/tmp/i686-pc-linux-gnu/portage/sys-libs/libcap-2.22/work/libcap-2.22/libcap -L/var/tmp/i686-pc-linux-gnu/portage/sys-libs/libcap-2.22/work/libcap-2.22/libcap/../libcap -L/usr/lib/gcc/i686-pc-linux-gnu/4.5.3 -L/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../i686-pc-linux-gnu/lib/../lib -L/usr/i686-pc-linux-gnu/lib/../lib -L/usr/i686-pc-linux-gnu/usr/lib/../lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../i686-pc-linux-gnu/lib -L/usr/i686-pc-linux-gnu/lib -L/usr/i686-pc-linux-gnu/usr/lib -x -soname libcap.so.2 cap_alloc.o cap_proc.o cap_extint.o cap_flag.o cap_text.o cap_file.o -lattr -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/crtendS.o /usr/i686-pc-linux-gnu/usr/lib/../lib/crtn.o
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/tls/x86_64/libbfd-2.21.1.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/tls/libbfd-2.21.1.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/x86_64/libbfd-2.21.1.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/libbfd-2.21.1.so", O_RDONLY) = 3
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib64/libdl.so.2", O_RDONLY)     = 3
open("/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libc.so.6", O_RDONLY)      = 3
open("/lib64/libz.so.1", O_RDONLY)      = 3
GNU ld (GNU Binutils) 2.21.1
open("libcap.so.2.22", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
open("/usr/i686-pc-linux-gnu/usr/lib/../lib/crti.o", O_RDONLY) = 4
open("/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/crtbeginS.o", O_RDONLY) = 5
open("cap_alloc.o", O_RDONLY)           = 6
open("cap_proc.o", O_RDONLY)            = 7
open("cap_extint.o", O_RDONLY)          = 8
open("cap_flag.o", O_RDONLY)            = 9
open("cap_text.o", O_RDONLY)            = 10
open("cap_file.o", O_RDONLY)            = 11
open("/data/cross/kvm32/firmware/lib/libattr.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/data/cross/kvm32/firmware/lib/libattr.a", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/data/cross/kvm32/firmware/usr/lib/libattr.so", O_RDONLY) = 12
open("/data/cross/kvm32/firmware/usr/lib/libattr.so", O_RDONLY) = 13
open("/data/cross/kvm32/firmware/usr/lib/libattr.so", O_RDONLY) = 12
open("/usr/i686-pc-linux-gnu/lib/libattr.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libattr.so.1", O_RDONLY)     = 13
/usr/bin/i686-pc-linux-gnu-ld: skipping incompatible /lib/libattr.so.1 when searching for /lib/libattr.so.1
/usr/bin/i686-pc-linux-gnu-ld: cannot find /lib/libattr.so.1

I can't figure out why only /usr/i686-pc-linux-gnu/lib/libattr.so.1 is used as -L specify some other paths.



Reproducible: Always

Steps to Reproduce:
1. crossdev -t i686-pc-linux-gnu
2. prepare /data/cross/kvm32/firmware root
3. ROOT=/data/cross/kvm32/firmware emerge-wrapper --target i686-pc-linux-gnu -vat libcap
Comment 1 Bertrand Jacquin 2012-02-19 14:51:39 UTC
Created attachment 302503 [details]
sys-libs:libcap-2.22:20120219-145038.log
Comment 2 Bertrand Jacquin 2012-02-19 14:52:19 UTC
Portage 2.1.10.47 (embedded, gcc-4.5.3, unavailable, 3.2.6-gentoo x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.2.6-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9650_@_3.00GHz-with-gentoo-2.1
Timestamp of tree: Sat, 18 Feb 2012 14:45:01 +0000
app-shells/bash:          4.2_p20
dev-lang/python:          2.7.2-r3, 3.2.2
dev-util/cmake:           2.8.7-r3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.11.3
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.5-r2
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.2 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r2
Repositories:

gentoo
    location: /usr/portage
    sync: rsync://rsync.melee/gentoo-portage
    priority: -1000

meleeweb
    location: /opt/meleeweb/portage
    masters: meleeweb zugaina wolf31o2 gentoo
    priority: 0

hacking-gentoo
    location: /var/lib/layman/hacking-gentoo
    masters: gentoo
    priority: 2

zugaina
    location: /var/lib/layman/zugaina
    masters: zugaina wolf31o2 meleeweb gentoo
    priority: 3

wolf31o2
    location: /var/lib/layman/wolf31o2
    masters: gentoo
    priority: 4

ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA"
ACCEPT_PROPERTIES="*"
ARCH="x86"
AUTOCLEAN="yes"
BUILD_CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
BUILD_CPPFLAGS=""
BUILD_CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=i686 -Os -pipe -fomit-frame-pointer -I/data/cross/kvm32/firmware/usr/include/ -I/data/cross/kvm32/firmware/include/"
CHECKREQS_ACTION="error"
CHOST="i686-pc-linux-gnu"
CLEAN_DELAY="0"
COLLISION_IGNORE="/lib/modules"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=i686 -Os -pipe -fomit-frame-pointer"
DISTDIR="/data/cross/distfiles"
EBEEP_IGNORE="1"
EDITOR="/usr/bin/vim"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="-v --quiet-build=n"
EMERGE_WARNING_DELAY="10"
EPAUSE_IGNORE="1"
EPREFIX=""
EROOT="/data/cross/kvm32/firmware/"
E_MACHINE="EM_386"
FCFLAGS=""
FEATURES="binpkg-logs buildpkg collision-protect distlocks ebuild-locks fixlafiles nodoc noinfo noman parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FETCHCOMMAND="/opt/meleeweb/bin/cross-fetch --connect-timeout 5 -f -L -o ${DISTDIR}/${FILE} --url ${URI}"
FETCHCOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""
FETCHCOMMAND_SFTP="bash -c "x=\${2#sftp://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec sftp -P \${port} \"\${host}:/\${x#*/}\" \"\$1\"" sftp "${DISTDIR}/${FILE}" "${URI}""
FETCHCOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""
FFLAGS=""
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="   http://mirror.meleeweb.net/pub/linux/gentoo "
GSETTINGS_BACKEND="gconf"
HOME="/root"
HOSTCC="x86_64-pc-linux-gnu-gcc"
INFOPATH="/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.22/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.3/info"
INPUT_DEVICES=""
KERNEL="linux"
LDFLAGS="-L/data/cross/kvm32/firmware/lib -L/data/cross/kvm32/firmware/usr/lib"
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe %s"
LIBDIR_amd64="lib64"
LIBDIR_x86="lib"
LIBRARY_PATH="/opt/intel/Compiler/11.1/072/lib/intel64:/opt/intel/Compiler/11.1/072/idb/lib/intel64"
LINGUAS="en"
LOGNAME="root"
LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
MAKEOPTS="-j6"
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.22/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.3/man:/opt/intel/Compiler/11.1/072/man/en_US:/usr/lib64/php5.4/man/"
NLSPATH="/opt/intel/Compiler/11.1/072/lib/locale/en_US/%N"
PACKAGE_MANAGER="portage"
PAGER="/usr/bin/less"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/opt/meleeweb/sbin:/usr/x86_64-pc-linux-gnu/i486-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i586-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i586-pc-linux-uclibc/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i686-pc-linux-uclibc/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i686-pc-mingw32/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/i686-w64-mingw32/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/x86_64-w64-mingw32/gcc-bin/4.5.3:/opt/intel/Compiler/11.1/072/bin/intel64:/opt/ekopath/bin:/opt/meleeweb/bin:/opt/meleeweb/sbin:/opt/exosec/bin:/opt/exosec/sbin"
PKGDIR="/data/cross/kvm32/firmware/packages/"
PKG_CONFIG_PATH="/data/cross/kvm32/firmware/usr/lib/pkgconfig/"
PLATFORM="kvm32"
PORTAGE_ARCHLIST="ppc sparc64-freebsd ppc-openbsd x86-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd x86-cygwin amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris m68k sh x86-solaris sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
PORTAGE_BZIP2_COMMAND="/bin/bzip2"
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
PORTAGE_CONFIGROOT="/data/cross/kvm32/firmware/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ECLASS_WARNING_ENABLE="0"
PORTAGE_ELOG_CLASSES="warn error log info"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="echo"
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"
PORTAGE_FETCH_RESUME_MIN_SIZE="350K"
PORTAGE_GID="250"
PORTAGE_GPG_SIGNING_COMMAND="gpg --sign --clearsign --yes --default-key "${PORTAGE_GPG_KEY}" --homedir "${PORTAGE_GPG_DIR}" "${FILE}""
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_OVERRIDE_EPREFIX=""
PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
PORTAGE_RSYNC_EXTRA_OPTS="--checksum"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_RSYNC_RETRIES="-1"
PORTAGE_SYNC_STALE="30"
PORTAGE_TMPDIR="/var/tmp/i686-pc-linux-gnu"
PORTAGE_VERBOSE="1"
PORTAGE_WORKDIR_MODE="2775"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/opt/meleeweb/portage /var/lib/layman/sunrise"
PORT_LOGDIR="/data/cross/kvm32/firmware/var/log/portage"
PORT_LOGDIR_CLEAN="find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +7 -delete"
PWD="/data/cross/alix3-i586/firmware"
QUICKPKG_DEFAULT_OPTS="--include-config=y"
RESUMECOMMAND="/opt/meleeweb/bin/cross-fetch --connect-timeout 5 -f -L -o ${DISTDIR}/${FILE} --url ${URI}"
RESUMECOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""
RESUMECOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""
ROOT="/data/cross/kvm32/firmware/"
RPMDIR="/usr/portage/rpm"
RUBYOPT="-rauto_gem"
SHELL="/bin/bash"
SHLVL="1"
SYNC="rsync://rsync.melee/gentoo-portage"
SYSROOT="/data/cross/kvm32/firmware"
TERM="rxvt-unicode"
USE="bindist hardened kdrive make-symlinks minimal modules multicall x86 zlib" ELIBC="glibc" KERNEL="linux" LINGUAS="en" USERLAND="GNU"
USER="root"
USERLAND="GNU"
USE_EXPAND="ELIBC INPUT_DEVICES KERNEL LINGUAS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:repo:env.d"
VARIANT="firmware"
VIDEO_CARDS=""
Comment 3 SpanKY gentoo-dev 2012-02-20 17:50:07 UTC
GROUP() isn't supposed to respect -L options.  it respects the sysroot.
Comment 4 Bertrand Jacquin 2012-02-20 19:28:51 UTC
(In reply to comment #3)
> GROUP() isn't supposed to respect -L options.  it respects the sysroot.

Right, building a libc under my SYSROOT helped.

Thanks vapier
Comment 5 Bertrand Jacquin 2012-02-20 19:29:24 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > GROUP() isn't supposed to respect -L options.  it respects the sysroot.
> 
> Right, building a libc under my SYSROOT helped.

And adding --sysroot=$SYSROOT to LDFLAGS