diff options
Diffstat (limited to 'open_issues/gcc.mdwn')
-rw-r--r-- | open_issues/gcc.mdwn | 88 |
1 files changed, 65 insertions, 23 deletions
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index f0f2af51..a3b3a2d2 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -64,11 +64,15 @@ testsuite. Looks OK. + * fe5ef4a01870545d0344e670cd528ad096ebab1d + + OK. + # Configuration -Last reviewed up to the [[Git mirror's 7c9f953a01d23c6b6885dc908d5b1dba8009efd4 -(2011-07-18) sources|source_repositories/gcc]]. +Last reviewed up to the [[Git mirror's 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275 +(2011-09-05) sources|source_repositories/gcc]]. <http://gcc.gnu.org/install/configure.html> has documentation for the `configure` switches. @@ -95,7 +99,7 @@ Last reviewed up to the [[Git mirror's 7c9f953a01d23c6b6885dc908d5b1dba8009efd4 * [[`libmudflap`|libmudflap]]. * Might [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) be - worthwhile w.r.t. our multithreaded libraries? + worthwhile w.r.t. our [[multithreaded|multithreading]] libraries? * Also see `libgcc/config/i386/morestack.S`: comments w.r.t `TARGET_THREAD_SPLIT_STACK_OFFSET`; likely needs porting. @@ -125,8 +129,6 @@ Last reviewed up to the [[Git mirror's 7c9f953a01d23c6b6885dc908d5b1dba8009efd4 * `--enable-checking` - * `--enable-build-with-cxx` - * `--enable-linker-build-id` * `--enable-gnu-unique-object` @@ -170,32 +172,59 @@ Last reviewed up to the [[Git mirror's 7c9f953a01d23c6b6885dc908d5b1dba8009efd4 `check_effective_target_pie` should include `*-*-gnu*`, too. - * [high] 9b0fef97f18ed5c9f2f9a361262fbb450f2b0b53 + * [low] [[toolchain/cross-gnu]] toolchain bootstrap vs. `fenv.h` in libgcc's + libbid: + + [...]/xgcc [...] -DIN_LIBGCC2 -fbuilding-libgcc [...] -Dinhibit_libc [...] -o bid_decimal_globals.o [...] -c [...]/libgcc/config/libbid/bid_decimal_globals.c + [...]/libgcc/config/libbid/bid_decimal_globals.c:47:18: fatal error: fenv.h: No such file or directory + compilation terminated. + make[1]: *** [bid_decimal_globals.o] Error 1 + make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/gcc.obj/i686-pc-gnu/libgcc' + make: *** [all-target-libgcc] Error 2 + + See threads at [[!message-id + "AANLkTinY1Cd4_qO_9euYJN8zev4hdr7_ANpjNG+yGRMn@mail.gmail.com"]], + [[!message-id "20110328225532.GE5293@synopsys.com"]], [[!message-id + "4D52D522.1040804@gmail.com"]]. Can simply configure the first GCC with + `--disable-decimal-float`. - Very likely needed for us, too. Patch on gcc-patches and in - *config/extra_parts* branch. + Alternatively, can we use `#ifndef inhibit_libc` for this (these?) file(s)? + See `generic-nonstrack.c`, for example. The latter (and also + `generic-morestack-thread.c`) also has a nice explanation of `inhibit_libc` + which could be centralized at one place, for example definition of + `inhibit_libc`. + + * [low] [[toolchain/cross-gnu]] + + The directory that should contain system headers does not exist: + /media/boole-data/thomas/tmp/gnu-0/sys_root/usr/include + make[2]: *** [stmp-fixinc] Error 1 + make[2]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/gcc.obj/gcc' + make[1]: *** [all-gcc] Error 2 + make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/gcc.obj' + + `mkdir` the directory for now, but what is really going on? GCC has *use + `/usr/include` patch*, but glibc still installs into `/include/`? # Build Here's a log of a GCC build run; this is from our [[Git repository's -09ba3e78c07654e08c8bef82761dbbb26d3c00c9 (2011-07-18) +93608b32ee627438dbe8a1844254bf8c305c5dc1 (2011-09-05) sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C $ (cd ../master/ && contrib/gcc_update --touch) $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 2>&1 | tee log_build [...] - $ LIBRARY_PATH=$(echo /usr/lib/i386*-gnu) make 2>&1 | tee log_build_ + $ make 2>&1 | tee log_build_ [...] Different hosts may default to different shells and compiler versions; thus harmonized. -Setting `LIBRARY_PATH` is needed until [[!debbug 629819]] is resolved. - -This takes up around 2.3 GiB, and needs roughly 2.75 h on kepler.SCHWINGE, and -11 h on coulomb.SCHWINGE. +This takes up around 2.9 GiB, and needs roughly 2.75 h on kepler.SCHWINGE and +13.25 h on coulomb.SCHWINGE. ## Analysis @@ -254,6 +283,9 @@ This takes up around 2.3 GiB, and needs roughly 2.75 h on kepler.SCHWINGE, and -cat ../../hurd/gcc/config/i386/pmm_malloc.h > mm_malloc.h +cat ../../hurd/gcc/config/i386/gmm_malloc.h > mm_malloc.h + Comes from `gcc/config.gcc`: `i386/t-pmm_malloc` vs. `i386/t-gmm_malloc` + for `i[34567]86-*-linux*` vs. `i[34567]86-*-*`. + * *libgomp* * `libgomp/config/linux/`, `libgomp/config/linux/x86` @@ -348,13 +380,11 @@ This takes up around 2.3 GiB, and needs roughly 2.75 h on kepler.SCHWINGE, and # Install - $ LIBRARY_PATH=$(echo /usr/lib/i386*-gnu) make install 2>&1 | tee log_install + $ make install 2>&1 | tee log_install [...] -Setting `LIBRARY_PATH` is needed until [[!debbug 629819]] is resolved. - -This takes up around 0.6 GiB, and needs roughly 4 min on kepler.SCHWINGE, and -35 min on coulomb.SCHWINGE. +This takes up around 630 MiB, and needs roughly 4 min on kepler.SCHWINGE and 35 +min on coulomb.SCHWINGE. ## Analysis @@ -374,17 +404,29 @@ This takes up around 0.6 GiB, and needs roughly 4 min on kepler.SCHWINGE, and <http://gcc.gnu.org/install/test.html> - $ LIBRARY_PATH=$(echo /usr/lib/i386*-gnu) make -k check 2>&1 | tee log_check +Testing on GNU/Hurd is blocked on +[[fork_mach_port_mod_refs_ekern_urefs_owerflow]]. + + $ make -k check 2>&1 | tee log_check [...] -Setting `LIBRARY_PATH` is needed until [[!debbug 629819]] is resolved. +This needs roughly TODO min on kepler.SCHWINGE and TODO min on +coulomb.SCHWINGE. -Testing on GNU/Hurd is blocked on -[[fork_mach_port_mod_refs_ekern_urefs_owerflow]]. + $ ssh kepler.SCHWINGE 'cd tmp/source/gcc/ && sed < hurd/master.build/gcc/TODO -e "s%\(/media/data\)\?${PWD}%[...]%g"' > open_issues/gcc/sum_linux + $ ssh coulomb.SCHWINGE 'cd tmp/gcc/ && sed < hurd/master.build/gcc/TODO -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > open_issues/gcc/sum_hurd + +Comparing the results files, [[sum_linux]] to [[sum_hurd]]: + + $ diff -u -F ^Running open_issues/gcc/sum_linux open_issues/gcc/sum_hurd > open_issues/gcc/sum.diff + +[[open_issues/gcc/sum.diff]]. ## Analysis +TODO. + # Specific Languages |