summaryrefslogtreecommitdiffstats
path: root/toolchain/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gcc')
-rw-r--r--toolchain/gcc/Config.in3
-rw-r--r--toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-1.1.3/901-avr32-revert-broken-uclibc-stuff.patch42
-rw-r--r--toolchain/gcc/gcc-uclibc-4.x.mk5
3 files changed, 48 insertions, 2 deletions
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 8783bae66..7f19d9e1c 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -32,9 +32,8 @@ choice
bool "gcc 4.2.1"
config BR2_GCC_VERSION_4_2_2
- depends on BR2_avr32
depends on BR2_EXT_GCC_VERSION_4_2_2
- depends on BR2_DEPRECATED
+ depends on BR2_DEPRECATED || BR2_avr32
bool "gcc 4.2.2"
config BR2_GCC_VERSION_4_2_3
diff --git a/toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-1.1.3/901-avr32-revert-broken-uclibc-stuff.patch b/toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-1.1.3/901-avr32-revert-broken-uclibc-stuff.patch
new file mode 100644
index 000000000..e056be0fd
--- /dev/null
+++ b/toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-1.1.3/901-avr32-revert-broken-uclibc-stuff.patch
@@ -0,0 +1,42 @@
+--- a/libstdc++-v3/acinclude.m4
++++ b/libstdc++-v3/acinclude.m4
+@@ -125,6 +125,15 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
+ ## other macros from doing the same. This should be automated.) -pme
+ need_libmath=no
+
++ # Check for uClibc since Linux platforms use different configuration
++ # directories depending on the C library in use.
++ AC_EGREP_CPP([_using_uclibc], [
++ #include <stdio.h>
++ #if __UCLIBC__
++ _using_uclibc
++ #endif
++ ], uclibc=yes, uclibc=no)
++
+ # Find platform-specific directories containing configuration info.
+ # Also possibly modify flags used elsewhere, as needed by the platform.
+ GLIBCXX_CHECK_HOST
+--- a/libstdc++-v3/config/os/gnu-linux/ctype_base.h
++++ b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+@@ -31,8 +31,6 @@
+ //
+ // ISO C++ 14882: 22.1 Locales
+ //
+-#include <features.h>
+-#include <ctype.h>
+
+ /** @file ctype_base.h
+ * This is an internal header file, included by other library headers.
+@@ -47,11 +45,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+-#ifdef __UCLIBC__
+- typedef const __ctype_touplow_t* __to_type;
+-#else
+- typedef const int* __to_type;
+-#endif
++ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 88878a8ce..2bc25583f 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -529,5 +529,10 @@ gcc_target-clean:
gcc_target-dirclean:
rm -rf $(GCC_BUILD_DIR3)
+gcc-status:
+ @echo GCC_OFFICIAL_VERSION=$(GCC_OFFICIAL_VERSION)
+ @echo GCC_PATCH_DIR=$(GCC_PATCH_DIR)
+ @echo GCC_SITE=$(GCC_SITE)
+
endif
# gcc-4.x only