Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 50196 - binutils "make check" failure place-marker
Summary: binutils "make check" failure place-marker
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-06 02:40 UTC by Travis Tilley (RETIRED)
Modified: 2004-05-10 17:22 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Travis Tilley (RETIRED) gentoo-dev 2004-05-06 02:40:24 UTC
using a completely fresh and stable install on amd64 (except for dejagnu, which isn't marked amd64 at all for some reason), binutils 2.14.90.0.8-r1 fails to make check:

                === ld Summary ===
 
# of expected passes            127
# of unexpected failures        6
# of expected failures          36

specific failures:

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective1
FAIL: selective2
FAIL: selective4
FAIL: selective5

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-x86-64/x86-64.exp ...
FAIL: TLS -fpic -shared transitions
FAIL: TLS -fpic and -fno-pic exec transitions
Comment 1 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 02:48:26 UTC
out of curiousity i just ran the same tests on 2.15.90.0.1.1-r1:

                === ld Summary ===
 
# of expected passes            131
# of unexpected failures        2
# of expected failures          36
# of unresolved testcases       6

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/selective.exp ...
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/1.c: compilation failed
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/2.c: compilation failed
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/2.c: compilation failed
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/3.cc: compilation failed
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/4.cc: compilation failed
ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/5.cc: compilation failed

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-x86-64/x86-64.exp ...
FAIL: TLS -fpic -shared transitions
FAIL: TLS -fpic and -fno-pic exec transitions

....right.
Comment 2 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 02:51:36 UTC
...and for completeness, similar results with binutils 2.15.90.0.3-r1:

                === ld Summary ===
 
# of expected passes            137
# of unexpected failures        6
# of expected failures          37

Running /var/tmp/portage/binutils-2.15.90.0.3-r1/work/binutils-2.15.90.0.3/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective1
FAIL: selective2
FAIL: selective4
FAIL: selective5

Running /var/tmp/portage/binutils-2.15.90.0.3-r1/work/binutils-2.15.90.0.3/ld/testsuite/ld-x86-64/x86-64.exp ...
FAIL: TLS -fpic -shared transitions
FAIL: TLS -fpic and -fno-pic exec transitions
Comment 3 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 02:54:51 UTC
also, this isnt a hardened gcc so there isnt any spec-file fun going on:

ayanami gcc # gcc --version
gcc (GCC) 3.3.3 20040217 (Gentoo Linux 3.3.3, propolice-3.3-7)
Comment 4 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 03:02:20 UTC
commenting out the epatch line for 2.14.90.0.8-r1 results in 2 fewer unexpected failures:

                === ld Summary ===
 
# of expected passes            129
# of unexpected failures        4
# of expected failures          36

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective1
FAIL: selective2
FAIL: selective4
FAIL: selective5

i'll poke at this more after some sleep and a hefty dose of caffeine.
Comment 5 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 03:23:17 UTC
one final note: i've filed this bug mostly to make sure i dont forget that it exists. i tend to do that.

also... i'm guessing the pic stuff can be ignored, but i'm curious as to why selective linking is borked... 0.o
Comment 6 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 18:03:58 UTC
siti gets 37 failures on x86, but refuses to get a bugzilla account. 0.o

also, ppc64 seems to be getting a number of failures in ld as well:

                === ld Summary ===
 
# of expected passes            90
# of unexpected failures        29
# of expected failures          1

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-elfvsb/elfvsb.exp ...
FAIL: visibility (hidden_normal) (non PIC)
FAIL: visibility (hidden_normal) (non PIC, load offset)
FAIL: visibility (hidden_normal) (PIC main, non PIC so)
FAIL: visibility (hidden_weak) (non PIC)
FAIL: visibility (hidden_weak) (non PIC, load offset)
FAIL: visibility (hidden_weak) (PIC main, non PIC so)
FAIL: visibility (protected) (non PIC)
FAIL: visibility (protected) (non PIC, load offset)
FAIL: visibility (protected) (PIC main, non PIC so)
FAIL: visibility (protected_undef_def) (non PIC)
FAIL: visibility (protected_undef_def) (non PIC, load offset)
FAIL: visibility (protected_undef_def) (PIC main, non PIC so)
FAIL: visibility (protected_weak) (non PIC)
FAIL: visibility (protected_weak) (non PIC, load offset)
FAIL: visibility (protected_weak) (PIC main, non PIC so)
FAIL: visibility (normal) (non PIC)
FAIL: visibility (normal) (non PIC, load offset)
FAIL: visibility (normal) (PIC main, non PIC so)

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-powerpc/powerpc.exp ...
FAIL: TLS32 static exec
FAIL: TLS32 dynamic exec
FAIL: TLS32 shared
FAIL: TLS static exec
FAIL: TLS dynamic exec
FAIL: TLS shared
FAIL: TLSTOC static exec
FAIL: TLSTOC dynamic exec
FAIL: TLSTOC shared

Running /var/tmp/portage/binutils-2.14.90.0.8-r1/work/binutils-2.14.90.0.8/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective4
FAIL: selective5

Dual-G5 binutils-2.14.90.0.8 # gcc --version
gcc (GCC) 3.3.3 (Gentoo Linux 3.3.3_pre20040215)


binutils 2.15.90.0.1.1-r1 on ppc64:

                === ld Summary ===
 
# of expected passes            97
# of unexpected failures        27
# of expected failures          2

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-elfvsb/elfvsb.exp ...
FAIL: visibility (hidden_normal) (non PIC)
FAIL: visibility (hidden_normal) (non PIC, load offset)
FAIL: visibility (hidden_normal) (PIC main, non PIC so)
FAIL: visibility (hidden_weak) (non PIC)
FAIL: visibility (hidden_weak) (non PIC, load offset)
FAIL: visibility (hidden_weak) (PIC main, non PIC so)
FAIL: visibility (protected) (non PIC)
FAIL: visibility (protected) (non PIC, load offset)
FAIL: visibility (protected) (PIC main, non PIC so)
FAIL: visibility (protected_undef_def) (non PIC)
FAIL: visibility (protected_undef_def) (non PIC, load offset)
FAIL: visibility (protected_undef_def) (PIC main, non PIC so)
FAIL: visibility (protected_weak) (non PIC)
FAIL: visibility (protected_weak) (non PIC, load offset)
FAIL: visibility (protected_weak) (PIC main, non PIC so)
FAIL: visibility (normal) (non PIC)
FAIL: visibility (normal) (non PIC, load offset)
FAIL: visibility (normal) (PIC main, non PIC so)

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-powerpc/powerpc.exp ...
FAIL: TLS32 static exec
FAIL: TLS32 dynamic exec
FAIL: TLS32 shared
FAIL: TLS static exec
FAIL: TLS dynamic exec
FAIL: TLS shared
FAIL: TLSTOC static exec
FAIL: TLSTOC dynamic exec
FAIL: TLSTOC shared


and just for the sake of completeness:

                === ld Summary ===
 
# of expected passes            97
# of unexpected failures        29
# of expected failures          2

Running /var/tmp/portage/binutils-2.15.90.0.3-r1/work/binutils-2.15.90.0.3/ld/testsuite/ld-elfvsb/elfvsb.exp ...
FAIL: visibility (hidden_normal) (non PIC)
FAIL: visibility (hidden_normal) (non PIC, load offset)
FAIL: visibility (hidden_normal) (PIC main, non PIC so)
FAIL: visibility (hidden_weak) (non PIC)
FAIL: visibility (hidden_weak) (non PIC, load offset)
FAIL: visibility (hidden_weak) (PIC main, non PIC so)
FAIL: visibility (protected) (non PIC)
FAIL: visibility (protected) (non PIC, load offset)
FAIL: visibility (protected) (PIC main, non PIC so)
FAIL: visibility (protected_undef_def) (non PIC)
FAIL: visibility (protected_undef_def) (non PIC, load offset)
FAIL: visibility (protected_undef_def) (PIC main, non PIC so)
FAIL: visibility (protected_weak) (non PIC)
FAIL: visibility (protected_weak) (non PIC, load offset)
FAIL: visibility (protected_weak) (PIC main, non PIC so)
FAIL: visibility (normal) (non PIC)
FAIL: visibility (normal) (non PIC, load offset)
FAIL: visibility (normal) (PIC main, non PIC so)

Running /var/tmp/portage/binutils-2.15.90.0.3-r1/work/binutils-2.15.90.0.3/ld/testsuite/ld-powerpc/powerpc.exp ...
FAIL: TLS32 static exec
FAIL: TLS32 dynamic exec
FAIL: TLS32 shared
FAIL: TLS static exec
FAIL: TLS dynamic exec
FAIL: TLS shared
FAIL: TLSTOC static exec
FAIL: TLSTOC dynamic exec
FAIL: TLSTOC shared

Running /var/tmp/portage/binutils-2.15.90.0.3-r1/work/binutils-2.15.90.0.3/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective4
FAIL: selective5

Comment 7 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 19:29:40 UTC
with gcc 3.4.0-r1 on ppc64 with binutils 2.15.90.0.1.1-r1

                === ld Summary ===
 
# of expected passes            88
# of unexpected failures        34
# of expected failures          2
# of unresolved testcases       2

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-elfvsb/elfvsb.exp ...
FAIL: visibility (hidden_normal) (non PIC)
FAIL: visibility (hidden_normal) (non PIC, load offset)
FAIL: visibility (hidden_normal) (PIC main, non PIC so)
FAIL: visibility (hidden_undef_def) (non PIC)
FAIL: visibility (hidden_undef_def) (non PIC, load offset)
FAIL: visibility (hidden_undef_def)
FAIL: visibility (hidden_undef_def) (PIC main, non PIC so)
FAIL: visibility (hidden_undef_def) (PIC main)
FAIL: visibility (hidden_weak) (non PIC)
FAIL: visibility (hidden_weak) (non PIC, load offset)
FAIL: visibility (hidden_weak) (PIC main, non PIC so)
FAIL: visibility (protected) (non PIC)
FAIL: visibility (protected) (non PIC, load offset)
FAIL: visibility (protected) (PIC main, non PIC so)
FAIL: visibility (protected_undef_def) (non PIC)
FAIL: visibility (protected_undef_def) (non PIC, load offset)
FAIL: visibility (protected_undef_def) (PIC main, non PIC so)
FAIL: visibility (protected_weak) (non PIC)
FAIL: visibility (protected_weak) (non PIC, load offset)
FAIL: visibility (protected_weak) (PIC main, non PIC so)
FAIL: visibility (normal) (non PIC)
FAIL: visibility (normal) (non PIC, load offset)
FAIL: visibility (normal) (PIC main, non PIC so)

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-powerpc/powerpc.exp ...
FAIL: TLS32 static exec
FAIL: TLS32 dynamic exec
FAIL: TLS32 shared
FAIL: TLS static exec
FAIL: TLS dynamic exec
FAIL: TLS shared
FAIL: TLSTOC static exec
FAIL: TLSTOC dynamic exec
FAIL: TLSTOC shared

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-selective/selective.exp ...
FAIL: selective4
FAIL: selective5

so, the same stuff only with more PIC related failures. (possibly due to specfile changes) gcc 3.4.0 fixes sdiff on ppc64, which no longer segfaults at least... i really need to update the pie spec stuff in 3.4 anyways.
Comment 8 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 22:44:26 UTC
ppc64 + gcc 3.4.0-r1 + binutils 2.15.0.1.1 with no patches applied whatsoever:

                === ld Summary ===
 
# of expected passes            97
# of unexpected failures        25
# of expected failures          2
# of unresolved testcases       2

ERROR: /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-cdtest/cdtest-foo.cc: compilation failed

all other failures in elfvsb.exp and selective.exp like before... i'll do more testing after updating gcc 3.4.0 to be more in sync with the current pie patches and such.

removing amd64 from CC, as i somehow got distracted from working on my own arch and am instead working on just ppc64 0.o
Comment 9 Travis Tilley (RETIRED) gentoo-dev 2004-05-06 23:50:14 UTC
another side-note..

from inside amd64 suse:

ldd -r /lib/libreadline.so.4.3
        linux-gate.so.1 =>  (0xffffe000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x555aa000)
        libc.so.6 => /lib/tls/libc.so.6 (0x555ef000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x56555000)

or for 64bit in amd64 suse:

ldd -r /lib64/libreadline.so.4.3
        libncurses.so.5 => /lib64/libncurses.so.5 (0x0000002a956b8000)
        libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9581a000)
        /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)

from inside amd64 gentoo:

ldd -r /lib/libreadline.so.4.3
        libc.so.6 => /lib/libc.so.6 (0x0000002a956aa000)
        /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
undefined symbol: BC    (/lib/libreadline.so.4.3)
undefined symbol: PC    (/lib/libreadline.so.4.3)
undefined symbol: UP    (/lib/libreadline.so.4.3)
undefined symbol: tgetnum       (/lib/libreadline.so.4.3)
undefined symbol: tgoto (/lib/libreadline.so.4.3)
undefined symbol: tgetflag      (/lib/libreadline.so.4.3)
undefined symbol: tputs (/lib/libreadline.so.4.3)
undefined symbol: tgetent       (/lib/libreadline.so.4.3)
undefined symbol: tgetstr       (/lib/libreadline.so.4.3)

and on ppc64 gentoo:

Dual-G5 root # ldd -r /lib/libreadline.so.4.3
        libc.so.6 => /lib/libc.so.6 (0x0000008000063000)
        /lib64/ld64.so.1 => /lib64/ld64.so.1 (0x0000000008000000)
undefined symbol: PC    (/lib/libreadline.so.4.3)
undefined symbol: BC    (/lib/libreadline.so.4.3)
undefined symbol: UP    (/lib/libreadline.so.4.3)
undefined symbol: tgetnum       (/lib/libreadline.so.4.3)
undefined symbol: tgoto (/lib/libreadline.so.4.3)
undefined symbol: tgetflag      (/lib/libreadline.so.4.3)
undefined symbol: tputs (/lib/libreadline.so.4.3)
undefined symbol: tgetent       (/lib/libreadline.so.4.3)
undefined symbol: tgetstr       (/lib/libreadline.so.4.3)

yeah. i'd say our ld is pretty fubar.
Comment 10 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 00:10:32 UTC
oh yeah, and for completeness, here's x86:

ayanami / # ldd -r /lib/libreadline.so.4.3
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0x55584000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x56555000)
undefined symbol: BC    (/lib/libreadline.so.4.3)
undefined symbol: PC    (/lib/libreadline.so.4.3)
undefined symbol: UP    (/lib/libreadline.so.4.3)
undefined symbol: tgetnum       (/lib/libreadline.so.4.3)
undefined symbol: tgoto (/lib/libreadline.so.4.3)
undefined symbol: tgetflag      (/lib/libreadline.so.4.3)
undefined symbol: tputs (/lib/libreadline.so.4.3)
undefined symbol: tgetent       (/lib/libreadline.so.4.3)
undefined symbol: tgetstr       (/lib/libreadline.so.4.3)
Comment 11 Joshua Kinard gentoo-dev 2004-05-07 00:28:43 UTC
A quick check on sparc64 and mips reveals libreadline is broken there too, or atleast missing those symbols.  A quick google search indicates this is a longstanding readline/linux problem, and some distributions still exhibit it.  It seems at a preliminary glance, anything that needs to link in -lreadline will also need to link in -lncurses as well, in order for the undefined symbols to get resolved.  I'm poking around to see if there is a more permanent solution for readline itself.
Comment 12 Joshua Kinard gentoo-dev 2004-05-07 00:34:11 UTC
Not just linux, I also found a few references to solaris systems having the same issue.  Also, the undefined symbols are also provided by -ltermcap and -ltinfo, which makes three different libs that provide the symbols.  Fun part it seems to determining what lib a package may want if it needs readline's support in (I assume -lncurses is default in alot of cases).

http://op.gfz-potsdam.de/GRASS-List/Archive/msg10175.html
Comment 13 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 03:09:25 UTC
alrighty. did a make check on suse amd64 and got:

                === ld Summary ===

# of expected passes            134
# of expected failures          41

then i moved the source tree without any modifications, did a make clean && make && make check:

                === ld Summary ===

# of expected passes            127
# of expected failures          36
# of unresolved testcases       6
# of untested testcases         6

things that make you go hmmmmm...
Comment 14 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 08:02:01 UTC
ok, concentrating on amd64 for the moment. the problem seems to be one part dejagnu, one part binutils, and one part gcc...

suse 9.1 binutils 2.15.90.0.1.1, compiled on gentoo amd64 using portage:

                === ld Summary ===
 
# of expected passes            134
# of expected failures          41

ayanami binutils-2.15.90.0.1.1 # gcc --version
gcc (GCC) 3.3.3-hammer

with dejagnu-1.4.4-r1, which includes a patch that fixes a pic/PIC regex and ignores invalid linker warnings when searching 64bit libraries in /lib.

suse binutils was failing when compiled in gentoo, but not suse, even though it was the exact same tree. more poking into gcc will be needed to figure out why our gcc is screwing things up.
Comment 15 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 09:08:05 UTC
the TLS failures on amd64 are due to 90_all_binutils-2.14.90.0.8-pt-pax-flags.patch.bz2 in binutils. i'm assuming the symbol visibility problem on ppc64 is related, but i have yet to actually test that.

the selective linking problems are 100% gcc borkiness.
Comment 16 solar (RETIRED) gentoo-dev 2004-05-07 09:39:19 UTC
Show me how it's related please.
Comment 17 solar (RETIRED) gentoo-dev 2004-05-07 10:04:50 UTC
PT_LOOS: 0x60000000
PT_HIOS: 0x6ffffffa
PT_PAX_FLAGS: 0x65041580

As we can clearly see this falls within legal boundaries.
What probably going on here is that may be because said tests haven't been updated.
Comment 18 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 16:27:41 UTC
with the pt pax patch applied to binutils:

lv@ayanami lv $ gftp
Segmentation fault

with the patch removed and glibc recompiled:

lv@ayanami lv $ gftp
Killed

(gdb) run
Starting program: /usr/bin/gftp-gtk
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Warning:
Cannot insert breakpoint -2.
Error accessing memory address 0x12490: Input/output error.

0.o

i am also now getting visibility problems similar to ppc64 when using gcc 3.4.0-r1 and USE=hardened.

solar: with the pax patch applied, the tests fail. with the pax patch not applied, they pass. you're more familiar with the patch, why dont you tell me why it's related? as for the ppc64 symbol visibility crap... yeah, i have no idea what i was thinking. but removing the patch does fix all TLS failures on ppc64.
Comment 19 Travis Tilley (RETIRED) gentoo-dev 2004-05-07 17:14:28 UTC
recompiling everything with gcc 3.3.3-hammer (without any gentoo patches) and binutils 2.15.90.0.1.1-r1 without the pax patch (almost) fixes gftp. i'm assuming it will also help nautilus, which is dying with the exact same error: 0x(number) in pthread_getconcurrency () from /lib/libpthread.so.0. now gftp needs to actually attempt to download something in order to crash, unlike before when all you needed was to connect to an ftp server.

(gdb) run
Starting program: /usr/bin/gftp-gtk
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
 
Program received signal SIG32, Real-time event 32.
0x0000002a967bf14e in pthread_create () from /lib/libpthread.so.0
(gdb) backtrace
#0  0x0000002a967bf14e in pthread_create () from /lib/libpthread.so.0
Segmentation fault

hmm. i'm guessing that there are other issues here that prevent this from being an accurate test. *sigh* this is getting to be frustrating,
Comment 20 Luca Barbato gentoo-dev 2004-05-07 17:39:17 UTC
please try the gcc-3.3.3_pre20040408-r1 snapshot in portage
Comment 21 Travis Tilley (RETIRED) gentoo-dev 2004-05-08 01:35:00 UTC
that ebuild has some issues... besides spitting out epatch errors, it installs libgcc_s in the wrong place on amd64 and probably ppc64 as well. hmm... i see that versioned directories are disabled on ppc64. that is an ugly way to hack around the problem... all you need to do is copy the contents of lib32 and lib64 to the versioned directory before merging to ${ROOT} (or just lib64 if that is all that exists)

pcburn / # env-update
/usr/bin/python: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

anyways. off to "cp /usr/lib/gcc-lib/x86_64-pc-linux-gnu/lib64/libgcc_s.so* /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/" and continue testing...
Comment 22 Travis Tilley (RETIRED) gentoo-dev 2004-05-08 01:50:56 UTC
using that gcc ebuild and binutils 2.15.90.0.1.1-r1 without the pt pax patch on amd64 results in make check passing flawlessly.

i cant log into the ppc64 box and poke around there because i'm not anywhere near my ssh key, but i definately will as soon as i am.
Comment 23 Travis Tilley (RETIRED) gentoo-dev 2004-05-08 02:11:09 UTC
and just for completeness, with the only difference being the pax patch:

                === ld Summary ===

# of expected passes            132
# of unexpected failures        2
# of expected failures          41

Running /var/tmp/portage/binutils-2.15.90.0.1.1-r1/work/binutils-2.15.90.0.1.1/ld/testsuite/ld-x86-64/x86-64.exp ...
FAIL: TLS -fpic -shared transitions
FAIL: TLS -fpic and -fno-pic exec transitions

so on amd64, our gcc borks selective linking. and the pax patch borks thread local storage.
Comment 24 solar (RETIRED) gentoo-dev 2004-05-08 07:09:15 UTC
Think about it for a second. Your trying to set a breakpoint inside of a
shared object. This wont work, does not work, and can't work. What your
calling breakage is something how it was designed to behave.  (fact)
Interpolation is not possible within shared objects.  I've also told you
before more than one time that piessp was still in active development in
the 3.3.3 branch.  You are using an out dated patch in addition to
something that none of us has tested.

Now...  Tell me why. (don't answer me with another question) I want to
know why in detail you think(know) that an extra program header would
cause thread local storage problems.

I like you and I'm going to be very honest with you here. Your
discrediting our work and spreading FUD and it's borderline pissing me
off. If you are willing to make such assertions as to saying the PaX
binutils patch breaks local thread storage then you better be able to
back up those words.  So... Go read the code then come back and tell us
exactly how you think(know) it breaks.

Re: comment #22 Did you even read comment #17 ?
Comment 25 Travis Tilley (RETIRED) gentoo-dev 2004-05-08 11:18:54 UTC
except for ppc64, i've been using gcc-3.3.3.ebuild inside a clean stage3 chroot. did you even read comment #3 where i specifically state that anything there (at least for the amd64 testing) isn't at ALL due to the new piessp patches because i was using a version of GCC that doesn't even USE them?! jesus christ dude, i am not spreading FUD. i'm trying to figure out make check failures on all archs so as to get rid of them and get a nice stable, working toolchain on all archs. I just tracked down the /what/. I dont KNOW why yet... that's the whole point here: trying to figure that one out. it doesnt make sense to me either why this small patch does anything... the PT_TLS case in elf.c checked before PT_PAX_FLAGS is even evaluated. the section lower down where 'segment->p_type != PT_PAX_FLAGS' is evaluated before '(segment->p_type != PT_TLS || (section->flags & SEC_THREAD_LOCAL))' shouldn't matter either. why not stop getting defensive and actually help me here?

BAH. and DOUBLE BAH. you take yourself (and me, it seems) way too seriously.
Comment 26 solar (RETIRED) gentoo-dev 2004-05-08 15:31:34 UTC
Sorry I do/did not mean to come off like an ass to you but I take great 
pride in the work and I often find myself having to stick up for 
security. Anyway if something is truly misbehaving then I would want to
know the 'when/where/why'.  Simply saying without X Y works felt similar
to finger pointing without justification. Anyway I'm just trying to
prevent negative seed planting which could lead later to a grounds for
removal of the patch ;/ Which would break things for users/servers that 
only support PT_PAX_FLAGS now that EI_PAX flags have been deprecated.

I will unpack binutils and dig around and see what I can test & confirm 
or debunk. From your side can you make sure that you do not have 
-fPIC/-fPIE/-fstack-protector/-fstack-protector-all/-z pie/-z relro/-z
now/ enabled either automaticly (via gcc specs) or from make.conf
Comment 27 Travis Tilley (RETIRED) gentoo-dev 2004-05-08 15:46:38 UTC
yeah dude, i think pax is the coolest shit ever. especially on amd64, where i would even suggest making it a default (kernel patch anyways) at some point due to the native NX support. :)
but these make check problems are kinda freaky 0.o

as for make.conf:

CFLAGS="-O2 -fno-strict-aliasing"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j4"
ACCEPT_KEYWORDS="~amd64"
CLEAN_DELAY="0"

pcburn / # gcc --version
gcc (GCC) 3.3.3 (Gentoo Linux 3.3.3_pre20040408-r1)

PIE/pie/relro/stack-protector are nowhere to be found in the specs file
Comment 28 solar (RETIRED) gentoo-dev 2004-05-08 22:09:58 UTC
Travis can you please post some examples of the command line your using to get these results so I may preform the same tests.
Comment 29 PaX Team 2004-05-09 02:10:05 UTC
for the amd64/TLS 'breakage': if you look at the tests (ld/testsuite/ld-x86-64x86-64.exp) you'll see that it uses the run_ld_link_tests function which is in ld/testsuitelib/ld-lib.exp and is nicely commented. basically, simple readelf/objdump/etc output is compared against a predefined result. now if you look at the readelf outputs (.rd files) you'll notice that it (of course) doesn't contain the PT_PAX_FLAGS program header so any comparison against that will fail. simply update the expected test results and it should be ok (i don't have amd64 so i can't do it myself, not to mention the other archs). alternatively we can disable automatic generation of PT_PAX_FLAGS but then we'll be in more pain in actual use: we'd have to be able to pass down/enforce some ld flag to always produce it. your call.
Comment 30 Travis Tilley (RETIRED) gentoo-dev 2004-05-09 11:19:34 UTC
solar: you mean make check? emerge dejagnu for runtest and then run make check after make.

PaX team: ahhh.... that would explain why i couldnt find anything actually wrong after looking at the code. i assumed that the tests wouldnt be so simple and easily broken... i definately think we need to update the test cases along with the pax patch to prevent people like me from getting confused as fsck in the future. ;) thanks for the input, i appreciate it... really, i would have torn my hair out looking at the patch before even looking at the testsuite. i have access to x86, amd64, ppc, ppc64, and i can even ressurrect a crappy old r4k mips box if you need someone to send you output after the patch.

i'm going to assume that the selective linking tests are equally retarded? as well as the symbol visibility tests? actually, there might be something to those, as the selective linking tests sometimes fail to compile at all. hmm... i'll look a those later, probably after mother's day is over.

thanks again dude, you seriously have no idea how much random frustration you probably just saved me from. *shakes head*
Comment 31 solar (RETIRED) gentoo-dev 2004-05-09 12:59:25 UTC
Well here is the thing with updating the testsuite. If we update all the
tests then it should be merged upstream. If it's not merged then it's
just makes keeping the pax binutils more complicated and a maintenance 
nightmare.  It's been our experience that upstream (redhat) does not
care about PaX for whatever reasons. Now if your willing to fight the
upstream battle then (maybe?)  we can update the testsuite.
Comment 32 Travis Tilley (RETIRED) gentoo-dev 2004-05-10 00:50:02 UTC
no, i'm not going to fight with upstream if they already dont seem pleased with the idea. another very interesting side-note:

24-53-15-39 binutils # ldd /lib/libreadline.so
libc.so.6 => /lib/libc.so.6 (0x0000002a956a8000)
/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)

installed versions of apps:
sys-devel/gcc-3.3.3-r4
sys-devel/binutils-2.15.90.0.1.1-r2

i'll be committing the binutils ebuild shortly, it isnt very different from -r1. it contains a backport of relro and the tbss patch from 2.15.90.0.3-r2. i should port the new piessp patches to gcc 3.4, and see if i still have no undefined symbol messages... if so, it might be a good idea to try this combination on ppc64 to see if it does anything for the symbol visibility "make check" failures.
Comment 33 Travis Tilley (RETIRED) gentoo-dev 2004-05-10 01:07:03 UTC
holy crap, i forgot the -r. nevermind. ignore me. i'm going to sleep now before i accidentally break something. O_O
Comment 34 Travis Tilley (RETIRED) gentoo-dev 2004-05-10 17:22:14 UTC
marking my own bug as invalid for now