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

Bug 195469

Summary: linker option -Wl, --hash-style=* is not working
Product: Gentoo Linux Reporter: Armin Mohring <mohringarmin>
Component: [OLD] Core systemAssignee: Gentoo Toolchain Maintainers <toolchain>
Status: VERIFIED INVALID    
Severity: normal    
Priority: High    
Version: 2007.0   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Armin Mohring 2007-10-11 06:54:44 UTC
If I use the linker option -Wl,--hash-style=both not a single package does compile.

Reproducible: Always

Steps to Reproduce:
1.LDFLAGS="-Wl,--hash-style=both" in /etc/make.conf
2.emerge -e world
3.The first package does not compile

Actual Results:  
Not a single package is compiling.

Expected Results:  
emerge -e world works

-
Comment 1 Armin Mohring 2007-10-11 06:57:46 UTC
emerge --info:

Portage 2.1.3.9 (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.5-r4, 2.6.22-gentoo-r8 x86_64)
=================================================================
System uname: 2.6.22-gentoo-r8 x86_64 AMD Athlon(tm) 64 Processor 3200+
Timestamp of tree: Thu, 11 Oct 2007 04:20:01 +0000
app-shells/bash:     3.2_p17
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r5
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-mtune=k8 -march=k8 -O2 -fomit-frame-pointer -pipe -s"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-mtune=k8 -march=k8 -O2 -fomit-frame-pointer -pipe -s"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fix-packages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS=" rsync://gentoo.intergenia.de/gentoo-linux/ rsync://ftp.belnet.be/gentoo/ rsync://ftp.snt.utwente.nl/gentoo/ rsync://gd.tuwien.ac.at/opsys/linux/gentoo/ rsync://ftp.fi.muni.cz/pub/linux/gentoo/ rsync://gentoo.prz.rzeszow.pl/gentoo/ rsync://ftp.lug.ro/gentoo/ rsync://trumpetti.atm.tut.fi/gentoo/ rsync://ftp.rhnet.is/gentoo/ rsync://mirror.hamakor.org.il/gentoo/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O4 -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-s -Wl,--sort-common -Wl,-z -Wl,now"
LINGUAS="en"
MAKEOPTS="-j1 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 64bit 80387 X a52 aac acl aiglx alsa amd64 bash-completion berkdb bitmap-fonts bzip2 cairo caps cdparanoia cdr cli cups dbus dri dts dvd dvdr encode esd flac ftp gif glibc-omitfp gtk gtk2 hal iconv ipv6 java javascript jpeg kde kdehiddenvisibility ldap mad midi mikmod mmx mmxext mp3 mp4 mpeg mpeg2 mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png posix ppds pppd profile python qt3 qt4 quicktime readline reflection sdl session spl sse sse2 ssl svg tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis wxGTK x264 xine xml xorg xv xvid zlib" ALSA_CARDS="intel8x0" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

Comment 2 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 07:38:14 UTC
You need to post some errors, not 'oh it doesn't work'. 

BTW:

* -s in C[XX]FLAGS is just silly; portage takes care of stripping as needed
* -Wl,-O4 is completely pointless, does the same as -Wl,-O1 (info ld)
* -Wl,--enable-new-dtags is default on Gentoo
* -Wl,-z -Wl,now should be -Wl,-z,now if you insist on using it
Comment 3 Armin Mohring 2007-10-11 08:08:48 UTC
The linker option --hash-style=both is not working.
The linker option -hash-style=both is working.

Error log:
>>> Unpacking source...

>>> Unpacking portage-2.1.3.tar.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

>>> Unpacking portage-2.1.3.9.patch.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

 [32;01m*[0m Applying portage-2.1.3.9.patch ...

[A[89C  [34;01m[ [32;01mok[34;01m ][0m

 [32;01m*[0m Setting portage.VERSION to 2.1.3.9 ...

[A[89C  [34;01m[ [32;01mok[34;01m ][0m

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/sys-apps/portage-2.1.3.9/work/portage-2.1.3 ...

>>> Source compiled.

>>> Test phase [not enabled]: sys-apps/portage-2.1.3.9



>>> Install portage-2.1.3.9 into /var/tmp/portage/sys-apps/portage-2.1.3.9/image/ category sys-apps

patching file make.conf

>>> Completed installing portage-2.1.3.9 into /var/tmp/portage/sys-apps/portage-2.1.3.9/image/



ecompressdir: bzip2 -9 usr/share/man





 [33;01m*[0m QA Notice: Pre-stripped files found:

 [33;01m*[0m /var/tmp/portage/sys-apps/portage-2.1.3.9/image/usr/lib64/portage/bin/tbz2tool

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment

 [32;01m*[0m 

 [32;01m*[0m FEATURES="userfetch" is now enabled by default. Depending on your ${DISTDIR}

 [32;01m*[0m permissions, this may result in Permission Denied errors. If you would like

 [32;01m*[0m to fetch with superuser privileges, add FEATURES="-userfetch" to make.conf.

 [32;01m*[0m 

 [32;01m*[0m The world file now supports slot atoms such as 'sys-devel/gcc:3.4'. In some

 [32;01m*[0m cases, emerge --depclean may remove slots that it would not have removed

 [32;01m*[0m in the past. The emerge --noreplace command can be used to add an atom to

 [32;01m*[0m the world file and prevent matching packages from being removed.  A slot

 [32;01m*[0m atom will be recorded in the world file for any atom that is precise enough

 [32;01m*[0m to identify a specific slot.

 [32;01m*[0m 

 [32;01m*[0m For help with using portage please consult the Gentoo Handbook

 [32;01m*[0m at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3

 [32;01m*[0m 
Comment 4 Armin Mohring 2007-10-11 08:09:31 UTC
Forgotten to reopen th bug.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 08:13:20 UTC
You still failed to post any relevant error, just a completely unrelated output from emerge portage.
Comment 6 Armin Mohring 2007-10-11 08:54:23 UTC
Here is the error log:
>>> Unpacking source...

>>> Unpacking portage-2.1.3.tar.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

>>> Unpacking portage-2.1.3.9.patch.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

 [32;01m*[0m Applying portage-2.1.3.9.patch ...

[A[89C  [34;01m[ [32;01mok[34;01m ][0m

 [32;01m*[0m Setting portage.VERSION to 2.1.3.9 ...

[A[89C  [34;01m[ [32;01mok[34;01m ][0m

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/sys-apps/portage-2.1.3.9/work/portage-2.1.3 ...

/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: unrecognized option '--hash-style=both'

/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

 [31;01m*[0m 

 [31;01m*[0m ERROR: sys-apps/portage-2.1.3.9 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1654:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 990:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   portage-2.1.3.9.ebuild, line 92:   Called die

 [31;01m*[0m 

 [31;01m*[0m Failed to build tbz2tool

 [31;01m*[0m If you need support, post the topmost build error, and the call stack if relevant.

 [31;01m*[0m A complete build log is located at '/var/log/portage/sys-apps:portage-2.1.3.9:20071011-080726.log'.

 [31;01m*[0m 
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 09:05:00 UTC
Post your emerge --info when it does NOT work.
Comment 8 Armin Mohring 2007-10-11 09:15:37 UTC
Portage 2.1.3.9 (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.5-r4, 2.6.22-gentoo-r8 x86_64)
=================================================================
System uname: 2.6.22-gentoo-r8 x86_64 AMD Athlon(tm) 64 Processor 3200+
Timestamp of tree: Thu, 11 Oct 2007 04:20:01 +0000
app-shells/bash:     3.2_p17
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r5
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-mtune=k8 -march=k8 -O2 -fomit-frame-pointer -pipe -s"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-mtune=k8 -march=k8 -O2 -fomit-frame-pointer -pipe -s"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fix-packages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS=" rsync://gentoo.intergenia.de/gentoo-linux/ rsync://ftp.belnet.be/gentoo/ rsync://ftp.snt.utwente.nl/gentoo/ rsync://gd.tuwien.ac.at/opsys/linux/gentoo/ rsync://ftp.fi.muni.cz/pub/linux/gentoo/ rsync://gentoo.prz.rzeszow.pl/gentoo/ rsync://ftp.lug.ro/gentoo/ rsync://trumpetti.atm.tut.fi/gentoo/ rsync://ftp.rhnet.is/gentoo/ rsync://mirror.hamakor.org.il/gentoo/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-hash-style=both -Wl,-s -Wl,--sort-common -Wl,-z -Wl,now"
LINGUAS="en"
MAKEOPTS="-j1 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 64bit 80387 X a52 aac acl aiglx alsa amd64 bash-completion berkdb bitmap-fonts bzip2 cairo caps cdparanoia cdr cli cups dbus dri dts dvd dvdr encode esd firefox flac ftp gif glibc-omitfp gnome gstreamer gtk gtk2 hal iconv ipv6 java javascript jpeg ldap mad midi mikmod mmx mmxext mp3 mp4 mpeg mpeg2 mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png posix ppds pppd profile python quicktime readline reflection sdl session spl sse sse2 ssl svg tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis wxGTK x264 xine xml xorg xv xvid zlib" ALSA_CARDS="intel8x0" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 09:21:45 UTC
<snip>
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-hash-style=both
-Wl,-s -Wl,--sort-common -Wl,-z -Wl,now"
</snip>

OK, so -hash-style=both does NOT work now either? Not surprising, when it should be -Wl,--hash-style=both as the fine manpage says. 

Here's idea - get your LDFLAGS syntax hashed out outside of bugzilla, this is not a support forum. -Wl,--hash-style=both works just perfectly fine here and for lots of other people.
Comment 10 Armin Mohring 2007-10-11 10:03:02 UTC
Here is the error log with -Wl,--hash-style=both

>>> Unpacking source...

>>> Unpacking portage-2.1.3.tar.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

>>> Unpacking portage-2.1.3.9.patch.bz2 to /var/tmp/portage/sys-apps/portage-2.1.3.9/work

 [32;01m*[0m Applying portage-2.1.3.9.patch ...

[A[72C  [34;01m[ [32;01mok[34;01m ][0m

 [32;01m*[0m Setting portage.VERSION to 2.1.3.9 ...

[A[72C  [34;01m[ [32;01mok[34;01m ][0m

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/sys-apps/portage-2.1.3.9/work/portage-2.1.3 ...

/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: unrecognized option '--hash-style=both'

/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

 [31;01m*[0m 

 [31;01m*[0m ERROR: sys-apps/portage-2.1.3.9 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1654:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 990:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   portage-2.1.3.9.ebuild, line 92:   Called die

 [31;01m*[0m 

 [31;01m*[0m Failed to build tbz2tool

 [31;01m*[0m If you need support, post the topmost build error, and the call stack if relevant.

 [31;01m*[0m A complete build log is located at '/var/log/portage/sys-apps:portage-2.1.3.9:20071011-100235.log'.

 [31;01m*[0m 


It is not working at all.
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 10:11:17 UTC
Yeah, and it still works perfectly fine here and for anyone else. Tired of debugging your screwed LDFLAGS syntax, toolchain enjoy.
Comment 12 SpanKY gentoo-dev 2007-10-12 14:41:42 UTC
post the output of `ld --version` and `ld --help`
Comment 13 Armin Mohring 2007-10-12 20:39:10 UTC
ld --version:
GNU ld version 2.16.1
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.


ld --help:

Usage: ld [options] file...
Options:
  -a KEYWORD                  Shared library control for HP/UX compatibility
  -A ARCH, --architecture ARCH
                              Set architecture
  -b TARGET, --format TARGET  Specify target for following input files
  -c FILE, --mri-script FILE  Read MRI format linker script
  -d, -dc, -dp                Force common symbols to be defined
  -e ADDRESS, --entry ADDRESS Set start address
  -E, --export-dynamic        Export all dynamic symbols
  -EB                         Link big-endian objects
  -EL                         Link little-endian objects
  -f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table
  -F SHLIB, --filter SHLIB    Filter for shared object symbol table
  -g                          Ignored
  -G SIZE, --gpsize SIZE      Small data size (if no size, same as --shared)
  -h FILENAME, -soname FILENAME
                              Set internal name of shared library
  -I PROGRAM, --dynamic-linker PROGRAM
                              Set PROGRAM as the dynamic linker to use
  -l LIBNAME, --library LIBNAME
                              Search for library LIBNAME
  -L DIRECTORY, --library-path DIRECTORY
                              Add DIRECTORY to library search path
  --sysroot=<DIRECTORY>       Override the default sysroot location
  -m EMULATION                Set emulation
  -M, --print-map             Print map file on standard output
  -n, --nmagic                Do not page align data
  -N, --omagic                Do not page align data, do not make text readonly
  --no-omagic                 Page align data, make text readonly
  -o FILE, --output FILE      Set output file name
  -O                          Optimize output file
  -Qy                         Ignored for SVR4 compatibility
  -q, --emit-relocs           Generate relocations in final output
  -r, -i, --relocatable       Generate relocatable output
  -R FILE, --just-symbols FILE
                              Just link symbols (if directory, same as --rpath)
  -s, --strip-all             Strip all symbols
  -S, --strip-debug           Strip debugging symbols
  --strip-discarded           Strip symbols in discarded sections
  --no-strip-discarded        Do not strip symbols in discarded sections
  -t, --trace                 Trace file opens
  -T FILE, --script FILE      Read linker script
  -u SYMBOL, --undefined SYMBOL
                              Start with undefined reference to SYMBOL
  --unique [=SECTION]         Don't merge input [SECTION | orphan] sections
  -Ur                         Build global constructor/destructor tables
  -v, --version               Print version information
  -V                          Print version and emulation information
  -x, --discard-all           Discard all local symbols
  -X, --discard-locals        Discard temporary local symbols (default)
  --discard-none              Don't discard any local symbols
  -y SYMBOL, --trace-symbol SYMBOL
                              Trace mentions of SYMBOL
  -Y PATH                     Default search path for Solaris compatibility
  -(, --start-group           Start a group
  -), --end-group             End a group
  --accept-unknown-input-arch Accept input files whose architecture cannot be determined
  --no-accept-unknown-input-arch
                              Reject input files whose architecture is unknown
  --add-needed                Set DT_NEEDED tags for DT_NEEDED entries in
				following dynamic libs
  --no-add-needed             Do not set DT_NEEDED tags for DT_NEEDED entries
				in following dynamic libs
  --as-needed                 Only set DT_NEEDED for following dynamic libs if used
  --no-as-needed              Always set DT_NEEDED for following dynamic libs
  -assert KEYWORD             Ignored for SunOS compatibility
  -Bdynamic, -dy, -call_shared
                              Link against shared libraries
  -Bstatic, -dn, -non_shared, -static
                              Do not link against shared libraries
  -Bsymbolic                  Bind global references locally
  --check-sections            Check section addresses for overlaps (default)
  --no-check-sections         Do not check section addresses for overlaps
  --cref                      Output cross reference table
  --defsym SYMBOL=EXPRESSION  Define a symbol
  --demangle [=STYLE]         Demangle symbol names [using STYLE]
  --embedded-relocs           Generate embedded relocs
  --fatal-warnings            Treat warnings as errors
  -fini SYMBOL                Call SYMBOL at unload-time
  --force-exe-suffix          Force generation of file with .exe suffix
  --gc-sections               Remove unused sections (on some targets)
  --no-gc-sections            Don't remove unused sections (default)
  --hash-size=<NUMBER>        Set default hash table size close to <NUMBER>
  --help                      Print option help
  -init SYMBOL                Call SYMBOL at load-time
  -Map FILE                   Write a map file
  --no-define-common          Do not define Common storage
  --no-demangle               Do not demangle symbol names
  --no-keep-memory            Use less memory and more disk I/O
  --no-undefined              Do not allow unresolved references in object files
  --allow-shlib-undefined     Allow unresolved references in shared libaries
  --no-allow-shlib-undefined  Do not allow unresolved references in shared libs
  --allow-multiple-definition Allow multiple definitions
  --no-undefined-version      Disallow undefined version
  --default-symver            Create default symbol version
  --default-imported-symver   Create default symbol version for imported symbols
  --no-warn-mismatch          Don't warn about mismatched input files
  --no-whole-archive          Turn off --whole-archive
  --noinhibit-exec            Create an output file even if errors occur
  -nostdlib                   Only use library directories specified on
				the command line
  --oformat TARGET            Specify target of output file
  -qmagic                     Ignored for Linux compatibility
  --reduce-memory-overheads   Reduce memory overheads, possibly taking much longer
  --relax                     Relax branches on certain targets
  --retain-symbols-file FILE  Keep only symbols listed in FILE
  -rpath PATH                 Set runtime shared library search path
  -rpath-link PATH            Set link time shared library search path
  -shared, -Bshareable        Create a shared library
  -pie, --pic-executable      Create a position independent executable
  --sort-common               Sort common symbols by size
  --sort-section name|alignment
                              Sort sections by name or maximum alignment
  --spare-dynamic-tags COUNT  How many tags to reserve in .dynamic section
  --split-by-file [=SIZE]     Split output sections every SIZE octets
  --split-by-reloc [=COUNT]   Split output sections every COUNT relocs
  --stats                     Print memory usage statistics
  --target-help               Display target specific options
  --task-link SYMBOL          Do task level linking
  --traditional-format        Use same format as native linker
  --section-start SECTION=ADDRESS
                              Set address of named section
  -Tbss ADDRESS               Set address of .bss section
  -Tdata ADDRESS              Set address of .data section
  -Ttext ADDRESS              Set address of .text section
  --unresolved-symbols=<method>
                              How to handle unresolved symbols.  <method> is:
				ignore-all, report-all, ignore-in-object-files,
				ignore-in-shared-libs
  --verbose                   Output lots of information during link
  --version-script FILE       Read version information script
  --version-exports-section SYMBOL
                              Take export symbols list from .exports, using
				SYMBOL as the version.
  --warn-common               Warn about duplicate common symbols
  --warn-constructors         Warn if global constructors/destructors are seen
  --warn-multiple-gp          Warn if the multiple GP values are used
  --warn-once                 Warn only once per undefined symbol
  --warn-section-align        Warn if start of section changes due to alignment
  --warn-shared-textrel       Warn if shared object has DT_TEXTREL
  --warn-unresolved-symbols   Report unresolved symbols as warnings
  --error-unresolved-symbols  Report unresolved symbols as errors
  --whole-archive             Include all objects from following archives
  --wrap SYMBOL               Use wrapper functions for SYMBOL
ld: supported targets: elf64-x86-64 elf32-i386 a.out-i386-linux efi-app-ia32 elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex binary ihex
ld: supported emulations: elf_x86_64 elf_i386 i386linux
ld: emulation specific options:
elf_x86_64: 
  -Bgroup		Selects group name lookup rules for DSO
  --disable-new-dtags	Disable new dynamic tags
  --enable-new-dtags	Enable new dynamic tags
  --eh-frame-hdr	Create .eh_frame_hdr section
  -z combreloc		Merge dynamic relocs into one section and sort
  -z defs		Report unresolved symbols in object files.
  -z execstack		Mark executable as requiring executable stack
  -z execheap		Mark executable as requiring executable heap
  -z initfirst		Mark DSO to be initialized first at runtime
  -z interpose		Mark object to interpose all DSOs but executable
  -z lazy		Mark object lazy runtime binding (default)
  -z loadfltr		Mark object requiring immediate process
  -z muldefs		Allow multiple definitions
  -z nocombreloc	Don't merge dynamic relocs into one section
  -z nocopyreloc	Don't create copy relocs
  -z nodefaultlib	Mark object not to use default search paths
  -z nodelete		Mark DSO non-deletable at runtime
  -z nodlopen		Mark DSO not available to dlopen
  -z nodump		Mark DSO not available to dldump
  -z noexecstack	Mark executable as not requiring executable stack
  -z noexecheap	Mark executable as not requiring executable heap
  -z norelro		Don't create RELRO program header
  -z now		Mark object non-lazy runtime binding
  -z origin		Mark object requiring immediate $ORIGIN processing
			  at runtime
  -z relro		Create RELRO program header
  -z KEYWORD		Ignored for Solaris compatibility
elf_i386: 
  -Bgroup		Selects group name lookup rules for DSO
  --disable-new-dtags	Disable new dynamic tags
  --enable-new-dtags	Enable new dynamic tags
  --eh-frame-hdr	Create .eh_frame_hdr section
  -z combreloc		Merge dynamic relocs into one section and sort
  -z defs		Report unresolved symbols in object files.
  -z execstack		Mark executable as requiring executable stack
  -z execheap		Mark executable as requiring executable heap
  -z initfirst		Mark DSO to be initialized first at runtime
  -z interpose		Mark object to interpose all DSOs but executable
  -z lazy		Mark object lazy runtime binding (default)
  -z loadfltr		Mark object requiring immediate process
  -z muldefs		Allow multiple definitions
  -z nocombreloc	Don't merge dynamic relocs into one section
  -z nocopyreloc	Don't create copy relocs
  -z nodefaultlib	Mark object not to use default search paths
  -z nodelete		Mark DSO non-deletable at runtime
  -z nodlopen		Mark DSO not available to dlopen
  -z nodump		Mark DSO not available to dldump
  -z noexecstack	Mark executable as not requiring executable stack
  -z noexecheap	Mark executable as not requiring executable heap
  -z norelro		Don't create RELRO program header
  -z now		Mark object non-lazy runtime binding
  -z origin		Mark object requiring immediate $ORIGIN processing
			  at runtime
  -z relro		Create RELRO program header
  -z KEYWORD		Ignored for Solaris compatibility

Report bugs to <URL:http://www.sourceware.org/bugzilla/
Comment 14 SpanKY gentoo-dev 2007-10-13 02:44:43 UTC
you're using binutils-2.16.1 which does not support --has-style ... what's the problem ?
Comment 15 Armin Mohring 2007-10-13 05:16:35 UTC
Emerge --info shows version 2.18.r1.

What´s the way here to update?
Comment 16 SpanKY gentoo-dev 2007-10-13 14:14:35 UTC
so what ?  you've clearly selected 2.16.1, not 2.18

use `binutils-config` to switch versions