------- Comment #2 from rob1weld at aol dot com  2009-02-19 02:30 -------
That worked.

The build continues until it fails here:

# gmake
(5 minutes)
...
Making all in src
gmake[4]: Entering directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src'
...
 -DPIC -o .libs/parallel_settings.o
/bin/sh ../libtool --tag CXX --mode=link g++ -Wl,-O1 -Wl,-z,relro 
-fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual 
-fdiagnostics-show-location=once  -ffunction-sections -fdata-sections   -o
libstdc++.la -rpath /usr/local/gcc4/lib -version-info 6:11:0  -lm  atomic.lo
bitmap_allocator.lo pool_allocator.lo mt_allocator.lo codecvt.lo
compatibility.lo complex_io.lo ctype.lo debug.lo functexcept.lo hash.lo
hash_c++0x.lo globals_io.lo hashtable.lo hashtable_c++0x.lo ios.lo
ios_failure.lo ios_init.lo ios_locale.lo limits.lo limits_c++0x.lo list.lo
debug_list.lo locale.lo locale_init.lo locale_facets.lo localename.lo
math_stubs_float.lo math_stubs_long_double.lo stdexcept.lo strstream.lo
system_error.lo tree.lo allocator-inst.lo concept-inst.lo fstream-inst.lo
ext-inst.lo ios-inst.lo iostream-inst.lo istream-inst.lo istream.lo
locale-inst.lo misc-inst.lo ostream-inst.lo sstream-inst.lo streambuf-inst.lo
streambuf.lo string-inst.lo valarray-inst.lo wlocale-inst.lo wstring-inst.lo
mutex.lo condition_variable.lo chrono.lo thread.lo atomicity.lo
codecvt_members.lo collate_members.lo ctype_members.lo messages_members.lo
monetary_members.lo numeric_members.lo time_members.lo basic_file.lo
c++locale.lo  parallel_list.lo parallel_settings.lo 
../libsupc++/libsupc++convenience.la 
libtool: link: g++ -shared -nostdlib /usr/lib/crti.o /usr/lib/values-Xa.o
/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtbegin.o  .libs/atomic.o
.libs/bitmap_allocator.o .libs/pool_allocator.o .libs/mt_allocator.o
.libs/codecvt.o .libs/compatibility.o .libs/complex_io.o .libs/ctype.o
.libs/debug.o .libs/functexcept.o .libs/hash.o .libs/hash_c++0x.o
.libs/globals_io.o .libs/hashtable.o .libs/hashtable_c++0x.o .libs/ios.o
.libs/ios_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/limits.o
.libs/limits_c++0x.o .libs/list.o .libs/debug_list.o .libs/locale.o
.libs/locale_init.o .libs/locale_facets.o .libs/localename.o
.libs/math_stubs_float.o .libs/math_stubs_long_double.o .libs/stdexcept.o
.libs/strstream.o .libs/system_error.o .libs/tree.o .libs/allocator-inst.o
.libs/concept-inst.o .libs/fstream-inst.o .libs/ext-inst.o .libs/ios-inst.o
.libs/iostream-inst.o .libs/istream-inst.o .libs/istream.o .libs/locale-inst.o
.libs/misc-inst.o .libs/ostream-inst.o .libs/sstream-inst.o
.libs/streambuf-inst.o .libs/streambuf.o .libs/string-inst.o
.libs/valarray-inst.o .libs/wlocale-inst.o .libs/wstring-inst.o .libs/mutex.o
.libs/condition_variable.o .libs/chrono.o .libs/thread.o .libs/atomicity.o
.libs/codecvt_members.o .libs/collate_members.o .libs/ctype_members.o
.libs/messages_members.o .libs/monetary_members.o .libs/numeric_members.o
.libs/time_members.o .libs/basic_file.o .libs/c++locale.o .libs/parallel_list.o
.libs/parallel_settings.o  -Wl,--whole-archive
../libsupc++/.libs/libsupc++convenience.a -Wl,--no-whole-archive  -Wl,-rpath
-Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib
-L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0
-L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/../../../../i386-pc-solaris2.11/lib
-L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/../../..
/usr/local/lib/libstdc++.so -lm -lgcc_s
/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtend.o /usr/lib/crtn.o  -Wl,-O1
-Wl,-z -Wl,relro   -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.11
ld: fatal: option -z has illegal argument `relro'
usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:CD:F:GI:L:M:N:P:Q:R:S:VW:Y:?]
file(s)
        [-64]           enforce a 64-bit link-edit
        [-a]            create an absolute file
        [-b]            do not do special PIC relocations in a.out
        [-B direct | nodirect]
                        establish direct bindings, or inhibit direct binding
                        to, the object being created
        [-B dynamic | static]
                        search for shared libraries|archives
        [-B eliminate]  eliminate unqualified global symbols from the
                        symbol table
        [-B group]      relocate object from within group
        [-B local]      reduce unqualified global symbols to local
        [-B reduce]     process symbol reductions
        [-B symbolic]   bind external references to definitions when creating
                        shared objects
        [-c name]       record configuration file `name'
        [-C]            demangle C++ symbol name diagnostics
        [-d y | n]      operate in dynamic|static mode
        [-D token,...]  print diagnostic messages
        [-e epsym], [--entry epsym]
                        use `epsym' as entry point address
        [-f name], [--auxiliary name]
                        specify library for which this file is an auxiliary
                        filter
        [-F name], [--filter name]
                        specify library for which this file is a filter
        [-G], [-shared]
                        create a shared object
        [-h name], [--soname name]
                        use `name' as internal shared object identifier
        [-i]            ignore LD_LIBRARY_PATH setting
        [-I name]       use `name' as path of interpreter
        [-l x], [--library x]
                        search for libx.so or libx.a
        [-L path], [--library-path path]
                        search for libraries in directory `path'
        [-m]            print memory map
        [-M mapfile]    use processing directives contained in `mapfile'
        [-N string]     create a dynamic dependency for `string'
        [-o outfile], [--output outfile]
                        name the output file `outfile'
        [-p auditlib]   identify audit library to accompany this object
        [-P auditlib]   identify audit library for processing the dependencies
                        of this object
        [-Q y | n]      do|do not place version information in output file
        [-r], [--relocatable]
                        create a relocatable object
        [-R path], [-rpath path]
                        specify a library search path to be used at run time
        [-s], [--strip-all]
                        strip any symbol and debugging information
        [-S supportlib]
                        specify a link-edit support library
        [-t]            do not warn of multiply-defined symbols that have
                        different sizes or alignments
        [-u symname], [--undefined symname]
                        create an undefined symbol `symname'
        [-V], [--version]
                        print version information
        [-Y P,dirlist]  use `dirlist' as a default path when searching for
                        libraries
        [-z absexec]    when building an executable absolute symbols
                        referenced in dynamic objects are promoted to
                        the executable
        [-z allextract | defaultextract | weakextract],
        [--whole-archive | --no-whole-archive]
                        extract all member files, only members that resolve
                        undefined or tentative symbols, or allow extraction of
                        archive members to resolve weak references from 
                        archive files
        [-z altexec64]  execute the 64-bit link-editor
        [-z combreloc | nocombreloc]
                        combine|do not combine multiple relocation sections
        [-z defs], [--no-undefined]
                        disallow undefined symbol references
        [-z direct | nodirect]
                        enable|disable direct binding to shared object
                        dependencies
        [-z endfiltee]  marks a filtee such that it will terminate a filters
                        search
        [-z finiarray=function]
                        name of function to be appended to the .finiarray
        [-z groupperm | nogroupperm]
                        enable|disable setting of group permissions
                        on dynamic dependencies
        [-z help], [--help]
                        print this usage message
        [-z ignore | record]
                        ignore|record unused dynamic dependencies
        [-z initarray=function]
                        name of function to be appended to the .initarray
        [-z initfirst]  mark object to indicate that its .init section should
                        be executed before the .init section of any other
                        objects
        [-z interpose]  dynamic object is to be an `interposer' on direct
                        bindings
        [-z lazyload | nolazyload]
                        enable|disable delayed loading of shared object
                        dependencies
        [-z ld32=arg1,arg2,...]
                        define arguments applicable to the 32-bit class of
ld(1)
        [-z ld64=arg1,arg2,...]
                        define arguments applicable to the 64-bit class of
ld(1)
        [-z loadfltr]   mark filter as requiring immediate loading of its
                        filtees at runtime
        [-z muldefs], [--allow-multiple-definition]
                        allow multiply-defined symbols
        [-z nocompstrtab]
                        disable compression of string tables
        [-z nodefs]     allow undefined symbol references
        [-z nodefaultlib]
                        mark object to ignore any default library search path
        [-z nodelete]   mark object as non-deletable
        [-z nodlopen]   mark object as non-dlopen()'able
        [-z nodump]     mark object as non-dldump()'able
        [-z noldynsym]  do not add a .SUNW_ldynsym section
        [-z now]        mark object as requiring non-lazy binding
        [-z nopartial]  expand any partially initialized symbols
        [-z noversion]  do not record any version sections
        [-z origin]     mark object as requiring $ORIGIN processing
        [-z preinitarray=function]
                        name of function to be appended to the .preinitarray
        [-z redlocsym]  reduce local syms in .symtab to a minimum
        [-z relaxreloc] relax rules used for relocations against COMDAT
sections
        [-z rescan]     after processing all arguments, rescan archive list
                        until no further member extraction occurs
        [-z rescan-now] immediately rescan archive list until
                        no further member extraction occurs
        [-z rescan-start archives... -z rescan-end],
        [--start-group archives... --end-group], [-( archives... -)]
                        rescan specified archive group upon reaching
                        the end of the group, until no further
                        member extraction occurs
        [-z target=platform]
                        target machine for cross linking
        [-z text]       disallow output relocations against text
        [-z textoff]    allow output relocations against text
        [-z textwarn]   warn if there are relocations against text
        [-z verbose]    generate warnings for suspicious processings
collect2: ld returned 1 exit status
gmake[4]: *** [libstdc++.la] Error 1
gmake[4]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[1]: *** [all-target-libstdc++-v3] Error 2
gmake[1]: Leaving directory `/usr/share/src/gcc_build'
gmake: *** [all] Error 2



The commands for ld are wrong. Let's try without "-Wl,-O1 -Wl,-z -Wl,relro":

...
 /usr/lib/crtn.o   -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.11
ld: fatal: symbol `__i686.get_pc_thunk.bx' is multiply-defined:
        (file /usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtbegin.o
type=FUNC; file ../libsupc++/.libs/libsupc++convenience.a(cp-demangle.o)
type=FUNC);
ld: fatal: recording name conflict: file `/usr/local/lib/libstdc++.so' and
soname option (-h, --soname) provide identical dependency names: libstdc++.so.6
ld: fatal: file processing errors. No output written to
.libs/libstdc++.so.6.0.11
collect2: ld returned 1 exit status


Rob


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39238

Reply via email to