[haiku-bugs] Re: [Haiku] #8031: new gcc indirect linking policy changes cause build failures / missing symbols.

  • From: "kallisti5" <trac@xxxxxxxxxxxx>
  • Date: Fri, 04 Nov 2011 18:41:54 -0000

#8031: new gcc indirect linking policy changes cause build failures / missing
symbols.
----------------------------+----------------------------
   Reporter:  kallisti5     |      Owner:  bonefish
       Type:  bug           |     Status:  new
   Priority:  high          |  Milestone:  R1/beta1
  Component:  Build System  |    Version:  R1/Development
 Resolution:                |   Keywords:
 Blocked By:                |   Blocking:
Has a Patch:  0             |   Platform:  All
----------------------------+----------------------------

Comment (by kallisti5):

 verified that I was incorrect before...

 pre r43186:
  * stock:  build failure
  * add --no-as-needed: build failure
  * add --as-needed: build failure
  * add --no-add-needed: build failure
  * add --add-needed: build failure


 the stock collect command where the issue is:

 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/collect2 --build-id --no-add-needed
 --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker
 /lib64/ld-linux-x86-64.so.2 -z relro -o
 ../../../generated/objects/linux/x86/release/tools/unzip/unzip
 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o
 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crti.o
 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/crtbegin.o -L/usr/lib/gcc/x86_64
 -linux-gnu/4.6.1 -L/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64
 -linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib
 -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu
 -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../..
 ../../../generated/objects/linux/x86/release/tools/unzip/unzip.o
 ../../../generated/objects/linux/x86/release/tools/unzip/unreduce.o
 ../../../generated/objects/linux/x86/release/tools/unzip/unshrink.o
 ../../../generated/objects/linux/lib/libroot_build.so
 ../../../generated/objects/linux/x86/release/tools/unzip/libunzip.a
 ../../../generated/objects/linux/lib/libbe_build.so -lsupc++ -lgcc --as-
 needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed
 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/crtend.o /usr/lib/gcc/x86_64-linux-
 gnu/4.6.1/../../../x86_64-linux-gnu/crtn.o

 notice the multiple -needed flags.  Ubuntu and Fedora seem to do this now
 with Debian considering it.

 * Removing the first --as-needed causes the collect to succeed... adding
 more flags doesn't seem to disable it.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8031#comment:21>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: