NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Fully tested GCC 4.6.2 pkgsrc compiler, results for 9 platforms

It's probably not well known, but lang/gnat-aux exists to bring a modern Ada
compiler to the BSDs, SunOS and Android.  It originally supported just C and
Ada (the two languages needed to build itself), but by request it now
supports C++, Objective-C, and Fortran (the latter two are only available on 
gnat-aux-20111026, committed to pkgsrc-trunk today).

With the additional languages, it appears that lang/gcc46 and lang/gnat-aux
are converging.  The difference is that lang/gnat-aux needs to be bootstrapped
in order to build Ada, which is one reason why Ada is not available on any of
the lang/gcc* packages.  These bootstraps are hard to develop, and only 9 exist:
- i386 and x86_64 DragonFly
- i386 and x86_64 NetBSD
- i386 and x86_64 FreeBSD (used by FreeBSD ports, also builds gnatdroid)
- i386 and x86_64 OpenBSD (not used anywhere)
- i386 Solaris

lang/gcc46 needs to support many more architectures and can't be hindered by
bootstrapping, so these packages will have to coexist.  lang/gcc46 doesn't
actually build on DragonFly, needs a lot of TLC to work, and only has a few
advantages over lang/gnat-aux (NLS, extra libraries like libssp, libmudflap,

In the process of determining the quality of lang/gnat-aux, I ran every
applicable testsuite on 9 platforms.  I haven't seen GCC testsuite results on
NetBSD before, so I thought others might find the results interesting.


Some general observations with an emphasis on NetBSD:
1) All platforms have perfect Ada support
2) Somebody at NetBSD needs to look at Fortran.  i386-netbsdelf5.1 has good 
   but x86_64-netbsd5.1 has nearly 12,000 failures.  On NetBSD5.99 *both* 
platforms are
   showing 12,000 failures.  So i386 regressed and x86_64 was always broken.
   I thought this was due to missing functions in NetBSD's libm, but the i386 
   destroy that theory.  It could still be a gcc configuration issue, though.
3) Objective-C support on NetBSD is pretty good, but 5.99 is showing 3 failures 
on both
   arches that don't appear on other platforms.  (same with 5.1, no regression)
4) NetBSD has the highest marks for C++, no immediate concerns there
5) NetBSD has the lowest marks for libstdc++-v3.  Some of that is artificial, 
   doesn't have specific NetBSD directives, but there's a major regression on
   x86_64-NetBSD5.99.  There's over 2300 failures compared to 5 for 
   Somebody should look at that.
6) NetBSD has the highest marks for the "C" testsuite, but also suffers from 
   unexpected successes.

The 5.99 tests came from recent work:
x86_64 was built on Jan 6 with DIRECT_MAP disabled, tested on real hardware
i386 came from Jan 7 snapshot, tested inside vbox

These tests should be easily reproducible.  Just get lang/gnat-aux-20111026
from pkgsrc-trunk, turn on all the testsuite options which are disabled by
default, and build with "make test".  The test results will be found in:
${WRKDIR}/build/gcc/testsuite/(ada|g++|gcc|gfortran|gnat|objc) and
The log files are called ${LANGUAGE}.sum and ${LANGUAGE}.log

It would be interesting to see the results from lang/gcc46 for comparison 
I hope these results are of interest!


Home | Main Index | Thread Index | Old Index