It appears that gcc-aux is the first gcc 4.9.0 in pkgsrc. It's purpose is to build the Ada packages in pkgsrc, but it also supports C, C++, Objective-C, and Fortran languages by default. GCC 4.9 was released on 22 April 2014. Of note, GCC 4.9 fully supports the new Ada-2012 standard. The rest of the changes since GCC 4.8.2 are too numerous to mention, but a decent summary can be found here: http://gcc.gnu.org/gcc-4.9/changes.html FreeBSD support was added, but SunOS support was temporarily disabled. This is due to all new bootstraps being provided, but the SunOS bootstrap is not yet ready. Currently supported platforms are * NetBSD i386 and x86-64 * DragonFly i386 and x86-64 * FreeBSD i386 and x86-64 All platform fully pass the Ada testsuite: * http://www.dragonlace.net/gnataux/netbsd32/ * http://www.dragonlace.net/gnataux/netbsd64/ * http://www.dragonlace.net/gnataux/dragonfly32/ * http://www.dragonlace.net/gnataux/dragonfly64/ * http://www.dragonlace.net/gnataux/freebsd32/ * http://www.dragonlace.net/gnataux/freebsd64/
50 lines
2.3 KiB
Text
50 lines
2.3 KiB
Text
--- gcc/testsuite/c-c++-common/Wconversion-real.c.orig
|
|
+++ gcc/testsuite/c-c++-common/Wconversion-real.c
|
|
@@ -5,6 +5,12 @@
|
|
/* { dg-options "-std=c99 -Wconversion" { target c } } */
|
|
/* { dg-options "-Wconversion" { target c++ } } */
|
|
/* { dg-require-effective-target large_double } */
|
|
+/* Due to i386 rounding of long doubles on FreeBSD and DragonFly, the tests
|
|
+ should be set to "xfail" for those platforms, but it's not possible to
|
|
+ set both "target" and "xfail" together. An attempt to mark it
|
|
+ UNSUPPORTED for large_long_double and not (i386 FreeBSD i386 DragonFly)
|
|
+ failed. All the supported platforms of gcc-aux have large long double
|
|
+ so we'll just assume it for these two tests and use xfail instead. */
|
|
|
|
float vfloat;
|
|
double vdouble;
|
|
@@ -24,8 +30,8 @@
|
|
vfloat = 3.1; /* { dg-warning "conversion" } */
|
|
ffloat (3.1L); /* { dg-warning "conversion" } */
|
|
vfloat = 3.1L; /* { dg-warning "conversion" } */
|
|
- fdouble (3.1L); /* { dg-warning "conversion" "" { target large_long_double } } */
|
|
- vdouble = 3.1L; /* { dg-warning "conversion" "" { target large_long_double } } */
|
|
+ fdouble (3.1L); /* { dg-warning "conversion" "" { xfail { i?86-*-freebsd* i?86-*-dragonfly* } } } */
|
|
+ vdouble = 3.1L; /* { dg-warning "conversion" "" { xfail { i?86-*-freebsd* i?86-*-dragonfly* } } } */
|
|
ffloat (vdouble); /* { dg-warning "conversion" } */
|
|
vfloat = vdouble; /* { dg-warning "conversion" } */
|
|
ffloat (vlongdouble); /* { dg-warning "conversion" } */
|
|
--- libstdc++-v3/testsuite/lib/libstdc++.exp.orig
|
|
+++ libstdc++-v3/testsuite/lib/libstdc++.exp
|
|
@@ -877,17 +877,18 @@
|
|
set f [open $src "w"]
|
|
puts $f "#include <locale>"
|
|
puts $f "#include <cstdio>"
|
|
- puts $f "using namespace std;"
|
|
+ puts $f "using namespace std;"
|
|
puts $f "int main (int argc, char** argv)"
|
|
puts $f "{"
|
|
+ puts $f " const char* mlx = *(argv + 1);"
|
|
puts $f " try"
|
|
puts $f " {"
|
|
- puts $f " locale(*(argv + 1));"
|
|
+ puts $f " locale((char*)(mlx));"
|
|
puts $f " return 0;"
|
|
puts $f " }"
|
|
puts $f " catch(...)"
|
|
puts $f " {"
|
|
- puts $f " printf(\"locale '%s' not supported\\n\", *(argv + 1));"
|
|
+ puts $f " printf(\"locale '%s' not supported\\n\", mlx);"
|
|
puts $f " return 1;"
|
|
puts $f " }"
|
|
puts $f "}"
|