Bielefeld University -
Center for
Biotechnology - Bioinformatics
Resource Facility
GCC Maintenance
I'm a regular contributor to the GNU
Compiler Collection (GCC) project for over a decade. I currently
maintain the OS port
for Solaris
and co-maintain the GCC testsuite. Until their obsoletion in GCC
4.7, I also maintained the OS ports
for IRIX,
and Tru64 UNIX. This means
regularly testing the current development version, reporting and
fixing bugs found either by myself or by others, and improving
support for those platforms and reporting or working around problems
found in native tools like vendor assemblers, linkers, libraries and
system headers.
Current projects
Apart from the regular testing, there are a couple of projects
currently underway or planned.
Generic
-
Enable non-
C
locales in libstdc++
(cf. --enable-clocale=ieee1003.1-2001
).
-
Maybe provide GNAT
binaries for the platforms I maintain.
-
Investigate and improve build and test performance and parallelism
using techniques
developed for the OS/Net
consolidation of OpenSolaris.
Solaris/OpenSolaris
-
Support standards-conformant ordering of C++ destructors with
__cxa_atexit
(OpenSolaris libc
prototype
ready).
-
Investigate support for decimal floating point; will require ABI
specification and vendor support in
libc
.
-
Push
fixincludes
fixes upstream.
Completed projects
The following projects have been completed recently.
Generic
-
Support the
-m{arch, tune}=native
options, either
using CPU-specific code or with platform-specific functions.
Solaris/OpenSolaris
-
Make use of
.eh_frame_hdr
sections for the unwinder as
soon as Solaris supports them across all platforms (currently amd64
only) and provides the required dl_iterate_phdr
function: GCC 4.6.0, snv_157
and up.
-
Check for ABI compatiblity of libraries; provide symbol versioning
with non-GNU linkers where possible: GCC 4.6.0.
-
Provide COMDAT group support with the Sun assembler: Patch ready
for GCC 4.6.0, waiting for Sun assembler bug fix.
-
Provide COMDAT group support with the GNU assembler and Sun linker:
GCC 4.5.1.
-
Investigate and fix problems found when building GCC with the Sun
assembler on amd64: feature parity between Sun as and GNU as
achieved as far as possible for GCC 4.5.0; opened bug reports with
Sun for the rest.
Test Farm
The tests are run on a small test farm of mostly old donated or
retired machines.
-
Sun Fire X4440 with 4 6-core 2.6 GHz AMD Opteron Processor 8435
CPUs and 128 GB RAM, running Solaris 11.4 Beta, Solaris 11.3 inside a
kernel zone (retired machine)
-
Sun Fire X4450 with 4 quad-core 2.93 GHz Intel Xeon X7350 CPUs
and 32 GB RAM, running Solaris 10 (retired machine)
-
Oracle Netra SPARC S7-2 with 2 8-core 4.27 GHz SPARC S7 CPUs and 256
GB RAM, running Solaris 11.4 Beta, Solaris 11.3 inside a kernel zone,
and Solaris 10 inside an LDom (long-term loan graciously provided
by Oracle).
-
LDom on an Oracle SPARC T5-2 with up to 3/4 16-core 3.6 GHz SPARC
T5 CPU and 40 GB RAM, running Solaris 11.4 Beta, Solaris 11.3 inside a
kernel zone (production machine, LDom graciously provided by the
University Computing Center)
The following machines are no longer in active use because they have
become too slow or the OS versions they run are no longer supported
by GCC. Two of these machines were donated by Sun Microsystems
via the Academic
Excellence Grant program
-
Sun SPARC Enterprise T5220 with 1 8-core 1.2 GHz UltraSPARC T2 CPU
and 32 GB RAM, running Solaris 12 Beta (AEG grant by Sun Microsystems)
-
Sun Fire V890 with 8 1350 MHz UltraSPARC IV CPUs and 64 GB RAM,
running Solaris 11 (retired machine)
-
Sun SPARC Enterprise T5120 with 1 8-core 1.2 GHz UltraSPARC T2 CPU
and 32 GB RAM, running Solaris 10 (retired machine)
-
Sun Fire T2000 with 1 8-core 1.2 GHz UltraSPARC T1 CPU and 32 GB
RAM, running Solaris 10 with Solaris
8 and 9 branded zones
-
Sun Fire X4600 M2 with 8 dual-core 2.6 GHz AMD Opteron 8218 CPUs
and 32 GB RAM, running Solaris 11.4 Beta (AEG grant by Sun Microsystems)
-
Sun Fire V20z with 2 1.8 GHz AMD Opteron 244 CPUs and 12 GB RAM,
running Solaris 9 (retired machine)
-
Sun Fire V20z with 2 2.4 GHz AMD Opteron 250 CPUs and 12 GB RAM,
running Solaris 8 (retired machine)
Rainer Orth, 2017-09-29