Use the specs from gcc pass 1. You shouldn't need to edit the linker or start files assuming your host system is Glibc. Remove the -fPIC, and add "-fno-PIE -fno-stack-protector" to cc1: and cc1plus:, unconditionally. These two options are hard coded in GCC. All other options are done in the specs file, but gcc pass 1's spec file is vanilla except for -fPIC. Copy this spec file to /tools/lib/gcc/i686-pc-linux-gnu/4.4.1/specs just for the Binutils tests. I did this a while ago and all tests passed.
Hardened Binutils still has vanilla behavior. If the Binutils programs are broken by hardening, they would abort() or segfault, not cause bad output. So unless the programs are crashing during the tests, the test failures are caused by the modified compiler adding unexpected symbols, etc, to the test objects. The PT_PAX patch is an exception. Upstream/Pax doesn't maintain the test suite, I do, so some test may fail because of the extra program header. These are easy to fix. I forget if I checked whether the current Pax patch passes test suites, it just needs to be tested on a vanilla system to check. To test GCC, the specs file will probably need to be copied to obj/gcc/specs before running make check. I haven't tried this. If this doesn't work I have other ideas. -nopie only disables ld -pie in gcc specs, not -fPIE. Both Binutils and GCC don't respect *CFLAGS and CC during the tests. I tried to report it, but upstream doesn't seem to believe me. robert
pgp70lTqxoO6f.pgp
Description: PGP signature
-- http://linuxfromscratch.org/mailman/listinfo/hlfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page