[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_gcc]] Here's what's to be done for maintaining GCC. Apart from the target-specific configuration machinery, there shouldn't be any major differences within GCC between the GNU/Hurd and GNU/Linux ports, for example. Especially all the compiler magic is all the same. # [[General information|/gcc]] # [[Sources|source_repositories/gcc]] ## Boehm GC GCC includes an own variant of [[/Boehm_GC]] that is based on an upstream version, but with own patches, etc. This is used for Java. (There are patches (apparently not committed) that GCC itself can use it, too: .) Patches to GCC's fork should be contributed back to upstream [[/Boehm_GC]]. [[tschwinge]] reviewed (but only briefly for large parts) the differences on 2010-11-17, based on 5be7963446247204245c954641290f0e5ce238c6 (2010-10-28) of [[source_repositories/GCC]] and for [[source_repositories/Boehm_GC]] CVS HEAD sources from 2010-11-16, converted to Git: 9abb37b2e581b415bb1f482085891a289c2c0be1. [[tschwinge]] reviewed the Debian GCC Boehm GC changes, compared them to the upstream code, and put it into the local *hurd/boehm-gc/config_backport* branch, planning to submit it to gcc-patches after testing with the GCC [[testsuite]]. # Configuration Last reviewed against 2f78a7ce0a8d0ccd0b3142ec45da79a32fbd601d (2010-11-27). has documentation for the `configure` switches. * Configure fragments that have `*linux*` cases might/should often contain those for us (and GNU/k*BSD) as well. * `libgcc/configure.ac` [might need](http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00315.html) to be aligned for us to the `*linux*` cases. As well as at the end of `libgcc/config.host`. Check. checking whether decimal floating point is supported... no checking whether fixed-point is supported... no * `libgomp/configure.tgt` * [[`libmudflap`|libmudflap]]. * Might [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) be worthwhile w.r.t. our multithreaded libraries? * `--enable-languages=[...]` GNAT is not yet ported / bootstrapped? * `--enable-frame-pointer` `gcc/configure.ac`: `enable_frame_pointer=no` * `--with-dwarf2`? * `--enable-werror` * `--enable-checking` * `--enable-build-with-cxx` * `--enable-decimal-float`, `--enable-fixed-point`, `--with-long-double-128` `configure: WARNING: decimal float is not supported for this target, ignored` * `--enable-linker-build-id` * `--enable-gnu-unique-object` * `--enable-lto`, `--enable-gold` [[binutils_gold]] * `--enable-indirect-function` [[IFUNC]] # [[Testsuite]] # TODO Debian's GCC package has Hurd-specific patches. Some have been forwarded upstream (and have been ignored). [[Thomas_Schwinge|tschwinge]] is working on getting them integrated. * [\[meta-bug\] bootstrap bugs for \*-gnu\*](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21824) * [build system: gcc\_cv\_libc\_provides\_ssp and NATIVE\_SYSTEM\_HEADER\_DIR](http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html) * [-fstack-protector shouldn't use TLS in freestanding mode](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838) * [Tool chain configuration: GNU/\* sharing stuff with GNU/Linux](http://gcc.gnu.org/ml/gcc/2007-11/msg00289.html)