* [PATCH 0 of 1] Split gcc from cc
@ 2013-12-02 20:52 Yann Diorcet
2013-12-02 20:54 ` [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones Yann Diorcet
0 siblings, 1 reply; 7+ messages in thread
From: Yann Diorcet @ 2013-12-02 20:52 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: crossgcc
The goal of this patch is to split gcc configurations and functions from cc ones, in order to prepare the ground for including other compilers
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones
2013-12-02 20:52 [PATCH 0 of 1] Split gcc from cc Yann Diorcet
@ 2013-12-02 20:54 ` Yann Diorcet
2013-12-09 19:05 ` Ray Donnelly
2013-12-09 22:06 ` Cody P Schafer
0 siblings, 2 replies; 7+ messages in thread
From: Yann Diorcet @ 2013-12-02 20:54 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: crossgcc
# HG changeset patch
# User Yann Diorcet <diorcet.yann@gmail.com>
# Date 1386017469 -3600
# Mon Dec 02 21:51:09 2013 +0100
# Node ID 65771b86df01ef768aa36b6db1491a198cbf2811
# Parent 7e569a9cb5fd3ab591bb307328b947a5b7312cba
cc/gcc: Split gcc configurations and functions from cc ones
Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
diff -r 7e569a9cb5fd -r 65771b86df01 config/cc.in
--- a/config/cc.in Sat Nov 16 18:14:45 2013 +0100
+++ b/config/cc.in Mon Dec 02 21:51:09 2013 +0100
@@ -4,9 +4,7 @@
config CC
string
-
-config CC_VERSION
- string
+ default "gcc"
config CC_CORE_PASSES_NEEDED
bool
@@ -126,6 +124,4 @@
endif # ! BARE_METAL
-source "config.gen/cc.in.2"
-
endmenu
diff -r 7e569a9cb5fd -r 65771b86df01 config/cc/gcc.in
--- a/config/cc/gcc.in Sat Nov 16 18:14:45 2013 +0100
+++ b/config/cc/gcc.in Mon Dec 02 21:51:09 2013 +0100
@@ -1,5 +1,6 @@
# Compiler options
#
+## default y
## select CC_SUPPORT_CXX
## select CC_SUPPORT_FORTRAN
## select CC_SUPPORT_JAVA
@@ -36,215 +37,215 @@
# Don't remove next line
# CT_INSERT_VERSION_BELOW
-config CC_V_linaro_4_8
+config CC_GCC_V_linaro_4_8
bool
prompt "linaro-4.8-2013.06-1"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_8
-config CC_V_4_8_2
+config CC_GCC_V_4_8_2
bool
prompt "4.8.2"
select CC_GCC_4_8
-config CC_V_4_8_1
+config CC_GCC_V_4_8_1
bool
prompt "4.8.1"
select CC_GCC_4_8
-config CC_V_4_8_0
+config CC_GCC_V_4_8_0
bool
prompt "4.8.0"
select CC_GCC_4_8
-config CC_V_linaro_4_7
+config CC_GCC_V_linaro_4_7
bool
prompt "linaro-4.7-2013.06-1"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_7
-config CC_V_4_7_3
+config CC_GCC_V_4_7_3
bool
prompt "4.7.3"
select CC_GCC_4_7
-config CC_V_4_7_2
+config CC_GCC_V_4_7_2
bool
prompt "4.7.2"
select CC_GCC_4_7
-config CC_V_4_7_1
+config CC_GCC_V_4_7_1
bool
prompt "4.7.1"
select CC_GCC_4_7
-config CC_V_4_7_0
+config CC_GCC_V_4_7_0
bool
prompt "4.7.0"
select CC_GCC_4_7
-config CC_V_linaro_4_6
+config CC_GCC_V_linaro_4_6
bool
prompt "linaro-4.6-2013.05"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_6
-config CC_V_4_6_4
+config CC_GCC_V_4_6_4
bool
prompt "4.6.4"
select CC_GCC_4_6
-config CC_V_4_6_3
+config CC_GCC_V_4_6_3
bool
prompt "4.6.3"
select CC_GCC_4_6
-config CC_V_4_6_2
+config CC_GCC_V_4_6_2
bool
prompt "4.6.2"
select CC_GCC_4_6
-config CC_V_4_6_1
+config CC_GCC_V_4_6_1
bool
prompt "4.6.1"
select CC_GCC_4_6
-config CC_V_4_6_0
+config CC_GCC_V_4_6_0
bool
prompt "4.6.0"
select CC_GCC_4_6
-config CC_V_linaro_4_5
+config CC_GCC_V_linaro_4_5
bool
prompt "linaro-4.5-2012.03"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_5
-config CC_V_4_5_3
+config CC_GCC_V_4_5_3
bool
prompt "4.5.3"
select CC_GCC_4_5
-config CC_V_4_5_2
+config CC_GCC_V_4_5_2
bool
prompt "4.5.2"
select CC_GCC_4_5
-config CC_V_4_5_1
+config CC_GCC_V_4_5_1
bool
prompt "4.5.1"
select CC_GCC_4_5
-config CC_V_4_5_0
+config CC_GCC_V_4_5_0
bool
prompt "4.5.0"
select CC_GCC_4_5
-config CC_V_linaro_4_4
+config CC_GCC_V_linaro_4_4
bool
prompt "linaro-4.4-2011.02-0"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_4
-config CC_V_4_4_7
+config CC_GCC_V_4_4_7
bool
prompt "4.4.7"
select CC_GCC_4_4
-config CC_V_4_4_6
+config CC_GCC_V_4_4_6
bool
prompt "4.4.6"
select CC_GCC_4_4
-config CC_V_4_4_5
+config CC_GCC_V_4_4_5
bool
prompt "4.4.5"
select CC_GCC_4_4
-config CC_V_4_4_4
+config CC_GCC_V_4_4_4
bool
prompt "4.4.4"
select CC_GCC_4_4
-config CC_V_4_4_3
+config CC_GCC_V_4_4_3
bool
prompt "4.4.3"
select CC_GCC_4_4
-config CC_V_4_4_2
+config CC_GCC_V_4_4_2
bool
prompt "4.4.2"
select CC_GCC_4_4
-config CC_V_4_4_1
+config CC_GCC_V_4_4_1
bool
prompt "4.4.1"
select CC_GCC_4_4
-config CC_V_4_4_0
+config CC_GCC_V_4_4_0
bool
prompt "4.4.0"
select CC_GCC_4_4
-config CC_V_4_3_6
+config CC_GCC_V_4_3_6
bool
prompt "4.3.6"
select CC_GCC_4_3
-config CC_V_4_3_5
+config CC_GCC_V_4_3_5
bool
prompt "4.3.5"
select CC_GCC_4_3
-config CC_V_4_3_4
+config CC_GCC_V_4_3_4
bool
prompt "4.3.4"
select CC_GCC_4_3
-config CC_V_4_3_3
+config CC_GCC_V_4_3_3
bool
prompt "4.3.3"
select CC_GCC_4_3
-config CC_V_4_3_2
+config CC_GCC_V_4_3_2
bool
prompt "4.3.2"
select CC_GCC_4_3
-config CC_V_4_3_1
+config CC_GCC_V_4_3_1
bool
prompt "4.3.1"
select CC_GCC_4_3
-config CC_V_4_2_4
+config CC_GCC_V_4_2_4
bool
prompt "4.2.4"
select CC_GCC_4_2
# We need that one, it's the only version with avr32 support
# because we have a patch for it
-config CC_V_4_2_2
+config CC_GCC_V_4_2_2
bool
prompt "4.2.2"
select CC_GCC_4_2
-config CC_V_4_1_2
+config CC_GCC_V_4_1_2
bool
prompt "4.1.2 (OBSOLETE)"
depends on OBSOLETE
-config CC_V_4_0_4
+config CC_GCC_V_4_0_4
bool
prompt "4.0.4 (OBSOLETE)"
depends on OBSOLETE
-config CC_V_3_4_6
+config CC_GCC_V_3_4_6
bool
prompt "3.4.6 (OBSOLETE)"
depends on OBSOLETE
-config CC_CUSTOM
+config CC_GCC_CUSTOM
bool
prompt "Custom gcc"
depends on EXPERIMENTAL
@@ -252,9 +253,9 @@
endchoice
-if CC_CUSTOM
+if CC_GCC_CUSTOM
-config CC_CUSTOM_LOCATION
+config CC_GCC_CUSTOM_LOCATION
string
prompt "Full path to custom gcc source"
default ""
@@ -262,7 +263,7 @@
Enter the path to the directory (or tarball) of your source for gcc,
or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/gcc
-endif #CC_CUSTOM
+endif #CC_GCC_CUSTOM
config CC_GCC_4_2
bool
@@ -434,6 +435,8 @@
select GMP_NEEDED
select MPFR_NEEDED
+ select CLOOG_NEEDED
+
config CC_GCC_USE_MPC
bool
select MPC_NEEDED
@@ -445,52 +448,52 @@
config CC_GCC_HAS_LIBQUADMATH
bool
-config CC_VERSION
+config CC_GCC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
- default "linaro-4.8-2013.06-1" if CC_V_linaro_4_8
- default "4.8.2" if CC_V_4_8_2
- default "4.8.1" if CC_V_4_8_1
- default "4.8.0" if CC_V_4_8_0
- default "linaro-4.7-2013.06-1" if CC_V_linaro_4_7
- default "4.7.3" if CC_V_4_7_3
- default "4.7.2" if CC_V_4_7_2
- default "4.7.1" if CC_V_4_7_1
- default "4.7.0" if CC_V_4_7_0
- default "linaro-4.6-2013.05" if CC_V_linaro_4_6
- default "4.6.4" if CC_V_4_6_4
- default "4.6.3" if CC_V_4_6_3
- default "4.6.2" if CC_V_4_6_2
- default "4.6.1" if CC_V_4_6_1
- default "4.6.0" if CC_V_4_6_0
- default "linaro-4.5-2012.03" if CC_V_linaro_4_5
- default "4.5.3" if CC_V_4_5_3
- default "4.5.2" if CC_V_4_5_2
- default "4.5.1" if CC_V_4_5_1
- default "4.5.0" if CC_V_4_5_0
- default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4
- default "4.4.7" if CC_V_4_4_7
- default "4.4.6" if CC_V_4_4_6
- default "4.4.5" if CC_V_4_4_5
- default "4.4.4" if CC_V_4_4_4
- default "4.4.3" if CC_V_4_4_3
- default "4.4.2" if CC_V_4_4_2
- default "4.4.1" if CC_V_4_4_1
- default "4.4.0" if CC_V_4_4_0
- default "4.3.6" if CC_V_4_3_6
- default "4.3.5" if CC_V_4_3_5
- default "4.3.4" if CC_V_4_3_4
- default "4.3.3" if CC_V_4_3_3
- default "4.3.2" if CC_V_4_3_2
- default "4.3.1" if CC_V_4_3_1
- default "4.3.0" if CC_V_4_3_0
- default "4.2.4" if CC_V_4_2_4
- default "4.2.2" if CC_V_4_2_2
- default "4.1.2" if CC_V_4_1_2
- default "4.0.4" if CC_V_4_0_4
- default "3.4.6" if CC_V_3_4_6
- default "custom" if CC_CUSTOM
+ default "linaro-4.8-2013.06-1" if CC_GCC_V_linaro_4_8
+ default "4.8.2" if CC_GCC_V_4_8_2
+ default "4.8.1" if CC_GCC_V_4_8_1
+ default "4.8.0" if CC_GCC_V_4_8_0
+ default "linaro-4.7-2013.06-1" if CC_GCC_V_linaro_4_7
+ default "4.7.3" if CC_GCC_V_4_7_3
+ default "4.7.2" if CC_GCC_V_4_7_2
+ default "4.7.1" if CC_GCC_V_4_7_1
+ default "4.7.0" if CC_GCC_V_4_7_0
+ default "linaro-4.6-2013.05" if CC_GCC_V_linaro_4_6
+ default "4.6.4" if CC_GCC_V_4_6_4
+ default "4.6.3" if CC_GCC_V_4_6_3
+ default "4.6.2" if CC_GCC_V_4_6_2
+ default "4.6.1" if CC_GCC_V_4_6_1
+ default "4.6.0" if CC_GCC_V_4_6_0
+ default "linaro-4.5-2012.03" if CC_GCC_V_linaro_4_5
+ default "4.5.3" if CC_GCC_V_4_5_3
+ default "4.5.2" if CC_GCC_V_4_5_2
+ default "4.5.1" if CC_GCC_V_4_5_1
+ default "4.5.0" if CC_GCC_V_4_5_0
+ default "linaro-4.4-2011.02-0" if CC_GCC_V_linaro_4_4
+ default "4.4.7" if CC_GCC_V_4_4_7
+ default "4.4.6" if CC_GCC_V_4_4_6
+ default "4.4.5" if CC_GCC_V_4_4_5
+ default "4.4.4" if CC_GCC_V_4_4_4
+ default "4.4.3" if CC_GCC_V_4_4_3
+ default "4.4.2" if CC_GCC_V_4_4_2
+ default "4.4.1" if CC_GCC_V_4_4_1
+ default "4.4.0" if CC_GCC_V_4_4_0
+ default "4.3.6" if CC_GCC_V_4_3_6
+ default "4.3.5" if CC_GCC_V_4_3_5
+ default "4.3.4" if CC_GCC_V_4_3_4
+ default "4.3.3" if CC_GCC_V_4_3_3
+ default "4.3.2" if CC_GCC_V_4_3_2
+ default "4.3.1" if CC_GCC_V_4_3_1
+ default "4.3.0" if CC_GCC_V_4_3_0
+ default "4.2.4" if CC_GCC_V_4_2_4
+ default "4.2.2" if CC_GCC_V_4_2_2
+ default "4.1.2" if CC_GCC_V_4_1_2
+ default "4.0.4" if CC_GCC_V_4_0_4
+ default "3.4.6" if CC_GCC_V_3_4_6
+ default "custom" if CC_GCC_CUSTOM
config CC_LANG_JAVA_USE_ECJ
bool
@@ -501,3 +504,5 @@
# Fortran always requires GMP+MPFR, whatever the gcc version
config CC_LANG_FORTRAN
select CC_GCC_USE_GMP_MPFR
+
+source "config/cc/gcc.in.2"
diff -r 7e569a9cb5fd -r 65771b86df01 config/cc/gcc.in.2
--- a/config/cc/gcc.in.2 Sat Nov 16 18:14:45 2013 +0100
+++ b/config/cc/gcc.in.2 Mon Dec 02 21:51:09 2013 +0100
@@ -1,6 +1,6 @@
# gcc configuration options
-config CC_ENABLE_CXX_FLAGS
+config CC_GCC_ENABLE_CXX_FLAGS
string
prompt "Flags to pass to --enable-cxx-flags"
default ""
@@ -11,7 +11,7 @@
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.
-config CC_CORE_EXTRA_CONFIG_ARRAY
+config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
string
prompt "Core gcc extra config"
default ""
@@ -25,7 +25,7 @@
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
-config CC_EXTRA_CONFIG_ARRAY
+config CC_GCC_EXTRA_CONFIG_ARRAY
string
prompt "gcc extra config"
default ""
@@ -38,9 +38,9 @@
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config STATIC_TOOLCHAIN
- select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
+ select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
-config CC_STATIC_LIBSTDCXX
+config CC_GCC_STATIC_LIBSTDCXX
bool
prompt "Link libstdc++ statically into the gcc binary"
default y
diff -r 7e569a9cb5fd -r 65771b86df01 config/config.mk
--- a/config/config.mk Sat Nov 16 18:14:45 2013 +0100
+++ b/config/config.mk Mon Dec 02 21:51:09 2013 +0100
@@ -83,7 +83,7 @@
config.gen/cc.in: $(CC_CONFIG_FILES) $(CC_CONFIG_FILES_2)
@$(ECHO) ' IN $(@)'
- $(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "C compiler" "CC" "config/cc" "N" $(CCS)
+ $(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh menu "$@" "C compiler" "CC" "config/cc" $(CCS)
config.gen/binutils.in: $(CC_BINUTILS_FILES) $(CC_BINUTILS_FILES_2)
@$(ECHO) ' IN $(@)'
diff -r 7e569a9cb5fd -r 65771b86df01 samples/alphaev56-unknown-linux-gnu/crosstool.config
--- a/samples/alphaev56-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/alphaev56-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -10,7 +10,7 @@
CT_BINUTILS_V_2_21_1a=y
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_5=y
+CT_CC_GCC_V_4_4_5=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/alphaev67-unknown-linux-gnu/crosstool.config
--- a/samples/alphaev67-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/alphaev67-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_38=y
CT_BINUTILS_V_2_21_1a=y
-CT_CC_V_4_3_5=y
+CT_CC_GCC_V_4_3_5=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config
--- a/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -11,7 +11,7 @@
CT_TARGET_VENDOR="bare_newlib_cortex_m3_nommu"
CT_ARCH_BINFMT_FLAT=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_4_1=y
+CT_CC_GCC_V_4_4_1=y
CT_CC_LANG_CXX=y
CT_LIBC_NEWLIB_V_1_18_0=y
CT_GMP_V_4_3_2=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-cortex_a8-linux-gnueabi/crosstool.config
--- a/samples/arm-cortex_a8-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-cortex_a8-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -10,7 +10,7 @@
CT_KERNEL_linux=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_6=y
+CT_CC_GCC_V_4_4_6=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config
--- a/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -18,7 +18,7 @@
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_FOR_TARGET=y
CT_CC_GCC_SHOW_LINARO=y
-CT_CC_V_linaro_4_7=y
+CT_CC_GCC_V_linaro_4_7=y
CT_CC_LANG_CXX=y
CT_CC_CORE_EXTRA_CONFIG_ARRAY="\"--with-specs=%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}\" --enable-poison-system-directories"
CT_CC_EXTRA_CONFIG_ARRAY="\"--with-specs=%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}\" --enable-poison-system-directories"
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-davinci-linux-gnueabi/crosstool.config
--- a/samples/arm-davinci-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-davinci-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -11,7 +11,7 @@
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-eabi/crosstool.config
--- a/samples/arm-unknown-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-unknown-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -4,7 +4,7 @@
CT_ARCH_FLOAT_SW=y
CT_ARCH_arm=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_4=y
+CT_CC_GCC_V_4_3_4=y
CT_CC_LANG_CXX=y
CT_LIBC_NEWLIB_V_1_17_0=y
CT_DEBUG_gdb=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-linux-gnueabi/crosstool.config
--- a/samples/arm-unknown-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-unknown-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_linux=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-linux-uclibcgnueabi/crosstool.config
--- a/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -11,7 +11,7 @@
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_3=y
+CT_CC_GCC_V_4_4_3=y
CT_CC_LANG_CXX=y
CT_LIBC_uClibc=y
CT_LIBC_UCLIBC_V_0_9_30_2=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-eabi/crosstool.config
--- a/samples/armeb-unknown-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/armeb-unknown-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -5,7 +5,7 @@
CT_ARCH_FLOAT_SW=y
CT_ARCH_arm=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_LIBC_none=y
CT_DEBUG_gdb=y
CT_GDB_V_6_8a=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-linux-gnueabi/crosstool.config
--- a/samples/armeb-unknown-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/armeb-unknown-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -11,7 +11,7 @@
CT_KERNEL_linux=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_3=y
+CT_CC_GCC_V_4_4_3=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config
--- a/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -16,7 +16,7 @@
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_6_4=y
+CT_CC_GCC_V_4_6_4=y
CT_CC_LANG_CXX=y
CT_CC_GCC_DISABLE_PCH=y
# CT_CC_GCC_SJLJ_EXCEPTIONS is not set
diff -r 7e569a9cb5fd -r 65771b86df01 samples/avr32-unknown-none/crosstool.config
--- a/samples/avr32-unknown-none/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/avr32-unknown-none/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -4,7 +4,7 @@
CT_LOG_EXTRA=y
CT_ARCH_avr32=y
CT_BINUTILS_V_2_18a=y
-CT_CC_V_4_2_2=y
+CT_CC_GCC_V_4_2_2=y
CT_LIBC_NEWLIB_V_1_17_0=y
CT_LIBC_NEWLIB_IO_LL=y
CT_LIBC_NEWLIB_IO_FLOAT=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/bfin-unknown-linux-uclibc/crosstool.config
--- a/samples/bfin-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/bfin-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -6,7 +6,7 @@
CT_KERNEL_V_2_6_33=y
CT_ARCH_BINFMT_FDPIC=y
CT_BINUTILS_V_2_20_1a=y
-CT_CC_V_4_3_4=y
+CT_CC_GCC_V_4_3_4=y
CT_LIBC_UCLIBC_V_0_9_30_2=y
CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
CT_GMP_V_4_3_2=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/i586-geode-linux-uclibc/crosstool.config
--- a/samples/i586-geode-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/i586-geode-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_V_2_6_36=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_5=y
+CT_CC_GCC_V_4_4_5=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config
--- a/samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -12,7 +12,7 @@
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-targets=i686-none-linux-gnu"
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/i686-nptl-linux-gnu/crosstool.config
--- a/samples/i686-nptl-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/i686-nptl-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -13,7 +13,7 @@
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_5_2=y
+CT_CC_GCC_V_4_5_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/i686-unknown-mingw32/crosstool.config
--- a/samples/i686-unknown-mingw32/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/i686-unknown-mingw32/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_windows=y
CT_BINUTILS_V_2_21_1a=y
CT_BINUTILS_PLUGINS=y
-CT_CC_V_4_5_2=y
+CT_CC_GCC_V_4_5_2=y
CT_CC_LANG_CXX=y
CT_MINGW_DIRECTX=y
CT_MINGW_DDK=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/m68k-unknown-elf/crosstool.config
--- a/samples/m68k-unknown-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/m68k-unknown-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -6,7 +6,7 @@
CT_ARCH_m68k=y
CT_ARCH_BINFMT_FLAT=y
CT_BINUTILS_V_2_20_1a=y
-CT_CC_V_4_3_4=y
+CT_CC_GCC_V_4_3_4=y
CT_LIBC_none=y
CT_GMP_V_4_3_2=y
CT_MPFR_V_2_4_2=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-ar2315-linux-gnu/crosstool.config
--- a/samples/mips-ar2315-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips-ar2315-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -10,7 +10,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_EGLIBC_V_2_9=y
CT_EGLIBC_REVISION="{2009-07-21}"
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-malta-linux-gnu/crosstool.config
--- a/samples/mips-malta-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips-malta-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_38=y
CT_BINUTILS_V_2_21_1a=y
-CT_CC_V_4_4_6=y
+CT_CC_GCC_V_4_4_6=y
# CT_CC_GCC_USE_GRAPHITE is not set
CT_LIBC_EGLIBC_V_2_13=y
CT_DEBUG_gdb=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-unknown-elf/crosstool.config
--- a/samples/mips-unknown-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips-unknown-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -4,7 +4,7 @@
CT_ARCH_FLOAT_SW=y
CT_ARCH_mips=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_LIBC_none=y
CT_DEBUG_gdb=y
CT_GDB_V_6_8a=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-unknown-linux-uclibc/crosstool.config
--- a/samples/mips-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_3_6=y
CT_BINUTILS_V_2_21_1a=y
-CT_CC_V_4_6_4=y
+CT_CC_GCC_V_4_6_4=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_LIBC_uClibc=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips64el-n32-linux-uclibc/crosstool.config
--- a/samples/mips64el-n32-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips64el-n32-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -10,7 +10,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_uClibc=y
CT_LIBC_UCLIBC_V_0_9_30_1=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips64el-n64-linux-uclibc/crosstool.config
--- a/samples/mips64el-n64-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mips64el-n64-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -11,7 +11,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_uClibc=y
CT_LIBC_UCLIBC_V_0_9_30_1=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mipsel-sde-elf/crosstool.config
--- a/samples/mipsel-sde-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mipsel-sde-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -6,7 +6,7 @@
CT_ARCH_mips=y
CT_TARGET_VENDOR="sde"
CT_BINUTILS_V_2_21_1a=y
-CT_CC_V_4_4_6=y
+CT_CC_GCC_V_4_4_6=y
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
CT_LIBC_none=y
CT_DEBUG_gdb=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/mipsel-unknown-linux-gnu/crosstool.config
--- a/samples/mipsel-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/mipsel-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -9,7 +9,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-405-linux-gnu/crosstool.config
--- a/samples/powerpc-405-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-405-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -10,7 +10,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-860-linux-gnu/crosstool.config
--- a/samples/powerpc-860-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-860-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -9,7 +9,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_EXTRA_CONFIG_ARRAY="--with-cpu=860 --enable-cxx-flags=-mcpu=860 --with-float=soft --enable-cxx-flags=-msoft-float"
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-e300c3-linux-gnu/crosstool.config
--- a/samples/powerpc-e300c3-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-e300c3-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -9,7 +9,7 @@
CT_KERNEL_V_2_6_36=y
CT_BINUTILS_V_2_21_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_5_2=y
+CT_CC_GCC_V_4_5_2=y
CT_CC_LANG_CXX=y
CT_CC_EXTRA_CONFIG_ARRAY="--with-long-double-128"
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-e500v2-linux-gnuspe/crosstool.config
--- a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -14,7 +14,7 @@
CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-spe=yes --enable-e500x2 --with-e500x2"
CT_BINUTILS_FOR_TARGET=y
CT_CC_GCC_SHOW_LINARO=y
-CT_CC_V_4_6_4=y
+CT_CC_GCC_V_4_6_4=y
CT_CC_LANG_CXX=y
CT_CC_EXTRA_CONFIG_ARRAY="--with-long-double-128"
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown-linux-gnu/crosstool.config
--- a/samples/powerpc-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -6,7 +6,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown-linux-uclibc/crosstool.config
--- a/samples/powerpc-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_2_4=y
+CT_CC_GCC_V_4_2_4=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_LIBC_uClibc=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config
--- a/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc64-unknown-linux-gnu/crosstool.config
--- a/samples/powerpc64-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/powerpc64-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_5_2=y
+CT_CC_GCC_V_4_5_2=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/s390-ibm-linux-gnu/crosstool.config
--- a/samples/s390-ibm-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/s390-ibm-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -6,7 +6,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_20_1a=y
-CT_CC_V_4_3_4=y
+CT_CC_GCC_V_4_3_4=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/s390x-ibm-linux-gnu/crosstool.config
--- a/samples/s390x-ibm-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/s390x-ibm-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -8,7 +8,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_31=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_4_5=y
+CT_CC_GCC_V_4_4_5=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/sh4-unknown-linux-gnu/crosstool.config
--- a/samples/sh4-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/sh4-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_linux=y
CT_KERNEL_V_2_6_27=y
CT_BINUTILS_V_2_19_1a=y
-CT_CC_V_4_3_2=y
+CT_CC_GCC_V_4_3_2=y
CT_CC_LANG_CXX=y
CT_LIBC_glibc=y
CT_LIBC_GLIBC_V_2_9=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-linux-gnu/crosstool.config
--- a/samples/x86_64-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/x86_64-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_3=y
+CT_CC_GCC_V_4_4_3=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-linux-uclibc/crosstool.config
--- a/samples/x86_64-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/x86_64-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_V_2_6_33=y
CT_BINUTILS_V_2_20_1a=y
CT_BINUTILS_FOR_TARGET=y
-CT_CC_V_4_4_3=y
+CT_CC_GCC_V_4_4_3=y
CT_CC_LANG_FORTRAN=y
CT_CC_LANG_CXX=y
CT_CC_LANG_JAVA=y
diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-mingw32/crosstool.config
--- a/samples/x86_64-unknown-mingw32/crosstool.config Sat Nov 16 18:14:45 2013 +0100
+++ b/samples/x86_64-unknown-mingw32/crosstool.config Mon Dec 02 21:51:09 2013 +0100
@@ -7,7 +7,7 @@
CT_KERNEL_windows=y
CT_BINUTILS_V_2_21_1a=y
CT_BINUTILS_PLUGINS=y
-CT_CC_V_4_5_2=y
+CT_CC_GCC_V_4_5_2=y
CT_CC_LANG_CXX=y
CT_MINGW_DIRECTX=y
CT_MINGW_DDK=y
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build/cc.sh Mon Dec 02 21:51:09 2013 +0100
@@ -0,0 +1,59 @@
+# Wrapper to build the companion tools facilities
+
+# List all companion tools facilities, and parse their scripts
+CT_CC_FACILITY_LIST=
+for f in "${CT_LIB_DIR}/scripts/build/cc/"*.sh; do
+ _f="$(basename "${f}" .sh)"
+ _f="${_f#???-}"
+ __f="CT_CC_${_f}"
+ if [ "${!__f}" = "y" ]; then
+ CT_DoLog DEBUG "Enabling cc '${_f}'"
+ . "${f}"
+ CT_CC_FACILITY_LIST="${CT_CC_FACILITY_LIST} ${_f}"
+ else
+ CT_DoLog DEBUG "Disabling cc '${_f}'"
+ fi
+done
+
+# Download the cc facilities
+do_cc_get() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_get
+ done
+}
+
+# Extract and patch the cc facilities
+do_cc_extract() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_extract
+ done
+}
+
+# Core pass 1 the cc facilities
+do_cc_core_pass_1() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_core_pass_1
+ done
+}
+
+# Core pass 2 the cc facilities
+do_cc_core_pass_2() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_core_pass_2
+ done
+}
+
+# Build for build the cc facilities
+do_cc_for_build() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_for_build
+ done
+}
+
+# Build for host the cc facilities
+do_cc_for_host() {
+ for f in ${CT_CC_FACILITY_LIST}; do
+ do_${f}_for_host
+ done
+}
+
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc/100-gcc.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build/cc/100-gcc.sh Mon Dec 02 21:51:09 2013 +0100
@@ -0,0 +1,874 @@
+# This file adds the function to build the gcc C compiler
+# Copyright 2007 Yann E. MORIN
+# Licensed under the GPL v2. See COPYING in the root of this package
+
+# Download gcc
+do_gcc_get() {
+ local linaro_version
+ local linaro_series
+ local linaro_base_url="http://launchpad.net/gcc-linaro"
+
+ if [ "${CT_CC_GCC_CUSTOM}" = "y" ]; then
+ CT_GetCustom "gcc" "${CT_CC_GCC_VERSION}" "${CT_CC_GCC_CUSTOM_LOCATION}"
+ else
+ # Account for the Linaro versioning
+ linaro_version="$( echo "${CT_CC_GCC_VERSION}" \
+ |sed -r -e 's/^linaro-//;' \
+ )"
+ linaro_series="$( echo "${linaro_version}" \
+ |sed -r -e 's/-.*//;' \
+ )"
+
+ # Ah! gcc folks are kind of 'different': they store the tarballs in
+ # subdirectories of the same name!
+ # Arrgghh! Some of those versions does not follow this convention:
+ # gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
+ # subdirectory!
+ CT_GetFile "gcc-${CT_CC_GCC_VERSION}" \
+ {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_GCC_VERSION}} \
+ ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_GCC_VERSION} \
+ ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_GCC_VERSION} \
+ "${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
+ fi # ! custom location
+ # Starting with GCC 4.3, ecj is used for Java, and will only be
+ # built if the configure script finds ecj.jar at the top of the
+ # GCC source tree, which will not be there unless we get it and
+ # put it there ourselves
+ if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
+ CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java \
+ ftp://sourceware.org/pub/java
+ fi
+}
+
+# Extract gcc
+do_gcc_extract() {
+ # If using custom directory location, nothing to do
+ if [ "${CT_CC_GCC_CUSTOM}" = "y" \
+ -a -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}" ]; then
+ return 0
+ fi
+
+ CT_Extract "gcc-${CT_CC_GCC_VERSION}"
+ CT_Patch "gcc" "${CT_CC_GCC_VERSION}"
+
+ # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
+ if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" \
+ -a ! -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/ecj.jar" \
+ ]; then
+ CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/ecj.jar"
+ fi
+}
+
+#------------------------------------------------------------------------------
+# This function builds up the set of languages to enable
+# No argument expected, returns the comma-separated language list on stdout
+cc_gcc_lang_list() {
+ local lang_list
+
+ lang_list="c"
+ [ "${CT_CC_LANG_CXX}" = "y" ] && lang_list+=",c++"
+ [ "${CT_CC_LANG_FORTRAN}" = "y" ] && lang_list+=",fortran"
+ [ "${CT_CC_LANG_ADA}" = "y" ] && lang_list+=",ada"
+ [ "${CT_CC_LANG_JAVA}" = "y" ] && lang_list+=",java"
+ [ "${CT_CC_LANG_OBJC}" = "y" ] && lang_list+=",objc"
+ [ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_list+=",obj-c++"
+ [ "${CT_CC_LANG_GOLANG}" = "y" ] && lang_list+=",go"
+ lang_list+="${CT_CC_LANG_OTHERS:+,${CT_CC_LANG_OTHERS}}"
+
+ printf "%s" "${lang_list}"
+}
+
+#------------------------------------------------------------------------------
+# Core gcc pass 1
+do_gcc_core_pass_1() {
+ local -a core_opts
+
+ if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
+ return 0
+ fi
+
+ core_opts+=( "mode=static" )
+ core_opts+=( "host=${CT_BUILD}" )
+ core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
+ core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
+ core_opts+=( "lang_list=c" )
+
+ CT_DoStep INFO "Installing pass-1 core C gcc compiler"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-core-pass-1"
+
+ do_gcc_core_backend "${core_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+# Core gcc pass 2
+do_gcc_core_pass_2() {
+ local -a core_opts
+
+ if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
+ return 0
+ fi
+
+ # Common options:
+ core_opts+=( "host=${CT_BUILD}" )
+ core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
+ core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
+ core_opts+=( "lang_list=c" )
+
+ # Different conditions are at stake here:
+ # - In case the threading model is NPTL, we need a shared-capable core
+ # gcc; in all other cases, we need a static-only core gcc.
+ # - In case the threading model is NPTL or win32, or gcc is 4.3 or
+ # later, we need to build libgcc
+ case "${CT_THREADS}" in
+ nptl)
+ core_opts+=( "mode=shared" )
+ core_opts+=( "build_libgcc=yes" )
+ ;;
+ win32)
+ core_opts+=( "mode=static" )
+ core_opts+=( "build_libgcc=yes" )
+ ;;
+ *)
+ core_opts+=( "mode=static" )
+ if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
+ core_opts+=( "build_libgcc=yes" )
+ fi
+ ;;
+ esac
+
+ CT_DoStep INFO "Installing pass-2 core C gcc compiler"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-core-pass-2"
+
+ do_gcc_core_backend "${core_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+#------------------------------------------------------------------------------
+# Build core gcc
+# This function is used to build the core C compiler.
+# Usage: do_gcc_core_backend param=value [...]
+# Parameter : Definition : Type : Default
+# mode : build a 'static', 'shared' or 'baremetal' : string : (none)
+# host : the machine the core will run on : tuple : (none)
+# prefix : dir prefix to install into : dir : (none)
+# complibs : dir where complibs are isntalled : dir : (none)
+# lang_list : the list of languages to build : string : (empty)
+# build_libgcc : build libgcc or not : bool : no
+# build_libstdcxx : build libstdc++ or not : bool : no
+# build_staticlinked : build statically linked or not : bool : no
+# build_manuals : whether to build manuals or not : bool : no
+# cflags : cflags to use : string : (empty)
+# ldflags : ldflags to use : string : (empty)
+# Usage: do_gcc_core_backend mode=[static|shared|baremetal] build_libgcc=[yes|no] build_staticlinked=[yes|no]
+do_gcc_core_backend() {
+ local mode
+ local build_libgcc=no
+ local build_libstdcxx=no
+ local build_staticlinked=no
+ local build_manuals=no
+ local host
+ local prefix
+ local complibs
+ local lang_list
+ local cflags
+ local ldflags
+ local tmp
+ local -a host_libstdcxx_flags
+ local -a extra_config
+ local -a core_LDFLAGS
+ local -a core_targets
+ local arg
+ local exeext
+
+ for arg in "$@"; do
+ eval "${arg// /\\ }"
+ done
+
+ CT_DoLog EXTRA "Configuring core C gcc compiler"
+
+ case "${mode}" in
+ static)
+ extra_config+=("--with-newlib")
+ extra_config+=("--enable-threads=no")
+ extra_config+=("--disable-shared")
+ copy_headers=y # For baremetal, as there's no headers to copy,
+ # we copy an empty directory. So, who cares?
+ ;;
+ shared)
+ extra_config+=("--enable-shared")
+ copy_headers=y
+ ;;
+ baremetal)
+ extra_config+=("--with-newlib")
+ extra_config+=("--enable-threads=no")
+ extra_config+=("--disable-shared")
+ copy_headers=n
+ ;;
+ *)
+ CT_Abort "Internal Error: 'mode' must be one of: 'static', 'shared' or 'baremetal', not '${mode:-(empty)}'"
+ ;;
+ esac
+
+ if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
+ # Bare metal delivers the core compiler as final compiler, so add version info and bugurl
+ extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
+ [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
+ fi
+
+ if [ "${copy_headers}" = "y" ]; then
+ CT_DoLog DEBUG "Copying headers to install area of bootstrap gcc, so it can build libgcc2"
+ CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include"
+ fi
+
+ for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
+ eval tmp="\${CT_ARCH_WITH_${tmp}}"
+ if [ -n "${tmp}" ]; then
+ extra_config+=("${tmp}")
+ fi
+ done
+ if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
+ extra_config+=("--enable-__cxa_atexit")
+ else
+ extra_config+=("--disable-__cxa_atexit")
+ fi
+
+ core_LDFLAGS+=("${ldflags}")
+
+ # *** WARNING ! ***
+ # Keep this full if-else-if-elif-fi-fi block in sync
+ # with the same block in do_gcc, below.
+ if [ "${build_staticlinked}" = "yes" ]; then
+ core_LDFLAGS+=("-static")
+ host_libstdcxx_flags+=("-static-libgcc")
+ host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
+ host_libstdcxx_flags+=("-lm")
+ # Companion libraries are build static (eg !shared), so
+ # the libstdc++ is not pulled automatically, although it
+ # is needed. Shoe-horn it in our LDFLAGS
+ # Ditto libm on some Fedora boxen
+ core_LDFLAGS+=("-lstdc++")
+ core_LDFLAGS+=("-lm")
+ else
+ if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
+ # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
+ # build script
+ # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
+ # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
+ host_libstdcxx_flags+=("-static-libgcc")
+ host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
+ host_libstdcxx_flags+=("-lm")
+ elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
+ # When companion libraries are build static (eg !shared),
+ # the libstdc++ is not pulled automatically, although it
+ # is needed. Shoe-horn it in our LDFLAGS
+ # Ditto libm on some Fedora boxen
+ core_LDFLAGS+=("-lstdc++")
+ core_LDFLAGS+=("-lm")
+ fi
+ fi
+
+ if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
+ extra_config+=("--with-gmp=${complibs}")
+ extra_config+=("--with-mpfr=${complibs}")
+ fi
+ if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
+ extra_config+=("--with-mpc=${complibs}")
+ fi
+ if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
+ if [ "${CT_PPL}" = "y" ]; then
+ extra_config+=("--with-ppl=${complibs}")
+ # With PPL 0.11+, also pull libpwl if needed
+ if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
+ host_libstdcxx_flags+=("-L${complibs}/lib")
+ host_libstdcxx_flags+=("-lpwl")
+ fi
+ fi
+ if [ "${CT_ISL}" = "y" ]; then
+ extra_config+=("--with-isl=${complibs}")
+ fi
+ extra_config+=("--with-cloog=${complibs}")
+ elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
+ extra_config+=("--with-ppl=no")
+ extra_config+=("--with-isl=no")
+ extra_config+=("--with-cloog=no")
+ fi
+ if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
+ extra_config+=("--with-libelf=${complibs}")
+ extra_config+=("--enable-lto")
+ elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
+ extra_config+=("--with-libelf=no")
+ extra_config+=("--disable-lto")
+ fi
+
+ if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
+ extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
+ fi
+
+ if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
+ extra_config+=("--enable-target-optspace")
+ fi
+
+ case "${CT_CC_GCC_LDBL_128}" in
+ y) extra_config+=("--with-long-double-128");;
+ m) ;;
+ "") extra_config+=("--without-long-double-128");;
+ esac
+
+ if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
+ extra_config+=( --enable-linker-build-id )
+ fi
+
+ case "${CT_CC_GCC_LNK_HASH_STYLE}" in
+ "") ;;
+ *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
+ esac
+
+ case "${CT_ARCH}" in
+ mips)
+ case "${CT_CC_GCC_mips_llsc}" in
+ y) extra_config+=( --with-llsc );;
+ m) ;;
+ *) extra_config+=( --without-llsc );;
+ esac
+ case "${CT_CC_GCC_mips_synci}" in
+ y) extra_config+=( --with-synci );;
+ m) ;;
+ *) extra_config+=( --without-synci );;
+ esac
+ if [ "${CT_CC_GCC_mips_plt}" ]; then
+ extra_config+=( --with-mips-plt )
+ fi
+ ;; # ARCH is mips
+ esac
+
+ extra_config+=(--disable-libgomp)
+ extra_config+=(--disable-libmudflap)
+
+ [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
+
+ [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ] && extra_config+=("--disable-libstdcxx-pch")
+
+ if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
+ extra_config+=("--with-system-zlib")
+ fi
+
+ if [ "${CT_MULTILIB}" = "y" ]; then
+ extra_config+=("--enable-multilib")
+ else
+ extra_config+=("--disable-multilib")
+ fi
+
+ CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
+
+ # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
+ CT_DoExecLog CFG \
+ CC_FOR_BUILD="${CT_BUILD}-gcc" \
+ CFLAGS_FOR_BUILD="${CT_EXTRA_CFLAGS_FOR_BUILD-${cflags}}" \
+ CFLAGS="${cflags}" \
+ CXXFLAGS="${cflags}" \
+ LDFLAGS="${core_LDFLAGS[*]}" \
+ "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/configure" \
+ --build=${CT_BUILD} \
+ --host=${host} \
+ --target=${CT_TARGET} \
+ --prefix="${prefix}" \
+ --with-local-prefix="${CT_SYSROOT_DIR}" \
+ --disable-libmudflap \
+ ${CC_CORE_SYSROOT_ARG} \
+ "${extra_config[@]}" \
+ --enable-languages="${lang_list}" \
+ "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}"
+
+ if [ "${build_libgcc}" = "yes" ]; then
+ # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
+ # gcc/config/t-libunwind so -lc is removed from the link for
+ # libgcc_s.so, as we do not have a target -lc yet.
+ # This is not as ugly as it appears to be ;-) All symbols get resolved
+ # during the glibc build, and we provide a proper libgcc_s.so for the
+ # cross toolchain during the final gcc build.
+ #
+ # As we cannot modify the source tree, nor override SHLIB_LC itself
+ # during configure or make, we have to edit the resultant
+ # gcc/libgcc.mk itself to remove -lc from the link.
+ # This causes us to have to jump through some hoops...
+ #
+ # To produce libgcc.mk to edit we firstly require libiberty.a,
+ # so we configure then build it.
+ # Next we have to configure gcc, create libgcc.mk then edit it...
+ # So much easier if we just edit the source tree, but hey...
+ if [ ! -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
+ CT_DoExecLog CFG make ${JOBSFLAGS} configure-libiberty
+ CT_DoExecLog ALL make ${JOBSFLAGS} -C libiberty libiberty.a
+ CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp
+ CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp
+ else
+ CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp configure-build-libiberty
+ CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp all-build-libiberty
+ fi
+ # HACK: gcc-4.2 uses libdecnumber to build libgcc.mk, so build it here.
+ if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/libdecnumber" ]; then
+ CT_DoExecLog CFG make ${JOBSFLAGS} configure-libdecnumber
+ CT_DoExecLog ALL make ${JOBSFLAGS} -C libdecnumber libdecnumber.a
+ fi
+ # HACK: gcc-4.8 uses libbacktrace to make libgcc.mvars, so make it here.
+ if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/libbacktrace" ]; then
+ CT_DoExecLog CFG make ${JOBSFLAGS} configure-libbacktrace
+ CT_DoExecLog ALL make ${JOBSFLAGS} -C libbacktrace
+ fi
+
+ # Starting with GCC 4.3, libgcc.mk is no longer built,
+ # and libgcc.mvars is used instead.
+
+ if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
+ libgcc_rule="libgcc.mvars"
+ core_targets=( gcc target-libgcc )
+ else
+ libgcc_rule="libgcc.mk"
+ core_targets=( gcc )
+ fi
+
+ # On bare metal and canadian build the host-compiler is used when
+ # actually the build-system compiler is required. Choose the correct
+ # compilers for canadian build and use the defaults on other
+ # configurations.
+ if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then
+ repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \
+ CXX_FOR_BUILD=${CT_BUILD}-g++ \
+ GCC_FOR_TARGET=${CT_TARGET}-gcc"
+ else
+ repair_cc=""
+ fi
+
+ CT_DoExecLog ALL make ${JOBSFLAGS} -C gcc ${libgcc_rule} \
+ ${repair_cc}
+ sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule}
+ else # build_libgcc
+ core_targets=( gcc )
+ fi # ! build libgcc
+ if [ "${build_libstdcxx}" = "yes" \
+ -a "${CT_CC_LANG_CXX}" = "y" \
+ ]; then
+ core_targets+=( target-libstdc++-v3 )
+ fi
+
+ CT_DoLog EXTRA "Building core C gcc compiler"
+ CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"
+
+ CT_DoLog EXTRA "Installing core C gcc compiler"
+ CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}"
+
+ if [ "${build_manuals}" = "yes" ]; then
+ CT_DoLog EXTRA "Building the gcc manuals"
+ CT_DoExecLog ALL make pdf html
+ CT_DoLog EXTRA "Installing the gcc manuals"
+ CT_DoExecLog ALL make install-{pdf,html}-gcc
+ fi
+
+ # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
+ # to call the C compiler with the same, somewhat canonical name.
+ # check whether compiler has an extension
+ file="$( ls -1 "${prefix}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
+ [ -z "${file}" ] || ext=".${file##*.}"
+ CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${prefix}/bin/${CT_TARGET}-cc${ext}"
+
+ if [ "${CT_MULTILIB}" = "y" ]; then
+ if [ "${CT_CANADIAN}" = "y" -a "${mode}" = "baremetal" \
+ -a "${host}" = "${CT_HOST}" ]; then
+ CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
+ else
+ multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
+ |tail -n +2 ) )
+ if [ ${#multilibs[@]} -ne 0 ]; then
+ CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
+ for i in "${multilibs[@]}"; do
+ dir="${i%%;*}"
+ flags="${i#*;}"
+ CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
+ done
+ else
+ CT_DoLog WARN "gcc configured for multilib, but none available"
+ fi
+ fi
+ fi
+}
+
+#------------------------------------------------------------------------------
+# Build complete gcc to run on build
+do_gcc_for_build() {
+ local -a build_final_opts
+ local build_final_backend
+
+ # In case we're canadian or cross-native, it seems that a
+ # real, complete compiler is needed?!? WTF? Sigh...
+ # Otherwise, there is nothing to do.
+ case "${CT_TOOLCHAIN_TYPE}" in
+ native|cross) return 0;;
+ esac
+
+ build_final_opts+=( "host=${CT_BUILD}" )
+ build_final_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ build_final_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ build_final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
+ if [ "${CT_BARE_METAL}" = "y" ]; then
+ # In the tests I've done, bare-metal was not impacted by the
+ # lack of such a compiler, but better safe than sorry...
+ build_final_opts+=( "mode=baremetal" )
+ build_final_opts+=( "build_libgcc=yes" )
+ build_final_opts+=( "build_libstdcxx=yes" )
+ if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
+ build_final_opts+=( "build_staticlinked=yes" )
+ fi
+ build_final_backend=do_gcc_core_backend
+ else
+ build_final_backend=do_gcc_backend
+ fi
+
+ CT_DoStep INFO "Installing final gcc compiler for build"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-final-build-${CT_BUILD}"
+
+ "${build_final_backend}" "${build_final_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+#------------------------------------------------------------------------------
+# Build final gcc to run on host
+do_gcc_for_host() {
+ local -a final_opts
+ local final_backend
+
+ final_opts+=( "host=${CT_HOST}" )
+ final_opts+=( "prefix=${CT_PREFIX_DIR}" )
+ final_opts+=( "complibs=${CT_HOST_COMPLIBS_DIR}" )
+ final_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
+ final_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
+ final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
+ if [ "${CT_BUILD_MANUALS}" = "y" ]; then
+ final_opts+=( "build_manuals=yes" )
+ fi
+ if [ "${CT_BARE_METAL}" = "y" ]; then
+ final_opts+=( "mode=baremetal" )
+ final_opts+=( "build_libgcc=yes" )
+ final_opts+=( "build_libstdcxx=yes" )
+ if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
+ final_opts+=( "build_staticlinked=yes" )
+ fi
+ final_backend=do_gcc_core_backend
+ else
+ final_backend=do_gcc_backend
+ fi
+
+ CT_DoStep INFO "Installing final gcc compiler"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-final"
+
+ "${final_backend}" "${final_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+#------------------------------------------------------------------------------
+# Build the final gcc
+# Usage: do_gcc_backend param=value [...]
+# Parameter : Definition : Type : Default
+# host : the host we run onto : tuple : (none)
+# prefix : the runtime prefix : dir : (none)
+# complibs : the companion libraries prefix : dir : (none)
+# cflags : cflags to use : string : (empty)
+# ldflags : ldflags to use : string : (empty)
+# lang_list : the list of languages to build : string : (empty)
+# build_manuals : whether to build manuals or not : bool : no
+do_gcc_backend() {
+ local host
+ local prefix
+ local complibs
+ local cflags
+ local ldflags
+ local lang_list
+ local build_manuals
+ local -a host_libstdcxx_flags
+ local -a extra_config
+ local -a final_LDFLAGS
+ local tmp
+ local arg
+ local exeext
+
+ for arg in "$@"; do
+ eval "${arg// /\\ }"
+ done
+
+ CT_DoLog EXTRA "Configuring final gcc compiler"
+
+ # Enable selected languages
+ extra_config+=("--enable-languages=${lang_list}")
+
+ for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
+ eval tmp="\${CT_ARCH_WITH_${tmp}}"
+ if [ -n "${tmp}" ]; then
+ extra_config+=("${tmp}")
+ fi
+ done
+
+ [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
+ if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
+ extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
+ [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
+ fi
+ case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
+ y) extra_config+=("--enable-sjlj-exceptions");;
+ m) ;;
+ "") extra_config+=("--disable-sjlj-exceptions");;
+ esac
+ if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
+ extra_config+=("--enable-__cxa_atexit")
+ else
+ extra_config+=("--disable-__cxa_atexit")
+ fi
+ if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then
+ extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}")
+ fi
+ if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
+ extra_config+=(--enable-libmudflap)
+ else
+ extra_config+=(--disable-libmudflap)
+ fi
+ if [ "${CT_CC_GCC_LIBGOMP}" = "y" ]; then
+ extra_config+=(--enable-libgomp)
+ else
+ extra_config+=(--disable-libgomp)
+ fi
+ if [ "${CT_CC_GCC_LIBSSP}" = "y" ]; then
+ extra_config+=(--enable-libssp)
+ else
+ extra_config+=(--disable-libssp)
+ fi
+ if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then
+ if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then
+ extra_config+=(--enable-libquadmath)
+ extra_config+=(--enable-libquadmath-support)
+ else
+ extra_config+=(--disable-libquadmath)
+ extra_config+=(--disable-libquadmath-support)
+ fi
+ fi
+
+ final_LDFLAGS+=("${ldflags}")
+
+ # *** WARNING ! ***
+ # Keep this full if-else-if-elif-fi-fi block in sync
+ # with the same block in do_gcc_core, above.
+ if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
+ final_LDFLAGS+=("-static")
+ host_libstdcxx_flags+=("-static-libgcc")
+ host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
+ host_libstdcxx_flags+=("-lm")
+ # Companion libraries are build static (eg !shared), so
+ # the libstdc++ is not pulled automatically, although it
+ # is needed. Shoe-horn it in our LDFLAGS
+ # Ditto libm on some Fedora boxen
+ final_LDFLAGS+=("-lstdc++")
+ final_LDFLAGS+=("-lm")
+ else
+ if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
+ # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
+ # build script
+ # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
+ # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
+ host_libstdcxx_flags+=("-static-libgcc")
+ host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
+ host_libstdcxx_flags+=("-lm")
+ elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
+ # When companion libraries are build static (eg !shared),
+ # the libstdc++ is not pulled automatically, although it
+ # is needed. Shoe-horn it in our LDFLAGS
+ # Ditto libm on some Fedora boxen
+ final_LDFLAGS+=("-lstdc++")
+ final_LDFLAGS+=("-lm")
+ fi
+ fi
+
+ if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
+ extra_config+=("--with-gmp=${complibs}")
+ extra_config+=("--with-mpfr=${complibs}")
+ fi
+ if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
+ extra_config+=("--with-mpc=${complibs}")
+ fi
+ if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
+ if [ "${CT_PPL}" = "y" ]; then
+ extra_config+=("--with-ppl=${complibs}")
+ # With PPL 0.11+, also pull libpwl if needed
+ if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
+ host_libstdcxx_flags+=("-L${complibs}/lib")
+ host_libstdcxx_flags+=("-lpwl")
+ fi
+ fi
+ if [ "${CT_ISL}" = "y" ]; then
+ extra_config+=("--with-isl=${complibs}")
+ fi
+ extra_config+=("--with-cloog=${complibs}")
+ elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
+ extra_config+=("--with-ppl=no")
+ extra_config+=("--with-isl=no")
+ extra_config+=("--with-cloog=no")
+ fi
+ if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
+ extra_config+=("--with-libelf=${complibs}")
+ elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
+ extra_config+=("--with-libelf=no")
+ fi
+
+ if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
+ extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
+ fi
+
+ if [ "${CT_THREADS}" = "none" ]; then
+ extra_config+=("--disable-threads")
+ if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then
+ CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y"
+ extra_config+=("--disable-libgomp")
+ fi
+ else
+ if [ "${CT_THREADS}" = "win32" ]; then
+ extra_config+=("--enable-threads=win32")
+ extra_config+=("--disable-win32-registry")
+ else
+ extra_config+=("--enable-threads=posix")
+ fi
+ fi
+
+ if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
+ extra_config+=("--enable-target-optspace")
+ fi
+ if [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ]; then
+ extra_config+=("--disable-libstdcxx-pch")
+ fi
+
+ case "${CT_CC_GCC_LDBL_128}" in
+ y) extra_config+=("--with-long-double-128");;
+ m) ;;
+ "") extra_config+=("--without-long-double-128");;
+ esac
+
+ if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
+ extra_config+=( --enable-linker-build-id )
+ fi
+
+ case "${CT_CC_GCC_LNK_HASH_STYLE}" in
+ "") ;;
+ *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
+ esac
+
+ if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
+ extra_config+=( --enable-plugin )
+ fi
+ if [ "${CT_CC_GCC_GOLD}" = "y" ]; then
+ extra_config+=( --enable-gold )
+ fi
+
+ case "${CT_ARCH}" in
+ mips)
+ case "${CT_CC_GCC_mips_llsc}" in
+ y) extra_config+=( --with-llsc );;
+ m) ;;
+ *) extra_config+=( --without-llsc );;
+ esac
+ case "${CT_CC_GCC_mips_synci}" in
+ y) extra_config+=( --with-synci );;
+ m) ;;
+ *) extra_config+=( --without-synci );;
+ esac
+ if [ "${CT_CC_GCC_mips_plt}" ]; then
+ extra_config+=( --with-mips-plt )
+ fi
+ ;; # ARCH is mips
+ esac
+
+ [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
+
+ if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
+ extra_config+=("--with-system-zlib")
+ fi
+
+ if [ "${CT_MULTILIB}" = "y" ]; then
+ extra_config+=("--enable-multilib")
+ else
+ extra_config+=("--disable-multilib")
+ fi
+
+ CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
+
+ CT_DoExecLog CFG \
+ CC_FOR_BUILD="${CT_BUILD}-gcc" \
+ CFLAGS_FOR_BUILD="${CT_EXTRA_CFLAGS_FOR_BUILD-${cflags}}" \
+ CFLAGS="${cflags}" \
+ CXXFLAGS="${cflags}" \
+ LDFLAGS="${final_LDFLAGS[*]}" \
+ CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
+ CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
+ LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \
+ "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/configure" \
+ --build=${CT_BUILD} \
+ --host=${host} \
+ --target=${CT_TARGET} \
+ --prefix="${prefix}" \
+ ${CC_SYSROOT_ARG} \
+ "${extra_config[@]}" \
+ --with-local-prefix="${CT_SYSROOT_DIR}" \
+ --enable-c99 \
+ --enable-long-long \
+ "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}"
+
+ if [ "${CT_CANADIAN}" = "y" ]; then
+ CT_DoLog EXTRA "Building libiberty"
+ CT_DoExecLog ALL make ${JOBSFLAGS} all-build-libiberty
+ fi
+
+ CT_DoLog EXTRA "Building final gcc compiler"
+ CT_DoExecLog ALL make ${JOBSFLAGS} all
+
+ CT_DoLog EXTRA "Installing final gcc compiler"
+ CT_DoExecLog ALL make ${JOBSFLAGS} install
+
+ if [ "${build_manuals}" = "yes" ]; then
+ CT_DoLog EXTRA "Building the gcc manuals"
+ CT_DoExecLog ALL make pdf html
+ CT_DoLog EXTRA "Installing the gcc manuals"
+ CT_DoExecLog ALL make install-{pdf,html}-gcc
+ fi
+
+ # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
+ # to call the C compiler with the same, somewhat canonical name.
+ # check whether compiler has an extension
+ file="$( ls -1 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
+ [ -z "${file}" ] || ext=".${file##*.}"
+ CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}"
+
+ if [ "${CT_MULTILIB}" = "y" ]; then
+ if [ "${CT_CANADIAN}" = "y" ]; then
+ CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
+ else
+ multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
+ |tail -n +2 ) )
+ if [ ${#multilibs[@]} -ne 0 ]; then
+ CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
+ for i in "${multilibs[@]}"; do
+ dir="${i%%;*}"
+ flags="${i#*;}"
+ CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
+ done
+ else
+ CT_DoLog WARN "gcc configured for multilib, but none available"
+ fi
+ fi
+ fi
+}
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh Sat Nov 16 18:14:45 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,869 +0,0 @@
-# This file adds the function to build the gcc C compiler
-# Copyright 2007 Yann E. MORIN
-# Licensed under the GPL v2. See COPYING in the root of this package
-
-# Download gcc
-do_cc_get() {
- local linaro_version
- local linaro_series
- local linaro_base_url="http://launchpad.net/gcc-linaro"
-
- if [ "${CT_CC_CUSTOM}" = "y" ]; then
- CT_GetCustom "gcc" "${CT_CC_VERSION}" "${CT_CC_CUSTOM_LOCATION}"
- else
- # Account for the Linaro versioning
- linaro_version="$( echo "${CT_CC_VERSION}" \
- |sed -r -e 's/^linaro-//;' \
- )"
- linaro_series="$( echo "${linaro_version}" \
- |sed -r -e 's/-.*//;' \
- )"
-
- # Ah! gcc folks are kind of 'different': they store the tarballs in
- # subdirectories of the same name!
- # Arrgghh! Some of those versions does not follow this convention:
- # gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
- # subdirectory!
- CT_GetFile "gcc-${CT_CC_VERSION}" \
- {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}} \
- ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_VERSION} \
- ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_VERSION} \
- "${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
-
- fi # ! custom location
- # Starting with GCC 4.3, ecj is used for Java, and will only be
- # built if the configure script finds ecj.jar at the top of the
- # GCC source tree, which will not be there unless we get it and
- # put it there ourselves
- if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
- CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java \
- ftp://sourceware.org/pub/java
- fi
-}
-
-# Extract gcc
-do_cc_extract() {
- # If using custom directory location, nothing to do
- if [ "${CT_CC_CUSTOM}" = "y" \
- -a -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}" ]; then
- return 0
- fi
-
- CT_Extract "gcc-${CT_CC_VERSION}"
- CT_Patch "gcc" "${CT_CC_VERSION}"
-
- # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
- if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" \
- -a ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar" \
- ]; then
- CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar"
- fi
-}
-
-#------------------------------------------------------------------------------
-# This function builds up the set of languages to enable
-# No argument expected, returns the comma-separated language list on stdout
-cc_gcc_lang_list() {
- local lang_list
-
- lang_list="c"
- [ "${CT_CC_LANG_CXX}" = "y" ] && lang_list+=",c++"
- [ "${CT_CC_LANG_FORTRAN}" = "y" ] && lang_list+=",fortran"
- [ "${CT_CC_LANG_ADA}" = "y" ] && lang_list+=",ada"
- [ "${CT_CC_LANG_JAVA}" = "y" ] && lang_list+=",java"
- [ "${CT_CC_LANG_OBJC}" = "y" ] && lang_list+=",objc"
- [ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_list+=",obj-c++"
- [ "${CT_CC_LANG_GOLANG}" = "y" ] && lang_list+=",go"
- lang_list+="${CT_CC_LANG_OTHERS:+,${CT_CC_LANG_OTHERS}}"
-
- printf "%s" "${lang_list}"
-}
-
-#------------------------------------------------------------------------------
-# Core gcc pass 1
-do_cc_core_pass_1() {
- local -a core_opts
-
- if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
- return 0
- fi
-
- core_opts+=( "mode=static" )
- core_opts+=( "host=${CT_BUILD}" )
- core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
- core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
- core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
- core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
- core_opts+=( "lang_list=c" )
-
- CT_DoStep INFO "Installing pass-1 core C compiler"
- CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-core-pass-1"
-
- do_cc_core_backend "${core_opts[@]}"
-
- CT_Popd
- CT_EndStep
-}
-
-# Core gcc pass 2
-do_cc_core_pass_2() {
- local -a core_opts
-
- if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
- return 0
- fi
-
- # Common options:
- core_opts+=( "host=${CT_BUILD}" )
- core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
- core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
- core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
- core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
- core_opts+=( "lang_list=c" )
-
- # Different conditions are at stake here:
- # - In case the threading model is NPTL, we need a shared-capable core
- # gcc; in all other cases, we need a static-only core gcc.
- # - In case the threading model is NPTL or win32, or gcc is 4.3 or
- # later, we need to build libgcc
- case "${CT_THREADS}" in
- nptl)
- core_opts+=( "mode=shared" )
- core_opts+=( "build_libgcc=yes" )
- ;;
- win32)
- core_opts+=( "mode=static" )
- core_opts+=( "build_libgcc=yes" )
- ;;
- *)
- core_opts+=( "mode=static" )
- if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
- core_opts+=( "build_libgcc=yes" )
- fi
- ;;
- esac
-
- CT_DoStep INFO "Installing pass-2 core C compiler"
- CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-core-pass-2"
-
- do_cc_core_backend "${core_opts[@]}"
-
- CT_Popd
- CT_EndStep
-}
-
-#------------------------------------------------------------------------------
-# Build core gcc
-# This function is used to build the core C compiler.
-# Usage: do_cc_core_backend param=value [...]
-# Parameter : Definition : Type : Default
-# mode : build a 'static', 'shared' or 'baremetal' : string : (none)
-# host : the machine the core will run on : tuple : (none)
-# prefix : dir prefix to install into : dir : (none)
-# complibs : dir where complibs are isntalled : dir : (none)
-# lang_list : the list of languages to build : string : (empty)
-# build_libgcc : build libgcc or not : bool : no
-# build_libstdcxx : build libstdc++ or not : bool : no
-# build_staticlinked : build statically linked or not : bool : no
-# build_manuals : whether to build manuals or not : bool : no
-# cflags : cflags to use : string : (empty)
-# ldflags : ldflags to use : string : (empty)
-# Usage: do_cc_core_backend mode=[static|shared|baremetal] build_libgcc=[yes|no] build_staticlinked=[yes|no]
-do_cc_core_backend() {
- local mode
- local build_libgcc=no
- local build_libstdcxx=no
- local build_staticlinked=no
- local build_manuals=no
- local host
- local prefix
- local complibs
- local lang_list
- local cflags
- local ldflags
- local tmp
- local -a host_libstdcxx_flags
- local -a extra_config
- local -a core_LDFLAGS
- local -a core_targets
- local arg
-
- for arg in "$@"; do
- eval "${arg// /\\ }"
- done
-
- CT_DoLog EXTRA "Configuring gcc"
-
- case "${mode}" in
- static)
- extra_config+=("--with-newlib")
- extra_config+=("--enable-threads=no")
- extra_config+=("--disable-shared")
- copy_headers=y # For baremetal, as there's no headers to copy,
- # we copy an empty directory. So, who cares?
- ;;
- shared)
- extra_config+=("--enable-shared")
- copy_headers=y
- ;;
- baremetal)
- extra_config+=("--with-newlib")
- extra_config+=("--enable-threads=no")
- extra_config+=("--disable-shared")
- copy_headers=n
- ;;
- *)
- CT_Abort "Internal Error: 'mode' must be one of: 'static', 'shared' or 'baremetal', not '${mode:-(empty)}'"
- ;;
- esac
-
- if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
- # Bare metal delivers the core compiler as final compiler, so add version info and bugurl
- extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
- [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
- fi
-
- if [ "${copy_headers}" = "y" ]; then
- CT_DoLog DEBUG "Copying headers to install area of bootstrap gcc, so it can build libgcc2"
- CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include"
- fi
-
- for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
- eval tmp="\${CT_ARCH_WITH_${tmp}}"
- if [ -n "${tmp}" ]; then
- extra_config+=("${tmp}")
- fi
- done
- if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
- extra_config+=("--enable-__cxa_atexit")
- else
- extra_config+=("--disable-__cxa_atexit")
- fi
-
- core_LDFLAGS+=("${ldflags}")
-
- # *** WARNING ! ***
- # Keep this full if-else-if-elif-fi-fi block in sync
- # with the same block in do_cc, below.
- if [ "${build_staticlinked}" = "yes" ]; then
- core_LDFLAGS+=("-static")
- host_libstdcxx_flags+=("-static-libgcc")
- host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
- host_libstdcxx_flags+=("-lm")
- # Companion libraries are build static (eg !shared), so
- # the libstdc++ is not pulled automatically, although it
- # is needed. Shoe-horn it in our LDFLAGS
- # Ditto libm on some Fedora boxen
- core_LDFLAGS+=("-lstdc++")
- core_LDFLAGS+=("-lm")
- else
- if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
- # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
- # build script
- # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
- # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
- host_libstdcxx_flags+=("-static-libgcc")
- host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
- host_libstdcxx_flags+=("-lm")
- elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
- # When companion libraries are build static (eg !shared),
- # the libstdc++ is not pulled automatically, although it
- # is needed. Shoe-horn it in our LDFLAGS
- # Ditto libm on some Fedora boxen
- core_LDFLAGS+=("-lstdc++")
- core_LDFLAGS+=("-lm")
- fi
- fi
-
- if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
- extra_config+=("--with-gmp=${complibs}")
- extra_config+=("--with-mpfr=${complibs}")
- fi
- if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
- extra_config+=("--with-mpc=${complibs}")
- fi
- if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
- if [ "${CT_PPL}" = "y" ]; then
- extra_config+=("--with-ppl=${complibs}")
- # With PPL 0.11+, also pull libpwl if needed
- if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
- host_libstdcxx_flags+=("-L${complibs}/lib")
- host_libstdcxx_flags+=("-lpwl")
- fi
- fi
- if [ "${CT_ISL}" = "y" ]; then
- extra_config+=("--with-isl=${complibs}")
- fi
- extra_config+=("--with-cloog=${complibs}")
- elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
- extra_config+=("--with-ppl=no")
- extra_config+=("--with-isl=no")
- extra_config+=("--with-cloog=no")
- fi
- if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
- extra_config+=("--with-libelf=${complibs}")
- extra_config+=("--enable-lto")
- elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
- extra_config+=("--with-libelf=no")
- extra_config+=("--disable-lto")
- fi
-
- if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
- extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
- fi
-
- if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
- extra_config+=("--enable-target-optspace")
- fi
-
- case "${CT_CC_GCC_LDBL_128}" in
- y) extra_config+=("--with-long-double-128");;
- m) ;;
- "") extra_config+=("--without-long-double-128");;
- esac
-
- if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
- extra_config+=( --enable-linker-build-id )
- fi
-
- case "${CT_CC_GCC_LNK_HASH_STYLE}" in
- "") ;;
- *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
- esac
-
- case "${CT_ARCH}" in
- mips)
- case "${CT_CC_GCC_mips_llsc}" in
- y) extra_config+=( --with-llsc );;
- m) ;;
- *) extra_config+=( --without-llsc );;
- esac
- case "${CT_CC_GCC_mips_synci}" in
- y) extra_config+=( --with-synci );;
- m) ;;
- *) extra_config+=( --without-synci );;
- esac
- if [ "${CT_CC_GCC_mips_plt}" ]; then
- extra_config+=( --with-mips-plt )
- fi
- ;; # ARCH is mips
- esac
-
- extra_config+=(--disable-libgomp)
- extra_config+=(--disable-libmudflap)
-
- [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
-
- [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ] && extra_config+=("--disable-libstdcxx-pch")
-
- if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
- extra_config+=("--with-system-zlib")
- fi
-
- if [ "${CT_MULTILIB}" = "y" ]; then
- extra_config+=("--enable-multilib")
- else
- extra_config+=("--disable-multilib")
- fi
-
- CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
-
- # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
- CT_DoExecLog CFG \
- CC_FOR_BUILD="${CT_BUILD}-gcc" \
- CFLAGS="${cflags}" \
- LDFLAGS="${core_LDFLAGS[*]}" \
- "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \
- --build=${CT_BUILD} \
- --host=${host} \
- --target=${CT_TARGET} \
- --prefix="${prefix}" \
- --with-local-prefix="${CT_SYSROOT_DIR}" \
- --disable-libmudflap \
- ${CC_CORE_SYSROOT_ARG} \
- "${extra_config[@]}" \
- --enable-languages="${lang_list}" \
- "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}"
-
- if [ "${build_libgcc}" = "yes" ]; then
- # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
- # gcc/config/t-libunwind so -lc is removed from the link for
- # libgcc_s.so, as we do not have a target -lc yet.
- # This is not as ugly as it appears to be ;-) All symbols get resolved
- # during the glibc build, and we provide a proper libgcc_s.so for the
- # cross toolchain during the final gcc build.
- #
- # As we cannot modify the source tree, nor override SHLIB_LC itself
- # during configure or make, we have to edit the resultant
- # gcc/libgcc.mk itself to remove -lc from the link.
- # This causes us to have to jump through some hoops...
- #
- # To produce libgcc.mk to edit we firstly require libiberty.a,
- # so we configure then build it.
- # Next we have to configure gcc, create libgcc.mk then edit it...
- # So much easier if we just edit the source tree, but hey...
- if [ ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
- CT_DoExecLog CFG make ${JOBSFLAGS} configure-libiberty
- CT_DoExecLog ALL make ${JOBSFLAGS} -C libiberty libiberty.a
- CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp
- CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp
- else
- CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp configure-build-libiberty
- CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp all-build-libiberty
- fi
- # HACK: gcc-4.2 uses libdecnumber to build libgcc.mk, so build it here.
- if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/libdecnumber" ]; then
- CT_DoExecLog CFG make ${JOBSFLAGS} configure-libdecnumber
- CT_DoExecLog ALL make ${JOBSFLAGS} -C libdecnumber libdecnumber.a
- fi
- # HACK: gcc-4.8 uses libbacktrace to make libgcc.mvars, so make it here.
- if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/libbacktrace" ]; then
- CT_DoExecLog CFG make ${JOBSFLAGS} configure-libbacktrace
- CT_DoExecLog ALL make ${JOBSFLAGS} -C libbacktrace
- fi
-
- # Starting with GCC 4.3, libgcc.mk is no longer built,
- # and libgcc.mvars is used instead.
-
- if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
- libgcc_rule="libgcc.mvars"
- core_targets=( gcc target-libgcc )
- else
- libgcc_rule="libgcc.mk"
- core_targets=( gcc )
- fi
-
- # On bare metal and canadian build the host-compiler is used when
- # actually the build-system compiler is required. Choose the correct
- # compilers for canadian build and use the defaults on other
- # configurations.
- if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then
- repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \
- CXX_FOR_BUILD=${CT_BUILD}-g++ \
- GCC_FOR_TARGET=${CT_TARGET}-gcc"
- else
- repair_cc=""
- fi
-
- CT_DoExecLog ALL make ${JOBSFLAGS} -C gcc ${libgcc_rule} \
- ${repair_cc}
- sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule}
- else # build_libgcc
- core_targets=( gcc )
- fi # ! build libgcc
- if [ "${build_libstdcxx}" = "yes" \
- -a "${CT_CC_LANG_CXX}" = "y" \
- ]; then
- core_targets+=( target-libstdc++-v3 )
- fi
-
- CT_DoLog EXTRA "Building gcc"
- CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"
-
- CT_DoLog EXTRA "Installing gcc"
- CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}"
-
- if [ "${build_manuals}" = "yes" ]; then
- CT_DoLog EXTRA "Building the GCC manuals"
- CT_DoExecLog ALL make pdf html
- CT_DoLog EXTRA "Installing the GCC manuals"
- CT_DoExecLog ALL make install-{pdf,html}-gcc
- fi
-
- # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
- # to call the C compiler with the same, somewhat canonical name.
- # check whether compiler has an extension
- file="$( ls -1 "${prefix}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
- [ -z "${file}" ] || ext=".${file##*.}"
- CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${prefix}/bin/${CT_TARGET}-cc${ext}"
-
- if [ "${CT_MULTILIB}" = "y" ]; then
- if [ "${CT_CANADIAN}" = "y" -a "${mode}" = "baremetal" \
- -a "${host}" = "${CT_HOST}" ]; then
- CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
- else
- multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
- |tail -n +2 ) )
- if [ ${#multilibs[@]} -ne 0 ]; then
- CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
- for i in "${multilibs[@]}"; do
- dir="${i%%;*}"
- flags="${i#*;}"
- CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
- done
- else
- CT_DoLog WARN "gcc configured for multilib, but none available"
- fi
- fi
- fi
-}
-
-#------------------------------------------------------------------------------
-# Build complete gcc to run on build
-do_cc_for_build() {
- local -a build_final_opts
- local build_final_backend
-
- # In case we're canadian or cross-native, it seems that a
- # real, complete compiler is needed?!? WTF? Sigh...
- # Otherwise, there is nothing to do.
- case "${CT_TOOLCHAIN_TYPE}" in
- native|cross) return 0;;
- esac
-
- build_final_opts+=( "host=${CT_BUILD}" )
- build_final_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
- build_final_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
- build_final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
- if [ "${CT_BARE_METAL}" = "y" ]; then
- # In the tests I've done, bare-metal was not impacted by the
- # lack of such a compiler, but better safe than sorry...
- build_final_opts+=( "mode=baremetal" )
- build_final_opts+=( "build_libgcc=yes" )
- build_final_opts+=( "build_libstdcxx=yes" )
- if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
- build_final_opts+=( "build_staticlinked=yes" )
- fi
- build_final_backend=do_cc_core_backend
- else
- build_final_backend=do_cc_backend
- fi
-
- CT_DoStep INFO "Installing final compiler for build"
- CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-final-build-${CT_BUILD}"
-
- "${build_final_backend}" "${build_final_opts[@]}"
-
- CT_Popd
- CT_EndStep
-}
-
-#------------------------------------------------------------------------------
-# Build final gcc to run on host
-do_cc_for_host() {
- local -a final_opts
- local final_backend
-
- final_opts+=( "host=${CT_HOST}" )
- final_opts+=( "prefix=${CT_PREFIX_DIR}" )
- final_opts+=( "complibs=${CT_HOST_COMPLIBS_DIR}" )
- final_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
- final_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
- final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
- if [ "${CT_BUILD_MANUALS}" = "y" ]; then
- final_opts+=( "build_manuals=yes" )
- fi
- if [ "${CT_BARE_METAL}" = "y" ]; then
- final_opts+=( "mode=baremetal" )
- final_opts+=( "build_libgcc=yes" )
- final_opts+=( "build_libstdcxx=yes" )
- if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
- final_opts+=( "build_staticlinked=yes" )
- fi
- final_backend=do_cc_core_backend
- else
- final_backend=do_cc_backend
- fi
-
- CT_DoStep INFO "Installing final compiler"
- CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-final"
-
- "${final_backend}" "${final_opts[@]}"
-
- CT_Popd
- CT_EndStep
-}
-
-#------------------------------------------------------------------------------
-# Build the final gcc
-# Usage: do_cc_backend param=value [...]
-# Parameter : Definition : Type : Default
-# host : the host we run onto : tuple : (none)
-# prefix : the runtime prefix : dir : (none)
-# complibs : the companion libraries prefix : dir : (none)
-# cflags : cflags to use : string : (empty)
-# ldflags : ldflags to use : string : (empty)
-# lang_list : the list of languages to build : string : (empty)
-# build_manuals : whether to build manuals or not : bool : no
-do_cc_backend() {
- local host
- local prefix
- local complibs
- local cflags
- local ldflags
- local lang_list
- local build_manuals
- local -a host_libstdcxx_flags
- local -a extra_config
- local -a final_LDFLAGS
- local tmp
- local arg
-
- for arg in "$@"; do
- eval "${arg// /\\ }"
- done
-
- CT_DoLog EXTRA "Configuring gcc"
-
- # Enable selected languages
- extra_config+=("--enable-languages=${lang_list}")
-
- for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
- eval tmp="\${CT_ARCH_WITH_${tmp}}"
- if [ -n "${tmp}" ]; then
- extra_config+=("${tmp}")
- fi
- done
-
- [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
- if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
- extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
- [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
- fi
- case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
- y) extra_config+=("--enable-sjlj-exceptions");;
- m) ;;
- "") extra_config+=("--disable-sjlj-exceptions");;
- esac
- if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
- extra_config+=("--enable-__cxa_atexit")
- else
- extra_config+=("--disable-__cxa_atexit")
- fi
- if [ -n "${CT_CC_ENABLE_CXX_FLAGS}" ]; then
- extra_config+=("--enable-cxx-flags=${CT_CC_ENABLE_CXX_FLAGS}")
- fi
- if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
- extra_config+=(--enable-libmudflap)
- else
- extra_config+=(--disable-libmudflap)
- fi
- if [ "${CT_CC_GCC_LIBGOMP}" = "y" ]; then
- extra_config+=(--enable-libgomp)
- else
- extra_config+=(--disable-libgomp)
- fi
- if [ "${CT_CC_GCC_LIBSSP}" = "y" ]; then
- extra_config+=(--enable-libssp)
- else
- extra_config+=(--disable-libssp)
- fi
- if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then
- if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then
- extra_config+=(--enable-libquadmath)
- extra_config+=(--enable-libquadmath-support)
- else
- extra_config+=(--disable-libquadmath)
- extra_config+=(--disable-libquadmath-support)
- fi
- fi
-
- final_LDFLAGS+=("${ldflags}")
-
- # *** WARNING ! ***
- # Keep this full if-else-if-elif-fi-fi block in sync
- # with the same block in do_cc_core, above.
- if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
- final_LDFLAGS+=("-static")
- host_libstdcxx_flags+=("-static-libgcc")
- host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
- host_libstdcxx_flags+=("-lm")
- # Companion libraries are build static (eg !shared), so
- # the libstdc++ is not pulled automatically, although it
- # is needed. Shoe-horn it in our LDFLAGS
- # Ditto libm on some Fedora boxen
- final_LDFLAGS+=("-lstdc++")
- final_LDFLAGS+=("-lm")
- else
- if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
- # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
- # build script
- # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
- # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
- host_libstdcxx_flags+=("-static-libgcc")
- host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
- host_libstdcxx_flags+=("-lm")
- elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
- # When companion libraries are build static (eg !shared),
- # the libstdc++ is not pulled automatically, although it
- # is needed. Shoe-horn it in our LDFLAGS
- # Ditto libm on some Fedora boxen
- final_LDFLAGS+=("-lstdc++")
- final_LDFLAGS+=("-lm")
- fi
- fi
-
- if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
- extra_config+=("--with-gmp=${complibs}")
- extra_config+=("--with-mpfr=${complibs}")
- fi
- if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
- extra_config+=("--with-mpc=${complibs}")
- fi
- if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
- if [ "${CT_PPL}" = "y" ]; then
- extra_config+=("--with-ppl=${complibs}")
- # With PPL 0.11+, also pull libpwl if needed
- if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
- host_libstdcxx_flags+=("-L${complibs}/lib")
- host_libstdcxx_flags+=("-lpwl")
- fi
- fi
- if [ "${CT_ISL}" = "y" ]; then
- extra_config+=("--with-isl=${complibs}")
- fi
- extra_config+=("--with-cloog=${complibs}")
- elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
- extra_config+=("--with-ppl=no")
- extra_config+=("--with-isl=no")
- extra_config+=("--with-cloog=no")
- fi
- if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
- extra_config+=("--with-libelf=${complibs}")
- elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
- extra_config+=("--with-libelf=no")
- fi
-
- if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
- extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
- fi
-
- if [ "${CT_THREADS}" = "none" ]; then
- extra_config+=("--disable-threads")
- if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then
- CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y"
- extra_config+=("--disable-libgomp")
- fi
- else
- if [ "${CT_THREADS}" = "win32" ]; then
- extra_config+=("--enable-threads=win32")
- extra_config+=("--disable-win32-registry")
- else
- extra_config+=("--enable-threads=posix")
- fi
- fi
-
- if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
- extra_config+=("--enable-target-optspace")
- fi
- if [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ]; then
- extra_config+=("--disable-libstdcxx-pch")
- fi
-
- case "${CT_CC_GCC_LDBL_128}" in
- y) extra_config+=("--with-long-double-128");;
- m) ;;
- "") extra_config+=("--without-long-double-128");;
- esac
-
- if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
- extra_config+=( --enable-linker-build-id )
- fi
-
- case "${CT_CC_GCC_LNK_HASH_STYLE}" in
- "") ;;
- *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
- esac
-
- if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
- extra_config+=( --enable-plugin )
- fi
- if [ "${CT_CC_GCC_GOLD}" = "y" ]; then
- extra_config+=( --enable-gold )
- fi
-
- case "${CT_ARCH}" in
- mips)
- case "${CT_CC_GCC_mips_llsc}" in
- y) extra_config+=( --with-llsc );;
- m) ;;
- *) extra_config+=( --without-llsc );;
- esac
- case "${CT_CC_GCC_mips_synci}" in
- y) extra_config+=( --with-synci );;
- m) ;;
- *) extra_config+=( --without-synci );;
- esac
- if [ "${CT_CC_GCC_mips_plt}" ]; then
- extra_config+=( --with-mips-plt )
- fi
- ;; # ARCH is mips
- esac
-
- [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
-
- if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
- extra_config+=("--with-system-zlib")
- fi
-
- if [ "${CT_MULTILIB}" = "y" ]; then
- extra_config+=("--enable-multilib")
- else
- extra_config+=("--disable-multilib")
- fi
-
- CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
-
- CT_DoExecLog CFG \
- CC_FOR_BUILD="${CT_BUILD}-gcc" \
- CFLAGS="${cflags}" \
- LDFLAGS="${final_LDFLAGS[*]}" \
- CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
- CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
- LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \
- "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \
- --build=${CT_BUILD} \
- --host=${host} \
- --target=${CT_TARGET} \
- --prefix="${prefix}" \
- ${CC_SYSROOT_ARG} \
- "${extra_config[@]}" \
- --with-local-prefix="${CT_SYSROOT_DIR}" \
- --enable-c99 \
- --enable-long-long \
- "${CT_CC_EXTRA_CONFIG_ARRAY[@]}"
-
- if [ "${CT_CANADIAN}" = "y" ]; then
- CT_DoLog EXTRA "Building libiberty"
- CT_DoExecLog ALL make ${JOBSFLAGS} all-build-libiberty
- fi
-
- CT_DoLog EXTRA "Building gcc"
- CT_DoExecLog ALL make ${JOBSFLAGS} all
-
- CT_DoLog EXTRA "Installing gcc"
- CT_DoExecLog ALL make ${JOBSFLAGS} install
-
- if [ "${build_manuals}" = "yes" ]; then
- CT_DoLog EXTRA "Building the GCC manuals"
- CT_DoExecLog ALL make pdf html
- CT_DoLog EXTRA "Installing the GCC manuals"
- CT_DoExecLog ALL make install-{pdf,html}-gcc
- fi
-
- # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
- # to call the C compiler with the same, somewhat canonical name.
- # check whether compiler has an extension
- file="$( ls -1 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
- [ -z "${file}" ] || ext=".${file##*.}"
- CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}"
-
- if [ "${CT_MULTILIB}" = "y" ]; then
- if [ "${CT_CANADIAN}" = "y" ]; then
- CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
- else
- multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
- |tail -n +2 ) )
- if [ ${#multilibs[@]} -ne 0 ]; then
- CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
- for i in "${multilibs[@]}"; do
- dir="${i%%;*}"
- flags="${i#*;}"
- CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
- done
- else
- CT_DoLog WARN "gcc configured for multilib, but none available"
- fi
- fi
- fi
-}
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/debug/300-gdb.sh
--- a/scripts/build/debug/300-gdb.sh Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/build/debug/300-gdb.sh Mon Dec 02 21:51:09 2013 +0100
@@ -181,11 +181,11 @@
if [ "${CT_GDB_INSTALL_GDBINIT}" = "y" ]; then
CT_DoLog EXTRA "Installing '.gdbinit' template"
# See in scripts/build/internals.sh for why we do this
- if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
- gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" )
+ if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
+ gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" )
else
- gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
- "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/version.c" \
+ gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
+ "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/version.c" \
)
fi
${sed} -r \
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/internals.sh
--- a/scripts/build/internals.sh Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/build/internals.sh Mon Dec 02 21:51:09 2013 +0100
@@ -28,33 +28,35 @@
CT_DoExecLog ALL "${CT_TARGET}-strip" ${strip_args} \
"${CT_TARGET}/debug-root/usr/bin/gdbserver"
fi
- # We can not use the version in CT_CC_VERSION because
- # of the Linaro stuff. So, harvest the version string
- # directly from the gcc sources...
- # All gcc 4.x seem to have the version in gcc/BASE-VER
- # while version prior to 4.x have the version in gcc/version.c
- # Of course, here is not the better place to do that...
- if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
- gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" )
- else
- gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
- "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/version.c" \
- )
+ if [ "${CT_CC_gcc}" = "y" ]; then
+ # We can not use the version in CT_CC_GCC_VERSION because
+ # of the Linaro stuff. So, harvest the version string
+ # directly from the gcc sources...
+ # All gcc 4.x seem to have the version in gcc/BASE-VER
+ # while version prior to 4.x have the version in gcc/version.c
+ # Of course, here is not the better place to do that...
+ if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
+ gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" )
+ else
+ gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
+ "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/version.c" \
+ )
+ fi
+ for _t in "bin/${CT_TARGET}-"* \
+ "${CT_TARGET}/bin/"* \
+ "libexec/gcc/${CT_TARGET}/${gcc_version}/"* \
+ "libexec/gcc/${CT_TARGET}/${gcc_version}/install-tools/"* \
+ ; do
+ _type="$( file "${_t}" |cut -d ' ' -f 2- )"
+ case "${_type}" in
+ *script*executable*)
+ ;;
+ *executable*)
+ CT_DoExecLog ALL ${CT_HOST}-strip ${strip_args} "${_t}"
+ ;;
+ esac
+ done
fi
- for _t in "bin/${CT_TARGET}-"* \
- "${CT_TARGET}/bin/"* \
- "libexec/gcc/${CT_TARGET}/${gcc_version}/"* \
- "libexec/gcc/${CT_TARGET}/${gcc_version}/install-tools/"* \
- ; do
- _type="$( file "${_t}" |cut -d ' ' -f 2- )"
- case "${_type}" in
- *script*executable*)
- ;;
- *executable*)
- CT_DoExecLog ALL ${CT_HOST}-strip ${strip_args} "${_t}"
- ;;
- esac
- done
CT_Popd
fi
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/test_suite/gcc.sh
--- a/scripts/build/test_suite/gcc.sh Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/build/test_suite/gcc.sh Mon Dec 02 21:51:09 2013 +0100
@@ -15,10 +15,10 @@
CT_DoStep INFO "Installing GCC test suite"
CT_DoExecLog ALL mkdir -p "${CT_TEST_SUITE_DIR}/gcc"
- CT_DoExecLog ALL cp -av "${CT_LIB_DIR}/contrib/gcc-test-suite/default.cfg" \
- "${CT_LIB_DIR}/contrib/gcc-test-suite/Makefile" \
- "${CT_LIB_DIR}/contrib/gcc-test-suite/README" \
- "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/testsuite" \
+ CT_DoExecLog ALL cp -av "${CT_LIB_DIR}/contrib/gcc-test-suite/default.cfg" \
+ "${CT_LIB_DIR}/contrib/gcc-test-suite/Makefile" \
+ "${CT_LIB_DIR}/contrib/gcc-test-suite/README" \
+ "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/testsuite" \
"${CT_TEST_SUITE_DIR}/gcc"
CT_DoExecLog ALL sed -i -r -e "s/@@DG_TARGET@@/${CT_TARGET}/g;" \
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/crosstool-NG.sh.in
--- a/scripts/crosstool-NG.sh.in Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/crosstool-NG.sh.in Mon Dec 02 21:51:09 2013 +0100
@@ -140,7 +140,7 @@
. "${CT_LIB_DIR}/scripts/build/companion_libs.sh"
. "${CT_LIB_DIR}/scripts/build/binutils/${CT_BINUTILS}.sh"
. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
-. "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh"
+. "${CT_LIB_DIR}/scripts/build/cc.sh"
. "${CT_LIB_DIR}/scripts/build/debug.sh"
. "${CT_LIB_DIR}/scripts/build/test_suite.sh"
@@ -162,8 +162,8 @@
# Put user-supplied flags at the end, so that they take precedence.
CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}"
-CT_CC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
-CT_CC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_EXTRA_CONFIG_ARRAY[@]}" )
+CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
+CT_CC_GCC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}" )
# Compute the package version string
CT_PKGVERSION="crosstool-NG ${CT_VERSION}${CT_TOOLCHAIN_PKGVERSION:+ - ${CT_TOOLCHAIN_PKGVERSION}}"
@@ -545,8 +545,8 @@
CT_EndStep
fi
- if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
- CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_STATIC_LIBSTDCXX)"
+ if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
+ CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_GCC_STATIC_LIBSTDCXX)"
CT_DoLog DEBUG "You may need to ensure that libstdc++.a is installed on your system"
CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_HOST} ${CT_LDFLAGS_FOR_HOST} "${testc}" -static -lstdc++ -o "${gccout}"
rm -f "${gccout}"
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/gen_in_frags.sh
--- a/scripts/gen_in_frags.sh Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/gen_in_frags.sh Mon Dec 02 21:51:09 2013 +0100
@@ -138,6 +138,9 @@
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
printf ' bool\n'
+ if "${grep}" -E '^## default' ${file} >/dev/null 2>&1; then
+ "${sed}" -r -e '/^## default ?/!d; s/^## default ?/ default /;' ${file} 2>/dev/null
+ fi
printf ' prompt "%s"\n' "${entry}"
"${sed}" -r -e '/^## depends on /!d; s/^## / /;' ${file} 2>/dev/null
"${sed}" -r -e '/^## select /!d; s/^## / /;' ${file} 2>/dev/null
diff -r 7e569a9cb5fd -r 65771b86df01 scripts/showSamples.sh
--- a/scripts/showSamples.sh Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/showSamples.sh Mon Dec 02 21:51:09 2013 +0100
@@ -76,7 +76,7 @@
[ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
[ -z "${complibs}" ] || printf "\n"
printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
- printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
+ printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_GCC_VERSION} (C"
[ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
[ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
[ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
@@ -121,7 +121,7 @@
fi
printf "| ${CT_BINUTILS_VERSION} "
printf "| ''${CT_CC}'' "
- printf "| ${CT_CC_VERSION} "
+ printf "| ${CT_CC_GCC_VERSION} "
printf "| ''${CT_LIBC}'' |"
if [ "${CT_LIBC}" != "none" ]; then
printf " ${CT_LIBC_VERSION} "
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones
2013-12-02 20:54 ` [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones Yann Diorcet
@ 2013-12-09 19:05 ` Ray Donnelly
2013-12-09 22:06 ` Cody P Schafer
1 sibling, 0 replies; 7+ messages in thread
From: Ray Donnelly @ 2013-12-09 19:05 UTC (permalink / raw)
To: Yann Diorcet; +Cc: Yann E. MORIN, crossgcc
Any chance of getting this patch reviewed? It's important as the basis
for the rest of the clang/llvm patches.
Cheers,
Ray.
On Mon, Dec 2, 2013 at 8:52 PM, Yann Diorcet <diorcet.yann@gmail.com> wrote:
> # HG changeset patch
> # User Yann Diorcet <diorcet.yann@gmail.com>
> # Date 1386017469 -3600
> # Mon Dec 02 21:51:09 2013 +0100
> # Node ID 65771b86df01ef768aa36b6db1491a198cbf2811
> # Parent 7e569a9cb5fd3ab591bb307328b947a5b7312cba
> cc/gcc: Split gcc configurations and functions from cc ones
>
> Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
>
> diff -r 7e569a9cb5fd -r 65771b86df01 config/cc.in
> --- a/config/cc.in Sat Nov 16 18:14:45 2013 +0100
> +++ b/config/cc.in Mon Dec 02 21:51:09 2013 +0100
> @@ -4,9 +4,7 @@
>
> config CC
> string
> -
> -config CC_VERSION
> - string
> + default "gcc"
>
> config CC_CORE_PASSES_NEEDED
> bool
> @@ -126,6 +124,4 @@
>
> endif # ! BARE_METAL
>
> -source "config.gen/cc.in.2"
> -
> endmenu
> diff -r 7e569a9cb5fd -r 65771b86df01 config/cc/gcc.in
> --- a/config/cc/gcc.in Sat Nov 16 18:14:45 2013 +0100
> +++ b/config/cc/gcc.in Mon Dec 02 21:51:09 2013 +0100
> @@ -1,5 +1,6 @@
> # Compiler options
> #
> +## default y
> ## select CC_SUPPORT_CXX
> ## select CC_SUPPORT_FORTRAN
> ## select CC_SUPPORT_JAVA
> @@ -36,215 +37,215 @@
> # Don't remove next line
> # CT_INSERT_VERSION_BELOW
>
> -config CC_V_linaro_4_8
> +config CC_GCC_V_linaro_4_8
> bool
> prompt "linaro-4.8-2013.06-1"
> depends on CC_GCC_SHOW_LINARO
> select CC_GCC_4_8
>
> -config CC_V_4_8_2
> +config CC_GCC_V_4_8_2
> bool
> prompt "4.8.2"
> select CC_GCC_4_8
>
> -config CC_V_4_8_1
> +config CC_GCC_V_4_8_1
> bool
> prompt "4.8.1"
> select CC_GCC_4_8
>
> -config CC_V_4_8_0
> +config CC_GCC_V_4_8_0
> bool
> prompt "4.8.0"
> select CC_GCC_4_8
>
> -config CC_V_linaro_4_7
> +config CC_GCC_V_linaro_4_7
> bool
> prompt "linaro-4.7-2013.06-1"
> depends on CC_GCC_SHOW_LINARO
> select CC_GCC_4_7
>
> -config CC_V_4_7_3
> +config CC_GCC_V_4_7_3
> bool
> prompt "4.7.3"
> select CC_GCC_4_7
>
> -config CC_V_4_7_2
> +config CC_GCC_V_4_7_2
> bool
> prompt "4.7.2"
> select CC_GCC_4_7
>
> -config CC_V_4_7_1
> +config CC_GCC_V_4_7_1
> bool
> prompt "4.7.1"
> select CC_GCC_4_7
>
> -config CC_V_4_7_0
> +config CC_GCC_V_4_7_0
> bool
> prompt "4.7.0"
> select CC_GCC_4_7
>
> -config CC_V_linaro_4_6
> +config CC_GCC_V_linaro_4_6
> bool
> prompt "linaro-4.6-2013.05"
> depends on CC_GCC_SHOW_LINARO
> select CC_GCC_4_6
>
> -config CC_V_4_6_4
> +config CC_GCC_V_4_6_4
> bool
> prompt "4.6.4"
> select CC_GCC_4_6
>
> -config CC_V_4_6_3
> +config CC_GCC_V_4_6_3
> bool
> prompt "4.6.3"
> select CC_GCC_4_6
>
> -config CC_V_4_6_2
> +config CC_GCC_V_4_6_2
> bool
> prompt "4.6.2"
> select CC_GCC_4_6
>
> -config CC_V_4_6_1
> +config CC_GCC_V_4_6_1
> bool
> prompt "4.6.1"
> select CC_GCC_4_6
>
> -config CC_V_4_6_0
> +config CC_GCC_V_4_6_0
> bool
> prompt "4.6.0"
> select CC_GCC_4_6
>
> -config CC_V_linaro_4_5
> +config CC_GCC_V_linaro_4_5
> bool
> prompt "linaro-4.5-2012.03"
> depends on CC_GCC_SHOW_LINARO
> select CC_GCC_4_5
>
> -config CC_V_4_5_3
> +config CC_GCC_V_4_5_3
> bool
> prompt "4.5.3"
> select CC_GCC_4_5
>
> -config CC_V_4_5_2
> +config CC_GCC_V_4_5_2
> bool
> prompt "4.5.2"
> select CC_GCC_4_5
>
> -config CC_V_4_5_1
> +config CC_GCC_V_4_5_1
> bool
> prompt "4.5.1"
> select CC_GCC_4_5
>
> -config CC_V_4_5_0
> +config CC_GCC_V_4_5_0
> bool
> prompt "4.5.0"
> select CC_GCC_4_5
>
>
> -config CC_V_linaro_4_4
> +config CC_GCC_V_linaro_4_4
> bool
> prompt "linaro-4.4-2011.02-0"
> depends on CC_GCC_SHOW_LINARO
> select CC_GCC_4_4
>
> -config CC_V_4_4_7
> +config CC_GCC_V_4_4_7
> bool
> prompt "4.4.7"
> select CC_GCC_4_4
>
> -config CC_V_4_4_6
> +config CC_GCC_V_4_4_6
> bool
> prompt "4.4.6"
> select CC_GCC_4_4
>
> -config CC_V_4_4_5
> +config CC_GCC_V_4_4_5
> bool
> prompt "4.4.5"
> select CC_GCC_4_4
>
> -config CC_V_4_4_4
> +config CC_GCC_V_4_4_4
> bool
> prompt "4.4.4"
> select CC_GCC_4_4
>
> -config CC_V_4_4_3
> +config CC_GCC_V_4_4_3
> bool
> prompt "4.4.3"
> select CC_GCC_4_4
>
> -config CC_V_4_4_2
> +config CC_GCC_V_4_4_2
> bool
> prompt "4.4.2"
> select CC_GCC_4_4
>
> -config CC_V_4_4_1
> +config CC_GCC_V_4_4_1
> bool
> prompt "4.4.1"
> select CC_GCC_4_4
>
> -config CC_V_4_4_0
> +config CC_GCC_V_4_4_0
> bool
> prompt "4.4.0"
> select CC_GCC_4_4
>
> -config CC_V_4_3_6
> +config CC_GCC_V_4_3_6
> bool
> prompt "4.3.6"
> select CC_GCC_4_3
>
> -config CC_V_4_3_5
> +config CC_GCC_V_4_3_5
> bool
> prompt "4.3.5"
> select CC_GCC_4_3
>
> -config CC_V_4_3_4
> +config CC_GCC_V_4_3_4
> bool
> prompt "4.3.4"
> select CC_GCC_4_3
>
> -config CC_V_4_3_3
> +config CC_GCC_V_4_3_3
> bool
> prompt "4.3.3"
> select CC_GCC_4_3
>
> -config CC_V_4_3_2
> +config CC_GCC_V_4_3_2
> bool
> prompt "4.3.2"
> select CC_GCC_4_3
>
> -config CC_V_4_3_1
> +config CC_GCC_V_4_3_1
> bool
> prompt "4.3.1"
> select CC_GCC_4_3
>
> -config CC_V_4_2_4
> +config CC_GCC_V_4_2_4
> bool
> prompt "4.2.4"
> select CC_GCC_4_2
>
> # We need that one, it's the only version with avr32 support
> # because we have a patch for it
> -config CC_V_4_2_2
> +config CC_GCC_V_4_2_2
> bool
> prompt "4.2.2"
> select CC_GCC_4_2
>
> -config CC_V_4_1_2
> +config CC_GCC_V_4_1_2
> bool
> prompt "4.1.2 (OBSOLETE)"
> depends on OBSOLETE
>
> -config CC_V_4_0_4
> +config CC_GCC_V_4_0_4
> bool
> prompt "4.0.4 (OBSOLETE)"
> depends on OBSOLETE
>
> -config CC_V_3_4_6
> +config CC_GCC_V_3_4_6
> bool
> prompt "3.4.6 (OBSOLETE)"
> depends on OBSOLETE
>
> -config CC_CUSTOM
> +config CC_GCC_CUSTOM
> bool
> prompt "Custom gcc"
> depends on EXPERIMENTAL
> @@ -252,9 +253,9 @@
>
> endchoice
>
> -if CC_CUSTOM
> +if CC_GCC_CUSTOM
>
> -config CC_CUSTOM_LOCATION
> +config CC_GCC_CUSTOM_LOCATION
> string
> prompt "Full path to custom gcc source"
> default ""
> @@ -262,7 +263,7 @@
> Enter the path to the directory (or tarball) of your source for gcc,
> or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/gcc
>
> -endif #CC_CUSTOM
> +endif #CC_GCC_CUSTOM
>
> config CC_GCC_4_2
> bool
> @@ -434,6 +435,8 @@
> select GMP_NEEDED
> select MPFR_NEEDED
>
> + select CLOOG_NEEDED
> +
> config CC_GCC_USE_MPC
> bool
> select MPC_NEEDED
> @@ -445,52 +448,52 @@
> config CC_GCC_HAS_LIBQUADMATH
> bool
>
> -config CC_VERSION
> +config CC_GCC_VERSION
> string
> # Don't remove next line
> # CT_INSERT_VERSION_STRING_BELOW
> - default "linaro-4.8-2013.06-1" if CC_V_linaro_4_8
> - default "4.8.2" if CC_V_4_8_2
> - default "4.8.1" if CC_V_4_8_1
> - default "4.8.0" if CC_V_4_8_0
> - default "linaro-4.7-2013.06-1" if CC_V_linaro_4_7
> - default "4.7.3" if CC_V_4_7_3
> - default "4.7.2" if CC_V_4_7_2
> - default "4.7.1" if CC_V_4_7_1
> - default "4.7.0" if CC_V_4_7_0
> - default "linaro-4.6-2013.05" if CC_V_linaro_4_6
> - default "4.6.4" if CC_V_4_6_4
> - default "4.6.3" if CC_V_4_6_3
> - default "4.6.2" if CC_V_4_6_2
> - default "4.6.1" if CC_V_4_6_1
> - default "4.6.0" if CC_V_4_6_0
> - default "linaro-4.5-2012.03" if CC_V_linaro_4_5
> - default "4.5.3" if CC_V_4_5_3
> - default "4.5.2" if CC_V_4_5_2
> - default "4.5.1" if CC_V_4_5_1
> - default "4.5.0" if CC_V_4_5_0
> - default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4
> - default "4.4.7" if CC_V_4_4_7
> - default "4.4.6" if CC_V_4_4_6
> - default "4.4.5" if CC_V_4_4_5
> - default "4.4.4" if CC_V_4_4_4
> - default "4.4.3" if CC_V_4_4_3
> - default "4.4.2" if CC_V_4_4_2
> - default "4.4.1" if CC_V_4_4_1
> - default "4.4.0" if CC_V_4_4_0
> - default "4.3.6" if CC_V_4_3_6
> - default "4.3.5" if CC_V_4_3_5
> - default "4.3.4" if CC_V_4_3_4
> - default "4.3.3" if CC_V_4_3_3
> - default "4.3.2" if CC_V_4_3_2
> - default "4.3.1" if CC_V_4_3_1
> - default "4.3.0" if CC_V_4_3_0
> - default "4.2.4" if CC_V_4_2_4
> - default "4.2.2" if CC_V_4_2_2
> - default "4.1.2" if CC_V_4_1_2
> - default "4.0.4" if CC_V_4_0_4
> - default "3.4.6" if CC_V_3_4_6
> - default "custom" if CC_CUSTOM
> + default "linaro-4.8-2013.06-1" if CC_GCC_V_linaro_4_8
> + default "4.8.2" if CC_GCC_V_4_8_2
> + default "4.8.1" if CC_GCC_V_4_8_1
> + default "4.8.0" if CC_GCC_V_4_8_0
> + default "linaro-4.7-2013.06-1" if CC_GCC_V_linaro_4_7
> + default "4.7.3" if CC_GCC_V_4_7_3
> + default "4.7.2" if CC_GCC_V_4_7_2
> + default "4.7.1" if CC_GCC_V_4_7_1
> + default "4.7.0" if CC_GCC_V_4_7_0
> + default "linaro-4.6-2013.05" if CC_GCC_V_linaro_4_6
> + default "4.6.4" if CC_GCC_V_4_6_4
> + default "4.6.3" if CC_GCC_V_4_6_3
> + default "4.6.2" if CC_GCC_V_4_6_2
> + default "4.6.1" if CC_GCC_V_4_6_1
> + default "4.6.0" if CC_GCC_V_4_6_0
> + default "linaro-4.5-2012.03" if CC_GCC_V_linaro_4_5
> + default "4.5.3" if CC_GCC_V_4_5_3
> + default "4.5.2" if CC_GCC_V_4_5_2
> + default "4.5.1" if CC_GCC_V_4_5_1
> + default "4.5.0" if CC_GCC_V_4_5_0
> + default "linaro-4.4-2011.02-0" if CC_GCC_V_linaro_4_4
> + default "4.4.7" if CC_GCC_V_4_4_7
> + default "4.4.6" if CC_GCC_V_4_4_6
> + default "4.4.5" if CC_GCC_V_4_4_5
> + default "4.4.4" if CC_GCC_V_4_4_4
> + default "4.4.3" if CC_GCC_V_4_4_3
> + default "4.4.2" if CC_GCC_V_4_4_2
> + default "4.4.1" if CC_GCC_V_4_4_1
> + default "4.4.0" if CC_GCC_V_4_4_0
> + default "4.3.6" if CC_GCC_V_4_3_6
> + default "4.3.5" if CC_GCC_V_4_3_5
> + default "4.3.4" if CC_GCC_V_4_3_4
> + default "4.3.3" if CC_GCC_V_4_3_3
> + default "4.3.2" if CC_GCC_V_4_3_2
> + default "4.3.1" if CC_GCC_V_4_3_1
> + default "4.3.0" if CC_GCC_V_4_3_0
> + default "4.2.4" if CC_GCC_V_4_2_4
> + default "4.2.2" if CC_GCC_V_4_2_2
> + default "4.1.2" if CC_GCC_V_4_1_2
> + default "4.0.4" if CC_GCC_V_4_0_4
> + default "3.4.6" if CC_GCC_V_3_4_6
> + default "custom" if CC_GCC_CUSTOM
>
> config CC_LANG_JAVA_USE_ECJ
> bool
> @@ -501,3 +504,5 @@
> # Fortran always requires GMP+MPFR, whatever the gcc version
> config CC_LANG_FORTRAN
> select CC_GCC_USE_GMP_MPFR
> +
> +source "config/cc/gcc.in.2"
> diff -r 7e569a9cb5fd -r 65771b86df01 config/cc/gcc.in.2
> --- a/config/cc/gcc.in.2 Sat Nov 16 18:14:45 2013 +0100
> +++ b/config/cc/gcc.in.2 Mon Dec 02 21:51:09 2013 +0100
> @@ -1,6 +1,6 @@
> # gcc configuration options
>
> -config CC_ENABLE_CXX_FLAGS
> +config CC_GCC_ENABLE_CXX_FLAGS
> string
> prompt "Flags to pass to --enable-cxx-flags"
> default ""
> @@ -11,7 +11,7 @@
> Note: just pass in the option _value_, that is only the part that goes
> after the '=' sign.
>
> -config CC_CORE_EXTRA_CONFIG_ARRAY
> +config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
> string
> prompt "Core gcc extra config"
> default ""
> @@ -25,7 +25,7 @@
> if they are properly quoted (or escaped, but prefer quotes). Eg.:
> --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
>
> -config CC_EXTRA_CONFIG_ARRAY
> +config CC_GCC_EXTRA_CONFIG_ARRAY
> string
> prompt "gcc extra config"
> default ""
> @@ -38,9 +38,9 @@
> --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
>
> config STATIC_TOOLCHAIN
> - select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
> + select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
>
> -config CC_STATIC_LIBSTDCXX
> +config CC_GCC_STATIC_LIBSTDCXX
> bool
> prompt "Link libstdc++ statically into the gcc binary"
> default y
> diff -r 7e569a9cb5fd -r 65771b86df01 config/config.mk
> --- a/config/config.mk Sat Nov 16 18:14:45 2013 +0100
> +++ b/config/config.mk Mon Dec 02 21:51:09 2013 +0100
> @@ -83,7 +83,7 @@
>
> config.gen/cc.in: $(CC_CONFIG_FILES) $(CC_CONFIG_FILES_2)
> @$(ECHO) ' IN $(@)'
> - $(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh choice "$@" "C compiler" "CC" "config/cc" "N" $(CCS)
> + $(SILENT)$(CT_LIB_DIR)/scripts/gen_in_frags.sh menu "$@" "C compiler" "CC" "config/cc" $(CCS)
>
> config.gen/binutils.in: $(CC_BINUTILS_FILES) $(CC_BINUTILS_FILES_2)
> @$(ECHO) ' IN $(@)'
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/alphaev56-unknown-linux-gnu/crosstool.config
> --- a/samples/alphaev56-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/alphaev56-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -10,7 +10,7 @@
> CT_BINUTILS_V_2_21_1a=y
> CT_BINUTILS_PLUGINS=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_5=y
> +CT_CC_GCC_V_4_4_5=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/alphaev67-unknown-linux-gnu/crosstool.config
> --- a/samples/alphaev67-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/alphaev67-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_38=y
> CT_BINUTILS_V_2_21_1a=y
> -CT_CC_V_4_3_5=y
> +CT_CC_GCC_V_4_3_5=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config
> --- a/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -11,7 +11,7 @@
> CT_TARGET_VENDOR="bare_newlib_cortex_m3_nommu"
> CT_ARCH_BINFMT_FLAT=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_4_1=y
> +CT_CC_GCC_V_4_4_1=y
> CT_CC_LANG_CXX=y
> CT_LIBC_NEWLIB_V_1_18_0=y
> CT_GMP_V_4_3_2=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-cortex_a8-linux-gnueabi/crosstool.config
> --- a/samples/arm-cortex_a8-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-cortex_a8-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -10,7 +10,7 @@
> CT_KERNEL_linux=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_6=y
> +CT_CC_GCC_V_4_4_6=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config
> --- a/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -18,7 +18,7 @@
> CT_BINUTILS_PLUGINS=y
> CT_BINUTILS_FOR_TARGET=y
> CT_CC_GCC_SHOW_LINARO=y
> -CT_CC_V_linaro_4_7=y
> +CT_CC_GCC_V_linaro_4_7=y
> CT_CC_LANG_CXX=y
> CT_CC_CORE_EXTRA_CONFIG_ARRAY="\"--with-specs=%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}\" --enable-poison-system-directories"
> CT_CC_EXTRA_CONFIG_ARRAY="\"--with-specs=%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}\" --enable-poison-system-directories"
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-davinci-linux-gnueabi/crosstool.config
> --- a/samples/arm-davinci-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-davinci-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -11,7 +11,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-eabi/crosstool.config
> --- a/samples/arm-unknown-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-unknown-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -4,7 +4,7 @@
> CT_ARCH_FLOAT_SW=y
> CT_ARCH_arm=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_4=y
> +CT_CC_GCC_V_4_3_4=y
> CT_CC_LANG_CXX=y
> CT_LIBC_NEWLIB_V_1_17_0=y
> CT_DEBUG_gdb=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-linux-gnueabi/crosstool.config
> --- a/samples/arm-unknown-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-unknown-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_linux=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/arm-unknown-linux-uclibcgnueabi/crosstool.config
> --- a/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -11,7 +11,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_3=y
> +CT_CC_GCC_V_4_4_3=y
> CT_CC_LANG_CXX=y
> CT_LIBC_uClibc=y
> CT_LIBC_UCLIBC_V_0_9_30_2=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-eabi/crosstool.config
> --- a/samples/armeb-unknown-eabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/armeb-unknown-eabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -5,7 +5,7 @@
> CT_ARCH_FLOAT_SW=y
> CT_ARCH_arm=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_LIBC_none=y
> CT_DEBUG_gdb=y
> CT_GDB_V_6_8a=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-linux-gnueabi/crosstool.config
> --- a/samples/armeb-unknown-linux-gnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/armeb-unknown-linux-gnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -11,7 +11,7 @@
> CT_KERNEL_linux=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_3=y
> +CT_CC_GCC_V_4_4_3=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config
> --- a/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -16,7 +16,7 @@
> CT_BINUTILS_LD_WRAPPER=y
> CT_BINUTILS_PLUGINS=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_6_4=y
> +CT_CC_GCC_V_4_6_4=y
> CT_CC_LANG_CXX=y
> CT_CC_GCC_DISABLE_PCH=y
> # CT_CC_GCC_SJLJ_EXCEPTIONS is not set
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/avr32-unknown-none/crosstool.config
> --- a/samples/avr32-unknown-none/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/avr32-unknown-none/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -4,7 +4,7 @@
> CT_LOG_EXTRA=y
> CT_ARCH_avr32=y
> CT_BINUTILS_V_2_18a=y
> -CT_CC_V_4_2_2=y
> +CT_CC_GCC_V_4_2_2=y
> CT_LIBC_NEWLIB_V_1_17_0=y
> CT_LIBC_NEWLIB_IO_LL=y
> CT_LIBC_NEWLIB_IO_FLOAT=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/bfin-unknown-linux-uclibc/crosstool.config
> --- a/samples/bfin-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/bfin-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -6,7 +6,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_ARCH_BINFMT_FDPIC=y
> CT_BINUTILS_V_2_20_1a=y
> -CT_CC_V_4_3_4=y
> +CT_CC_GCC_V_4_3_4=y
> CT_LIBC_UCLIBC_V_0_9_30_2=y
> CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
> CT_GMP_V_4_3_2=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/i586-geode-linux-uclibc/crosstool.config
> --- a/samples/i586-geode-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/i586-geode-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_V_2_6_36=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_5=y
> +CT_CC_GCC_V_4_4_5=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config
> --- a/samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/i586-mingw32msvc,i686-none-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -12,7 +12,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-targets=i686-none-linux-gnu"
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/i686-nptl-linux-gnu/crosstool.config
> --- a/samples/i686-nptl-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/i686-nptl-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -13,7 +13,7 @@
> CT_BINUTILS_LD_WRAPPER=y
> CT_BINUTILS_PLUGINS=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_5_2=y
> +CT_CC_GCC_V_4_5_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/i686-unknown-mingw32/crosstool.config
> --- a/samples/i686-unknown-mingw32/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/i686-unknown-mingw32/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_windows=y
> CT_BINUTILS_V_2_21_1a=y
> CT_BINUTILS_PLUGINS=y
> -CT_CC_V_4_5_2=y
> +CT_CC_GCC_V_4_5_2=y
> CT_CC_LANG_CXX=y
> CT_MINGW_DIRECTX=y
> CT_MINGW_DDK=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/m68k-unknown-elf/crosstool.config
> --- a/samples/m68k-unknown-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/m68k-unknown-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -6,7 +6,7 @@
> CT_ARCH_m68k=y
> CT_ARCH_BINFMT_FLAT=y
> CT_BINUTILS_V_2_20_1a=y
> -CT_CC_V_4_3_4=y
> +CT_CC_GCC_V_4_3_4=y
> CT_LIBC_none=y
> CT_GMP_V_4_3_2=y
> CT_MPFR_V_2_4_2=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-ar2315-linux-gnu/crosstool.config
> --- a/samples/mips-ar2315-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips-ar2315-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -10,7 +10,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_EGLIBC_V_2_9=y
> CT_EGLIBC_REVISION="{2009-07-21}"
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-malta-linux-gnu/crosstool.config
> --- a/samples/mips-malta-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips-malta-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_38=y
> CT_BINUTILS_V_2_21_1a=y
> -CT_CC_V_4_4_6=y
> +CT_CC_GCC_V_4_4_6=y
> # CT_CC_GCC_USE_GRAPHITE is not set
> CT_LIBC_EGLIBC_V_2_13=y
> CT_DEBUG_gdb=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-unknown-elf/crosstool.config
> --- a/samples/mips-unknown-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips-unknown-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -4,7 +4,7 @@
> CT_ARCH_FLOAT_SW=y
> CT_ARCH_mips=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_LIBC_none=y
> CT_DEBUG_gdb=y
> CT_GDB_V_6_8a=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips-unknown-linux-uclibc/crosstool.config
> --- a/samples/mips-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_3_6=y
> CT_BINUTILS_V_2_21_1a=y
> -CT_CC_V_4_6_4=y
> +CT_CC_GCC_V_4_6_4=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_LIBC_uClibc=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips64el-n32-linux-uclibc/crosstool.config
> --- a/samples/mips64el-n32-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips64el-n32-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -10,7 +10,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_uClibc=y
> CT_LIBC_UCLIBC_V_0_9_30_1=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mips64el-n64-linux-uclibc/crosstool.config
> --- a/samples/mips64el-n64-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mips64el-n64-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -11,7 +11,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_uClibc=y
> CT_LIBC_UCLIBC_V_0_9_30_1=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mipsel-sde-elf/crosstool.config
> --- a/samples/mipsel-sde-elf/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mipsel-sde-elf/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -6,7 +6,7 @@
> CT_ARCH_mips=y
> CT_TARGET_VENDOR="sde"
> CT_BINUTILS_V_2_21_1a=y
> -CT_CC_V_4_4_6=y
> +CT_CC_GCC_V_4_4_6=y
> # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
> CT_LIBC_none=y
> CT_DEBUG_gdb=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/mipsel-unknown-linux-gnu/crosstool.config
> --- a/samples/mipsel-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/mipsel-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -9,7 +9,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-405-linux-gnu/crosstool.config
> --- a/samples/powerpc-405-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-405-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -10,7 +10,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-860-linux-gnu/crosstool.config
> --- a/samples/powerpc-860-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-860-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -9,7 +9,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_EXTRA_CONFIG_ARRAY="--with-cpu=860 --enable-cxx-flags=-mcpu=860 --with-float=soft --enable-cxx-flags=-msoft-float"
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-e300c3-linux-gnu/crosstool.config
> --- a/samples/powerpc-e300c3-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-e300c3-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -9,7 +9,7 @@
> CT_KERNEL_V_2_6_36=y
> CT_BINUTILS_V_2_21_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_5_2=y
> +CT_CC_GCC_V_4_5_2=y
> CT_CC_LANG_CXX=y
> CT_CC_EXTRA_CONFIG_ARRAY="--with-long-double-128"
> # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-e500v2-linux-gnuspe/crosstool.config
> --- a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -14,7 +14,7 @@
> CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-spe=yes --enable-e500x2 --with-e500x2"
> CT_BINUTILS_FOR_TARGET=y
> CT_CC_GCC_SHOW_LINARO=y
> -CT_CC_V_4_6_4=y
> +CT_CC_GCC_V_4_6_4=y
> CT_CC_LANG_CXX=y
> CT_CC_EXTRA_CONFIG_ARRAY="--with-long-double-128"
> # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown-linux-gnu/crosstool.config
> --- a/samples/powerpc-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -6,7 +6,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown-linux-uclibc/crosstool.config
> --- a/samples/powerpc-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_2_4=y
> +CT_CC_GCC_V_4_2_4=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_LIBC_uClibc=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config
> --- a/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/powerpc64-unknown-linux-gnu/crosstool.config
> --- a/samples/powerpc64-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/powerpc64-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_5_2=y
> +CT_CC_GCC_V_4_5_2=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/s390-ibm-linux-gnu/crosstool.config
> --- a/samples/s390-ibm-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/s390-ibm-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -6,7 +6,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_20_1a=y
> -CT_CC_V_4_3_4=y
> +CT_CC_GCC_V_4_3_4=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/s390x-ibm-linux-gnu/crosstool.config
> --- a/samples/s390x-ibm-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/s390x-ibm-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -8,7 +8,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_31=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_4_5=y
> +CT_CC_GCC_V_4_4_5=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/sh4-unknown-linux-gnu/crosstool.config
> --- a/samples/sh4-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/sh4-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_linux=y
> CT_KERNEL_V_2_6_27=y
> CT_BINUTILS_V_2_19_1a=y
> -CT_CC_V_4_3_2=y
> +CT_CC_GCC_V_4_3_2=y
> CT_CC_LANG_CXX=y
> CT_LIBC_glibc=y
> CT_LIBC_GLIBC_V_2_9=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-linux-gnu/crosstool.config
> --- a/samples/x86_64-unknown-linux-gnu/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/x86_64-unknown-linux-gnu/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_3=y
> +CT_CC_GCC_V_4_4_3=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-linux-uclibc/crosstool.config
> --- a/samples/x86_64-unknown-linux-uclibc/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/x86_64-unknown-linux-uclibc/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_V_2_6_33=y
> CT_BINUTILS_V_2_20_1a=y
> CT_BINUTILS_FOR_TARGET=y
> -CT_CC_V_4_4_3=y
> +CT_CC_GCC_V_4_4_3=y
> CT_CC_LANG_FORTRAN=y
> CT_CC_LANG_CXX=y
> CT_CC_LANG_JAVA=y
> diff -r 7e569a9cb5fd -r 65771b86df01 samples/x86_64-unknown-mingw32/crosstool.config
> --- a/samples/x86_64-unknown-mingw32/crosstool.config Sat Nov 16 18:14:45 2013 +0100
> +++ b/samples/x86_64-unknown-mingw32/crosstool.config Mon Dec 02 21:51:09 2013 +0100
> @@ -7,7 +7,7 @@
> CT_KERNEL_windows=y
> CT_BINUTILS_V_2_21_1a=y
> CT_BINUTILS_PLUGINS=y
> -CT_CC_V_4_5_2=y
> +CT_CC_GCC_V_4_5_2=y
> CT_CC_LANG_CXX=y
> CT_MINGW_DIRECTX=y
> CT_MINGW_DDK=y
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc.sh
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/scripts/build/cc.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -0,0 +1,59 @@
> +# Wrapper to build the companion tools facilities
> +
> +# List all companion tools facilities, and parse their scripts
> +CT_CC_FACILITY_LIST=
> +for f in "${CT_LIB_DIR}/scripts/build/cc/"*.sh; do
> + _f="$(basename "${f}" .sh)"
> + _f="${_f#???-}"
> + __f="CT_CC_${_f}"
> + if [ "${!__f}" = "y" ]; then
> + CT_DoLog DEBUG "Enabling cc '${_f}'"
> + . "${f}"
> + CT_CC_FACILITY_LIST="${CT_CC_FACILITY_LIST} ${_f}"
> + else
> + CT_DoLog DEBUG "Disabling cc '${_f}'"
> + fi
> +done
> +
> +# Download the cc facilities
> +do_cc_get() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_get
> + done
> +}
> +
> +# Extract and patch the cc facilities
> +do_cc_extract() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_extract
> + done
> +}
> +
> +# Core pass 1 the cc facilities
> +do_cc_core_pass_1() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_core_pass_1
> + done
> +}
> +
> +# Core pass 2 the cc facilities
> +do_cc_core_pass_2() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_core_pass_2
> + done
> +}
> +
> +# Build for build the cc facilities
> +do_cc_for_build() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_for_build
> + done
> +}
> +
> +# Build for host the cc facilities
> +do_cc_for_host() {
> + for f in ${CT_CC_FACILITY_LIST}; do
> + do_${f}_for_host
> + done
> +}
> +
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc/100-gcc.sh
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/scripts/build/cc/100-gcc.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -0,0 +1,874 @@
> +# This file adds the function to build the gcc C compiler
> +# Copyright 2007 Yann E. MORIN
> +# Licensed under the GPL v2. See COPYING in the root of this package
> +
> +# Download gcc
> +do_gcc_get() {
> + local linaro_version
> + local linaro_series
> + local linaro_base_url="http://launchpad.net/gcc-linaro"
> +
> + if [ "${CT_CC_GCC_CUSTOM}" = "y" ]; then
> + CT_GetCustom "gcc" "${CT_CC_GCC_VERSION}" "${CT_CC_GCC_CUSTOM_LOCATION}"
> + else
> + # Account for the Linaro versioning
> + linaro_version="$( echo "${CT_CC_GCC_VERSION}" \
> + |sed -r -e 's/^linaro-//;' \
> + )"
> + linaro_series="$( echo "${linaro_version}" \
> + |sed -r -e 's/-.*//;' \
> + )"
> +
> + # Ah! gcc folks are kind of 'different': they store the tarballs in
> + # subdirectories of the same name!
> + # Arrgghh! Some of those versions does not follow this convention:
> + # gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
> + # subdirectory!
> + CT_GetFile "gcc-${CT_CC_GCC_VERSION}" \
> + {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_GCC_VERSION}} \
> + ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_GCC_VERSION} \
> + ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_GCC_VERSION} \
> + "${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
> + fi # ! custom location
> + # Starting with GCC 4.3, ecj is used for Java, and will only be
> + # built if the configure script finds ecj.jar at the top of the
> + # GCC source tree, which will not be there unless we get it and
> + # put it there ourselves
> + if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
> + CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java \
> + ftp://sourceware.org/pub/java
> + fi
> +}
> +
> +# Extract gcc
> +do_gcc_extract() {
> + # If using custom directory location, nothing to do
> + if [ "${CT_CC_GCC_CUSTOM}" = "y" \
> + -a -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}" ]; then
> + return 0
> + fi
> +
> + CT_Extract "gcc-${CT_CC_GCC_VERSION}"
> + CT_Patch "gcc" "${CT_CC_GCC_VERSION}"
> +
> + # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
> + if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" \
> + -a ! -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/ecj.jar" \
> + ]; then
> + CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/ecj.jar"
> + fi
> +}
> +
> +#------------------------------------------------------------------------------
> +# This function builds up the set of languages to enable
> +# No argument expected, returns the comma-separated language list on stdout
> +cc_gcc_lang_list() {
> + local lang_list
> +
> + lang_list="c"
> + [ "${CT_CC_LANG_CXX}" = "y" ] && lang_list+=",c++"
> + [ "${CT_CC_LANG_FORTRAN}" = "y" ] && lang_list+=",fortran"
> + [ "${CT_CC_LANG_ADA}" = "y" ] && lang_list+=",ada"
> + [ "${CT_CC_LANG_JAVA}" = "y" ] && lang_list+=",java"
> + [ "${CT_CC_LANG_OBJC}" = "y" ] && lang_list+=",objc"
> + [ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_list+=",obj-c++"
> + [ "${CT_CC_LANG_GOLANG}" = "y" ] && lang_list+=",go"
> + lang_list+="${CT_CC_LANG_OTHERS:+,${CT_CC_LANG_OTHERS}}"
> +
> + printf "%s" "${lang_list}"
> +}
> +
> +#------------------------------------------------------------------------------
> +# Core gcc pass 1
> +do_gcc_core_pass_1() {
> + local -a core_opts
> +
> + if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
> + return 0
> + fi
> +
> + core_opts+=( "mode=static" )
> + core_opts+=( "host=${CT_BUILD}" )
> + core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> + core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> + core_opts+=( "lang_list=c" )
> +
> + CT_DoStep INFO "Installing pass-1 core C gcc compiler"
> + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-core-pass-1"
> +
> + do_gcc_core_backend "${core_opts[@]}"
> +
> + CT_Popd
> + CT_EndStep
> +}
> +
> +# Core gcc pass 2
> +do_gcc_core_pass_2() {
> + local -a core_opts
> +
> + if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
> + return 0
> + fi
> +
> + # Common options:
> + core_opts+=( "host=${CT_BUILD}" )
> + core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> + core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> + core_opts+=( "lang_list=c" )
> +
> + # Different conditions are at stake here:
> + # - In case the threading model is NPTL, we need a shared-capable core
> + # gcc; in all other cases, we need a static-only core gcc.
> + # - In case the threading model is NPTL or win32, or gcc is 4.3 or
> + # later, we need to build libgcc
> + case "${CT_THREADS}" in
> + nptl)
> + core_opts+=( "mode=shared" )
> + core_opts+=( "build_libgcc=yes" )
> + ;;
> + win32)
> + core_opts+=( "mode=static" )
> + core_opts+=( "build_libgcc=yes" )
> + ;;
> + *)
> + core_opts+=( "mode=static" )
> + if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
> + core_opts+=( "build_libgcc=yes" )
> + fi
> + ;;
> + esac
> +
> + CT_DoStep INFO "Installing pass-2 core C gcc compiler"
> + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-core-pass-2"
> +
> + do_gcc_core_backend "${core_opts[@]}"
> +
> + CT_Popd
> + CT_EndStep
> +}
> +
> +#------------------------------------------------------------------------------
> +# Build core gcc
> +# This function is used to build the core C compiler.
> +# Usage: do_gcc_core_backend param=value [...]
> +# Parameter : Definition : Type : Default
> +# mode : build a 'static', 'shared' or 'baremetal' : string : (none)
> +# host : the machine the core will run on : tuple : (none)
> +# prefix : dir prefix to install into : dir : (none)
> +# complibs : dir where complibs are isntalled : dir : (none)
> +# lang_list : the list of languages to build : string : (empty)
> +# build_libgcc : build libgcc or not : bool : no
> +# build_libstdcxx : build libstdc++ or not : bool : no
> +# build_staticlinked : build statically linked or not : bool : no
> +# build_manuals : whether to build manuals or not : bool : no
> +# cflags : cflags to use : string : (empty)
> +# ldflags : ldflags to use : string : (empty)
> +# Usage: do_gcc_core_backend mode=[static|shared|baremetal] build_libgcc=[yes|no] build_staticlinked=[yes|no]
> +do_gcc_core_backend() {
> + local mode
> + local build_libgcc=no
> + local build_libstdcxx=no
> + local build_staticlinked=no
> + local build_manuals=no
> + local host
> + local prefix
> + local complibs
> + local lang_list
> + local cflags
> + local ldflags
> + local tmp
> + local -a host_libstdcxx_flags
> + local -a extra_config
> + local -a core_LDFLAGS
> + local -a core_targets
> + local arg
> + local exeext
> +
> + for arg in "$@"; do
> + eval "${arg// /\\ }"
> + done
> +
> + CT_DoLog EXTRA "Configuring core C gcc compiler"
> +
> + case "${mode}" in
> + static)
> + extra_config+=("--with-newlib")
> + extra_config+=("--enable-threads=no")
> + extra_config+=("--disable-shared")
> + copy_headers=y # For baremetal, as there's no headers to copy,
> + # we copy an empty directory. So, who cares?
> + ;;
> + shared)
> + extra_config+=("--enable-shared")
> + copy_headers=y
> + ;;
> + baremetal)
> + extra_config+=("--with-newlib")
> + extra_config+=("--enable-threads=no")
> + extra_config+=("--disable-shared")
> + copy_headers=n
> + ;;
> + *)
> + CT_Abort "Internal Error: 'mode' must be one of: 'static', 'shared' or 'baremetal', not '${mode:-(empty)}'"
> + ;;
> + esac
> +
> + if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
> + # Bare metal delivers the core compiler as final compiler, so add version info and bugurl
> + extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
> + [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
> + fi
> +
> + if [ "${copy_headers}" = "y" ]; then
> + CT_DoLog DEBUG "Copying headers to install area of bootstrap gcc, so it can build libgcc2"
> + CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include"
> + fi
> +
> + for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
> + eval tmp="\${CT_ARCH_WITH_${tmp}}"
> + if [ -n "${tmp}" ]; then
> + extra_config+=("${tmp}")
> + fi
> + done
> + if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
> + extra_config+=("--enable-__cxa_atexit")
> + else
> + extra_config+=("--disable-__cxa_atexit")
> + fi
> +
> + core_LDFLAGS+=("${ldflags}")
> +
> + # *** WARNING ! ***
> + # Keep this full if-else-if-elif-fi-fi block in sync
> + # with the same block in do_gcc, below.
> + if [ "${build_staticlinked}" = "yes" ]; then
> + core_LDFLAGS+=("-static")
> + host_libstdcxx_flags+=("-static-libgcc")
> + host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
> + host_libstdcxx_flags+=("-lm")
> + # Companion libraries are build static (eg !shared), so
> + # the libstdc++ is not pulled automatically, although it
> + # is needed. Shoe-horn it in our LDFLAGS
> + # Ditto libm on some Fedora boxen
> + core_LDFLAGS+=("-lstdc++")
> + core_LDFLAGS+=("-lm")
> + else
> + if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
> + # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
> + # build script
> + # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
> + # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
> + host_libstdcxx_flags+=("-static-libgcc")
> + host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
> + host_libstdcxx_flags+=("-lm")
> + elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
> + # When companion libraries are build static (eg !shared),
> + # the libstdc++ is not pulled automatically, although it
> + # is needed. Shoe-horn it in our LDFLAGS
> + # Ditto libm on some Fedora boxen
> + core_LDFLAGS+=("-lstdc++")
> + core_LDFLAGS+=("-lm")
> + fi
> + fi
> +
> + if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
> + extra_config+=("--with-gmp=${complibs}")
> + extra_config+=("--with-mpfr=${complibs}")
> + fi
> + if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
> + extra_config+=("--with-mpc=${complibs}")
> + fi
> + if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
> + if [ "${CT_PPL}" = "y" ]; then
> + extra_config+=("--with-ppl=${complibs}")
> + # With PPL 0.11+, also pull libpwl if needed
> + if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
> + host_libstdcxx_flags+=("-L${complibs}/lib")
> + host_libstdcxx_flags+=("-lpwl")
> + fi
> + fi
> + if [ "${CT_ISL}" = "y" ]; then
> + extra_config+=("--with-isl=${complibs}")
> + fi
> + extra_config+=("--with-cloog=${complibs}")
> + elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
> + extra_config+=("--with-ppl=no")
> + extra_config+=("--with-isl=no")
> + extra_config+=("--with-cloog=no")
> + fi
> + if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
> + extra_config+=("--with-libelf=${complibs}")
> + extra_config+=("--enable-lto")
> + elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
> + extra_config+=("--with-libelf=no")
> + extra_config+=("--disable-lto")
> + fi
> +
> + if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
> + extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
> + fi
> +
> + if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
> + extra_config+=("--enable-target-optspace")
> + fi
> +
> + case "${CT_CC_GCC_LDBL_128}" in
> + y) extra_config+=("--with-long-double-128");;
> + m) ;;
> + "") extra_config+=("--without-long-double-128");;
> + esac
> +
> + if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
> + extra_config+=( --enable-linker-build-id )
> + fi
> +
> + case "${CT_CC_GCC_LNK_HASH_STYLE}" in
> + "") ;;
> + *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
> + esac
> +
> + case "${CT_ARCH}" in
> + mips)
> + case "${CT_CC_GCC_mips_llsc}" in
> + y) extra_config+=( --with-llsc );;
> + m) ;;
> + *) extra_config+=( --without-llsc );;
> + esac
> + case "${CT_CC_GCC_mips_synci}" in
> + y) extra_config+=( --with-synci );;
> + m) ;;
> + *) extra_config+=( --without-synci );;
> + esac
> + if [ "${CT_CC_GCC_mips_plt}" ]; then
> + extra_config+=( --with-mips-plt )
> + fi
> + ;; # ARCH is mips
> + esac
> +
> + extra_config+=(--disable-libgomp)
> + extra_config+=(--disable-libmudflap)
> +
> + [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
> +
> + [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ] && extra_config+=("--disable-libstdcxx-pch")
> +
> + if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
> + extra_config+=("--with-system-zlib")
> + fi
> +
> + if [ "${CT_MULTILIB}" = "y" ]; then
> + extra_config+=("--enable-multilib")
> + else
> + extra_config+=("--disable-multilib")
> + fi
> +
> + CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
> +
> + # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
> + CT_DoExecLog CFG \
> + CC_FOR_BUILD="${CT_BUILD}-gcc" \
> + CFLAGS_FOR_BUILD="${CT_EXTRA_CFLAGS_FOR_BUILD-${cflags}}" \
> + CFLAGS="${cflags}" \
> + CXXFLAGS="${cflags}" \
> + LDFLAGS="${core_LDFLAGS[*]}" \
> + "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/configure" \
> + --build=${CT_BUILD} \
> + --host=${host} \
> + --target=${CT_TARGET} \
> + --prefix="${prefix}" \
> + --with-local-prefix="${CT_SYSROOT_DIR}" \
> + --disable-libmudflap \
> + ${CC_CORE_SYSROOT_ARG} \
> + "${extra_config[@]}" \
> + --enable-languages="${lang_list}" \
> + "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}"
> +
> + if [ "${build_libgcc}" = "yes" ]; then
> + # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
> + # gcc/config/t-libunwind so -lc is removed from the link for
> + # libgcc_s.so, as we do not have a target -lc yet.
> + # This is not as ugly as it appears to be ;-) All symbols get resolved
> + # during the glibc build, and we provide a proper libgcc_s.so for the
> + # cross toolchain during the final gcc build.
> + #
> + # As we cannot modify the source tree, nor override SHLIB_LC itself
> + # during configure or make, we have to edit the resultant
> + # gcc/libgcc.mk itself to remove -lc from the link.
> + # This causes us to have to jump through some hoops...
> + #
> + # To produce libgcc.mk to edit we firstly require libiberty.a,
> + # so we configure then build it.
> + # Next we have to configure gcc, create libgcc.mk then edit it...
> + # So much easier if we just edit the source tree, but hey...
> + if [ ! -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
> + CT_DoExecLog CFG make ${JOBSFLAGS} configure-libiberty
> + CT_DoExecLog ALL make ${JOBSFLAGS} -C libiberty libiberty.a
> + CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp
> + CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp
> + else
> + CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp configure-build-libiberty
> + CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp all-build-libiberty
> + fi
> + # HACK: gcc-4.2 uses libdecnumber to build libgcc.mk, so build it here.
> + if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/libdecnumber" ]; then
> + CT_DoExecLog CFG make ${JOBSFLAGS} configure-libdecnumber
> + CT_DoExecLog ALL make ${JOBSFLAGS} -C libdecnumber libdecnumber.a
> + fi
> + # HACK: gcc-4.8 uses libbacktrace to make libgcc.mvars, so make it here.
> + if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/libbacktrace" ]; then
> + CT_DoExecLog CFG make ${JOBSFLAGS} configure-libbacktrace
> + CT_DoExecLog ALL make ${JOBSFLAGS} -C libbacktrace
> + fi
> +
> + # Starting with GCC 4.3, libgcc.mk is no longer built,
> + # and libgcc.mvars is used instead.
> +
> + if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
> + libgcc_rule="libgcc.mvars"
> + core_targets=( gcc target-libgcc )
> + else
> + libgcc_rule="libgcc.mk"
> + core_targets=( gcc )
> + fi
> +
> + # On bare metal and canadian build the host-compiler is used when
> + # actually the build-system compiler is required. Choose the correct
> + # compilers for canadian build and use the defaults on other
> + # configurations.
> + if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then
> + repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \
> + CXX_FOR_BUILD=${CT_BUILD}-g++ \
> + GCC_FOR_TARGET=${CT_TARGET}-gcc"
> + else
> + repair_cc=""
> + fi
> +
> + CT_DoExecLog ALL make ${JOBSFLAGS} -C gcc ${libgcc_rule} \
> + ${repair_cc}
> + sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule}
> + else # build_libgcc
> + core_targets=( gcc )
> + fi # ! build libgcc
> + if [ "${build_libstdcxx}" = "yes" \
> + -a "${CT_CC_LANG_CXX}" = "y" \
> + ]; then
> + core_targets+=( target-libstdc++-v3 )
> + fi
> +
> + CT_DoLog EXTRA "Building core C gcc compiler"
> + CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"
> +
> + CT_DoLog EXTRA "Installing core C gcc compiler"
> + CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}"
> +
> + if [ "${build_manuals}" = "yes" ]; then
> + CT_DoLog EXTRA "Building the gcc manuals"
> + CT_DoExecLog ALL make pdf html
> + CT_DoLog EXTRA "Installing the gcc manuals"
> + CT_DoExecLog ALL make install-{pdf,html}-gcc
> + fi
> +
> + # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
> + # to call the C compiler with the same, somewhat canonical name.
> + # check whether compiler has an extension
> + file="$( ls -1 "${prefix}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
> + [ -z "${file}" ] || ext=".${file##*.}"
> + CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${prefix}/bin/${CT_TARGET}-cc${ext}"
> +
> + if [ "${CT_MULTILIB}" = "y" ]; then
> + if [ "${CT_CANADIAN}" = "y" -a "${mode}" = "baremetal" \
> + -a "${host}" = "${CT_HOST}" ]; then
> + CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
> + else
> + multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
> + |tail -n +2 ) )
> + if [ ${#multilibs[@]} -ne 0 ]; then
> + CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
> + for i in "${multilibs[@]}"; do
> + dir="${i%%;*}"
> + flags="${i#*;}"
> + CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
> + done
> + else
> + CT_DoLog WARN "gcc configured for multilib, but none available"
> + fi
> + fi
> + fi
> +}
> +
> +#------------------------------------------------------------------------------
> +# Build complete gcc to run on build
> +do_gcc_for_build() {
> + local -a build_final_opts
> + local build_final_backend
> +
> + # In case we're canadian or cross-native, it seems that a
> + # real, complete compiler is needed?!? WTF? Sigh...
> + # Otherwise, there is nothing to do.
> + case "${CT_TOOLCHAIN_TYPE}" in
> + native|cross) return 0;;
> + esac
> +
> + build_final_opts+=( "host=${CT_BUILD}" )
> + build_final_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + build_final_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> + build_final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
> + if [ "${CT_BARE_METAL}" = "y" ]; then
> + # In the tests I've done, bare-metal was not impacted by the
> + # lack of such a compiler, but better safe than sorry...
> + build_final_opts+=( "mode=baremetal" )
> + build_final_opts+=( "build_libgcc=yes" )
> + build_final_opts+=( "build_libstdcxx=yes" )
> + if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> + build_final_opts+=( "build_staticlinked=yes" )
> + fi
> + build_final_backend=do_gcc_core_backend
> + else
> + build_final_backend=do_gcc_backend
> + fi
> +
> + CT_DoStep INFO "Installing final gcc compiler for build"
> + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-final-build-${CT_BUILD}"
> +
> + "${build_final_backend}" "${build_final_opts[@]}"
> +
> + CT_Popd
> + CT_EndStep
> +}
> +
> +#------------------------------------------------------------------------------
> +# Build final gcc to run on host
> +do_gcc_for_host() {
> + local -a final_opts
> + local final_backend
> +
> + final_opts+=( "host=${CT_HOST}" )
> + final_opts+=( "prefix=${CT_PREFIX_DIR}" )
> + final_opts+=( "complibs=${CT_HOST_COMPLIBS_DIR}" )
> + final_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> + final_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> + final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
> + if [ "${CT_BUILD_MANUALS}" = "y" ]; then
> + final_opts+=( "build_manuals=yes" )
> + fi
> + if [ "${CT_BARE_METAL}" = "y" ]; then
> + final_opts+=( "mode=baremetal" )
> + final_opts+=( "build_libgcc=yes" )
> + final_opts+=( "build_libstdcxx=yes" )
> + if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> + final_opts+=( "build_staticlinked=yes" )
> + fi
> + final_backend=do_gcc_core_backend
> + else
> + final_backend=do_gcc_backend
> + fi
> +
> + CT_DoStep INFO "Installing final gcc compiler"
> + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-gcc-final"
> +
> + "${final_backend}" "${final_opts[@]}"
> +
> + CT_Popd
> + CT_EndStep
> +}
> +
> +#------------------------------------------------------------------------------
> +# Build the final gcc
> +# Usage: do_gcc_backend param=value [...]
> +# Parameter : Definition : Type : Default
> +# host : the host we run onto : tuple : (none)
> +# prefix : the runtime prefix : dir : (none)
> +# complibs : the companion libraries prefix : dir : (none)
> +# cflags : cflags to use : string : (empty)
> +# ldflags : ldflags to use : string : (empty)
> +# lang_list : the list of languages to build : string : (empty)
> +# build_manuals : whether to build manuals or not : bool : no
> +do_gcc_backend() {
> + local host
> + local prefix
> + local complibs
> + local cflags
> + local ldflags
> + local lang_list
> + local build_manuals
> + local -a host_libstdcxx_flags
> + local -a extra_config
> + local -a final_LDFLAGS
> + local tmp
> + local arg
> + local exeext
> +
> + for arg in "$@"; do
> + eval "${arg// /\\ }"
> + done
> +
> + CT_DoLog EXTRA "Configuring final gcc compiler"
> +
> + # Enable selected languages
> + extra_config+=("--enable-languages=${lang_list}")
> +
> + for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
> + eval tmp="\${CT_ARCH_WITH_${tmp}}"
> + if [ -n "${tmp}" ]; then
> + extra_config+=("${tmp}")
> + fi
> + done
> +
> + [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
> + if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
> + extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
> + [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
> + fi
> + case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
> + y) extra_config+=("--enable-sjlj-exceptions");;
> + m) ;;
> + "") extra_config+=("--disable-sjlj-exceptions");;
> + esac
> + if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
> + extra_config+=("--enable-__cxa_atexit")
> + else
> + extra_config+=("--disable-__cxa_atexit")
> + fi
> + if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then
> + extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}")
> + fi
> + if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
> + extra_config+=(--enable-libmudflap)
> + else
> + extra_config+=(--disable-libmudflap)
> + fi
> + if [ "${CT_CC_GCC_LIBGOMP}" = "y" ]; then
> + extra_config+=(--enable-libgomp)
> + else
> + extra_config+=(--disable-libgomp)
> + fi
> + if [ "${CT_CC_GCC_LIBSSP}" = "y" ]; then
> + extra_config+=(--enable-libssp)
> + else
> + extra_config+=(--disable-libssp)
> + fi
> + if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then
> + if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then
> + extra_config+=(--enable-libquadmath)
> + extra_config+=(--enable-libquadmath-support)
> + else
> + extra_config+=(--disable-libquadmath)
> + extra_config+=(--disable-libquadmath-support)
> + fi
> + fi
> +
> + final_LDFLAGS+=("${ldflags}")
> +
> + # *** WARNING ! ***
> + # Keep this full if-else-if-elif-fi-fi block in sync
> + # with the same block in do_gcc_core, above.
> + if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> + final_LDFLAGS+=("-static")
> + host_libstdcxx_flags+=("-static-libgcc")
> + host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
> + host_libstdcxx_flags+=("-lm")
> + # Companion libraries are build static (eg !shared), so
> + # the libstdc++ is not pulled automatically, although it
> + # is needed. Shoe-horn it in our LDFLAGS
> + # Ditto libm on some Fedora boxen
> + final_LDFLAGS+=("-lstdc++")
> + final_LDFLAGS+=("-lm")
> + else
> + if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
> + # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
> + # build script
> + # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
> + # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
> + host_libstdcxx_flags+=("-static-libgcc")
> + host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
> + host_libstdcxx_flags+=("-lm")
> + elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
> + # When companion libraries are build static (eg !shared),
> + # the libstdc++ is not pulled automatically, although it
> + # is needed. Shoe-horn it in our LDFLAGS
> + # Ditto libm on some Fedora boxen
> + final_LDFLAGS+=("-lstdc++")
> + final_LDFLAGS+=("-lm")
> + fi
> + fi
> +
> + if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
> + extra_config+=("--with-gmp=${complibs}")
> + extra_config+=("--with-mpfr=${complibs}")
> + fi
> + if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
> + extra_config+=("--with-mpc=${complibs}")
> + fi
> + if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
> + if [ "${CT_PPL}" = "y" ]; then
> + extra_config+=("--with-ppl=${complibs}")
> + # With PPL 0.11+, also pull libpwl if needed
> + if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
> + host_libstdcxx_flags+=("-L${complibs}/lib")
> + host_libstdcxx_flags+=("-lpwl")
> + fi
> + fi
> + if [ "${CT_ISL}" = "y" ]; then
> + extra_config+=("--with-isl=${complibs}")
> + fi
> + extra_config+=("--with-cloog=${complibs}")
> + elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
> + extra_config+=("--with-ppl=no")
> + extra_config+=("--with-isl=no")
> + extra_config+=("--with-cloog=no")
> + fi
> + if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
> + extra_config+=("--with-libelf=${complibs}")
> + elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
> + extra_config+=("--with-libelf=no")
> + fi
> +
> + if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
> + extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
> + fi
> +
> + if [ "${CT_THREADS}" = "none" ]; then
> + extra_config+=("--disable-threads")
> + if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then
> + CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y"
> + extra_config+=("--disable-libgomp")
> + fi
> + else
> + if [ "${CT_THREADS}" = "win32" ]; then
> + extra_config+=("--enable-threads=win32")
> + extra_config+=("--disable-win32-registry")
> + else
> + extra_config+=("--enable-threads=posix")
> + fi
> + fi
> +
> + if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
> + extra_config+=("--enable-target-optspace")
> + fi
> + if [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ]; then
> + extra_config+=("--disable-libstdcxx-pch")
> + fi
> +
> + case "${CT_CC_GCC_LDBL_128}" in
> + y) extra_config+=("--with-long-double-128");;
> + m) ;;
> + "") extra_config+=("--without-long-double-128");;
> + esac
> +
> + if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
> + extra_config+=( --enable-linker-build-id )
> + fi
> +
> + case "${CT_CC_GCC_LNK_HASH_STYLE}" in
> + "") ;;
> + *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
> + esac
> +
> + if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
> + extra_config+=( --enable-plugin )
> + fi
> + if [ "${CT_CC_GCC_GOLD}" = "y" ]; then
> + extra_config+=( --enable-gold )
> + fi
> +
> + case "${CT_ARCH}" in
> + mips)
> + case "${CT_CC_GCC_mips_llsc}" in
> + y) extra_config+=( --with-llsc );;
> + m) ;;
> + *) extra_config+=( --without-llsc );;
> + esac
> + case "${CT_CC_GCC_mips_synci}" in
> + y) extra_config+=( --with-synci );;
> + m) ;;
> + *) extra_config+=( --without-synci );;
> + esac
> + if [ "${CT_CC_GCC_mips_plt}" ]; then
> + extra_config+=( --with-mips-plt )
> + fi
> + ;; # ARCH is mips
> + esac
> +
> + [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
> +
> + if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
> + extra_config+=("--with-system-zlib")
> + fi
> +
> + if [ "${CT_MULTILIB}" = "y" ]; then
> + extra_config+=("--enable-multilib")
> + else
> + extra_config+=("--disable-multilib")
> + fi
> +
> + CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
> +
> + CT_DoExecLog CFG \
> + CC_FOR_BUILD="${CT_BUILD}-gcc" \
> + CFLAGS_FOR_BUILD="${CT_EXTRA_CFLAGS_FOR_BUILD-${cflags}}" \
> + CFLAGS="${cflags}" \
> + CXXFLAGS="${cflags}" \
> + LDFLAGS="${final_LDFLAGS[*]}" \
> + CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
> + CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
> + LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \
> + "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/configure" \
> + --build=${CT_BUILD} \
> + --host=${host} \
> + --target=${CT_TARGET} \
> + --prefix="${prefix}" \
> + ${CC_SYSROOT_ARG} \
> + "${extra_config[@]}" \
> + --with-local-prefix="${CT_SYSROOT_DIR}" \
> + --enable-c99 \
> + --enable-long-long \
> + "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}"
> +
> + if [ "${CT_CANADIAN}" = "y" ]; then
> + CT_DoLog EXTRA "Building libiberty"
> + CT_DoExecLog ALL make ${JOBSFLAGS} all-build-libiberty
> + fi
> +
> + CT_DoLog EXTRA "Building final gcc compiler"
> + CT_DoExecLog ALL make ${JOBSFLAGS} all
> +
> + CT_DoLog EXTRA "Installing final gcc compiler"
> + CT_DoExecLog ALL make ${JOBSFLAGS} install
> +
> + if [ "${build_manuals}" = "yes" ]; then
> + CT_DoLog EXTRA "Building the gcc manuals"
> + CT_DoExecLog ALL make pdf html
> + CT_DoLog EXTRA "Installing the gcc manuals"
> + CT_DoExecLog ALL make install-{pdf,html}-gcc
> + fi
> +
> + # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
> + # to call the C compiler with the same, somewhat canonical name.
> + # check whether compiler has an extension
> + file="$( ls -1 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
> + [ -z "${file}" ] || ext=".${file##*.}"
> + CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}"
> +
> + if [ "${CT_MULTILIB}" = "y" ]; then
> + if [ "${CT_CANADIAN}" = "y" ]; then
> + CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
> + else
> + multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
> + |tail -n +2 ) )
> + if [ ${#multilibs[@]} -ne 0 ]; then
> + CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
> + for i in "${multilibs[@]}"; do
> + dir="${i%%;*}"
> + flags="${i#*;}"
> + CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
> + done
> + else
> + CT_DoLog WARN "gcc configured for multilib, but none available"
> + fi
> + fi
> + fi
> +}
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/cc/gcc.sh
> --- a/scripts/build/cc/gcc.sh Sat Nov 16 18:14:45 2013 +0100
> +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
> @@ -1,869 +0,0 @@
> -# This file adds the function to build the gcc C compiler
> -# Copyright 2007 Yann E. MORIN
> -# Licensed under the GPL v2. See COPYING in the root of this package
> -
> -# Download gcc
> -do_cc_get() {
> - local linaro_version
> - local linaro_series
> - local linaro_base_url="http://launchpad.net/gcc-linaro"
> -
> - if [ "${CT_CC_CUSTOM}" = "y" ]; then
> - CT_GetCustom "gcc" "${CT_CC_VERSION}" "${CT_CC_CUSTOM_LOCATION}"
> - else
> - # Account for the Linaro versioning
> - linaro_version="$( echo "${CT_CC_VERSION}" \
> - |sed -r -e 's/^linaro-//;' \
> - )"
> - linaro_series="$( echo "${linaro_version}" \
> - |sed -r -e 's/-.*//;' \
> - )"
> -
> - # Ah! gcc folks are kind of 'different': they store the tarballs in
> - # subdirectories of the same name!
> - # Arrgghh! Some of those versions does not follow this convention:
> - # gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
> - # subdirectory!
> - CT_GetFile "gcc-${CT_CC_VERSION}" \
> - {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}} \
> - ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_VERSION} \
> - ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_VERSION} \
> - "${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
> -
> - fi # ! custom location
> - # Starting with GCC 4.3, ecj is used for Java, and will only be
> - # built if the configure script finds ecj.jar at the top of the
> - # GCC source tree, which will not be there unless we get it and
> - # put it there ourselves
> - if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
> - CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java \
> - ftp://sourceware.org/pub/java
> - fi
> -}
> -
> -# Extract gcc
> -do_cc_extract() {
> - # If using custom directory location, nothing to do
> - if [ "${CT_CC_CUSTOM}" = "y" \
> - -a -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}" ]; then
> - return 0
> - fi
> -
> - CT_Extract "gcc-${CT_CC_VERSION}"
> - CT_Patch "gcc" "${CT_CC_VERSION}"
> -
> - # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
> - if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" \
> - -a ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar" \
> - ]; then
> - CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar"
> - fi
> -}
> -
> -#------------------------------------------------------------------------------
> -# This function builds up the set of languages to enable
> -# No argument expected, returns the comma-separated language list on stdout
> -cc_gcc_lang_list() {
> - local lang_list
> -
> - lang_list="c"
> - [ "${CT_CC_LANG_CXX}" = "y" ] && lang_list+=",c++"
> - [ "${CT_CC_LANG_FORTRAN}" = "y" ] && lang_list+=",fortran"
> - [ "${CT_CC_LANG_ADA}" = "y" ] && lang_list+=",ada"
> - [ "${CT_CC_LANG_JAVA}" = "y" ] && lang_list+=",java"
> - [ "${CT_CC_LANG_OBJC}" = "y" ] && lang_list+=",objc"
> - [ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_list+=",obj-c++"
> - [ "${CT_CC_LANG_GOLANG}" = "y" ] && lang_list+=",go"
> - lang_list+="${CT_CC_LANG_OTHERS:+,${CT_CC_LANG_OTHERS}}"
> -
> - printf "%s" "${lang_list}"
> -}
> -
> -#------------------------------------------------------------------------------
> -# Core gcc pass 1
> -do_cc_core_pass_1() {
> - local -a core_opts
> -
> - if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
> - return 0
> - fi
> -
> - core_opts+=( "mode=static" )
> - core_opts+=( "host=${CT_BUILD}" )
> - core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> - core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> - core_opts+=( "lang_list=c" )
> -
> - CT_DoStep INFO "Installing pass-1 core C compiler"
> - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-core-pass-1"
> -
> - do_cc_core_backend "${core_opts[@]}"
> -
> - CT_Popd
> - CT_EndStep
> -}
> -
> -# Core gcc pass 2
> -do_cc_core_pass_2() {
> - local -a core_opts
> -
> - if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
> - return 0
> - fi
> -
> - # Common options:
> - core_opts+=( "host=${CT_BUILD}" )
> - core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - core_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> - core_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> - core_opts+=( "lang_list=c" )
> -
> - # Different conditions are at stake here:
> - # - In case the threading model is NPTL, we need a shared-capable core
> - # gcc; in all other cases, we need a static-only core gcc.
> - # - In case the threading model is NPTL or win32, or gcc is 4.3 or
> - # later, we need to build libgcc
> - case "${CT_THREADS}" in
> - nptl)
> - core_opts+=( "mode=shared" )
> - core_opts+=( "build_libgcc=yes" )
> - ;;
> - win32)
> - core_opts+=( "mode=static" )
> - core_opts+=( "build_libgcc=yes" )
> - ;;
> - *)
> - core_opts+=( "mode=static" )
> - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
> - core_opts+=( "build_libgcc=yes" )
> - fi
> - ;;
> - esac
> -
> - CT_DoStep INFO "Installing pass-2 core C compiler"
> - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-core-pass-2"
> -
> - do_cc_core_backend "${core_opts[@]}"
> -
> - CT_Popd
> - CT_EndStep
> -}
> -
> -#------------------------------------------------------------------------------
> -# Build core gcc
> -# This function is used to build the core C compiler.
> -# Usage: do_cc_core_backend param=value [...]
> -# Parameter : Definition : Type : Default
> -# mode : build a 'static', 'shared' or 'baremetal' : string : (none)
> -# host : the machine the core will run on : tuple : (none)
> -# prefix : dir prefix to install into : dir : (none)
> -# complibs : dir where complibs are isntalled : dir : (none)
> -# lang_list : the list of languages to build : string : (empty)
> -# build_libgcc : build libgcc or not : bool : no
> -# build_libstdcxx : build libstdc++ or not : bool : no
> -# build_staticlinked : build statically linked or not : bool : no
> -# build_manuals : whether to build manuals or not : bool : no
> -# cflags : cflags to use : string : (empty)
> -# ldflags : ldflags to use : string : (empty)
> -# Usage: do_cc_core_backend mode=[static|shared|baremetal] build_libgcc=[yes|no] build_staticlinked=[yes|no]
> -do_cc_core_backend() {
> - local mode
> - local build_libgcc=no
> - local build_libstdcxx=no
> - local build_staticlinked=no
> - local build_manuals=no
> - local host
> - local prefix
> - local complibs
> - local lang_list
> - local cflags
> - local ldflags
> - local tmp
> - local -a host_libstdcxx_flags
> - local -a extra_config
> - local -a core_LDFLAGS
> - local -a core_targets
> - local arg
> -
> - for arg in "$@"; do
> - eval "${arg// /\\ }"
> - done
> -
> - CT_DoLog EXTRA "Configuring gcc"
> -
> - case "${mode}" in
> - static)
> - extra_config+=("--with-newlib")
> - extra_config+=("--enable-threads=no")
> - extra_config+=("--disable-shared")
> - copy_headers=y # For baremetal, as there's no headers to copy,
> - # we copy an empty directory. So, who cares?
> - ;;
> - shared)
> - extra_config+=("--enable-shared")
> - copy_headers=y
> - ;;
> - baremetal)
> - extra_config+=("--with-newlib")
> - extra_config+=("--enable-threads=no")
> - extra_config+=("--disable-shared")
> - copy_headers=n
> - ;;
> - *)
> - CT_Abort "Internal Error: 'mode' must be one of: 'static', 'shared' or 'baremetal', not '${mode:-(empty)}'"
> - ;;
> - esac
> -
> - if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
> - # Bare metal delivers the core compiler as final compiler, so add version info and bugurl
> - extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
> - [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
> - fi
> -
> - if [ "${copy_headers}" = "y" ]; then
> - CT_DoLog DEBUG "Copying headers to install area of bootstrap gcc, so it can build libgcc2"
> - CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include"
> - fi
> -
> - for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
> - eval tmp="\${CT_ARCH_WITH_${tmp}}"
> - if [ -n "${tmp}" ]; then
> - extra_config+=("${tmp}")
> - fi
> - done
> - if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
> - extra_config+=("--enable-__cxa_atexit")
> - else
> - extra_config+=("--disable-__cxa_atexit")
> - fi
> -
> - core_LDFLAGS+=("${ldflags}")
> -
> - # *** WARNING ! ***
> - # Keep this full if-else-if-elif-fi-fi block in sync
> - # with the same block in do_cc, below.
> - if [ "${build_staticlinked}" = "yes" ]; then
> - core_LDFLAGS+=("-static")
> - host_libstdcxx_flags+=("-static-libgcc")
> - host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
> - host_libstdcxx_flags+=("-lm")
> - # Companion libraries are build static (eg !shared), so
> - # the libstdc++ is not pulled automatically, although it
> - # is needed. Shoe-horn it in our LDFLAGS
> - # Ditto libm on some Fedora boxen
> - core_LDFLAGS+=("-lstdc++")
> - core_LDFLAGS+=("-lm")
> - else
> - if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
> - # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
> - # build script
> - # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
> - # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
> - host_libstdcxx_flags+=("-static-libgcc")
> - host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
> - host_libstdcxx_flags+=("-lm")
> - elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
> - # When companion libraries are build static (eg !shared),
> - # the libstdc++ is not pulled automatically, although it
> - # is needed. Shoe-horn it in our LDFLAGS
> - # Ditto libm on some Fedora boxen
> - core_LDFLAGS+=("-lstdc++")
> - core_LDFLAGS+=("-lm")
> - fi
> - fi
> -
> - if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
> - extra_config+=("--with-gmp=${complibs}")
> - extra_config+=("--with-mpfr=${complibs}")
> - fi
> - if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
> - extra_config+=("--with-mpc=${complibs}")
> - fi
> - if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
> - if [ "${CT_PPL}" = "y" ]; then
> - extra_config+=("--with-ppl=${complibs}")
> - # With PPL 0.11+, also pull libpwl if needed
> - if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
> - host_libstdcxx_flags+=("-L${complibs}/lib")
> - host_libstdcxx_flags+=("-lpwl")
> - fi
> - fi
> - if [ "${CT_ISL}" = "y" ]; then
> - extra_config+=("--with-isl=${complibs}")
> - fi
> - extra_config+=("--with-cloog=${complibs}")
> - elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
> - extra_config+=("--with-ppl=no")
> - extra_config+=("--with-isl=no")
> - extra_config+=("--with-cloog=no")
> - fi
> - if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
> - extra_config+=("--with-libelf=${complibs}")
> - extra_config+=("--enable-lto")
> - elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
> - extra_config+=("--with-libelf=no")
> - extra_config+=("--disable-lto")
> - fi
> -
> - if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
> - extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
> - fi
> -
> - if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
> - extra_config+=("--enable-target-optspace")
> - fi
> -
> - case "${CT_CC_GCC_LDBL_128}" in
> - y) extra_config+=("--with-long-double-128");;
> - m) ;;
> - "") extra_config+=("--without-long-double-128");;
> - esac
> -
> - if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
> - extra_config+=( --enable-linker-build-id )
> - fi
> -
> - case "${CT_CC_GCC_LNK_HASH_STYLE}" in
> - "") ;;
> - *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
> - esac
> -
> - case "${CT_ARCH}" in
> - mips)
> - case "${CT_CC_GCC_mips_llsc}" in
> - y) extra_config+=( --with-llsc );;
> - m) ;;
> - *) extra_config+=( --without-llsc );;
> - esac
> - case "${CT_CC_GCC_mips_synci}" in
> - y) extra_config+=( --with-synci );;
> - m) ;;
> - *) extra_config+=( --without-synci );;
> - esac
> - if [ "${CT_CC_GCC_mips_plt}" ]; then
> - extra_config+=( --with-mips-plt )
> - fi
> - ;; # ARCH is mips
> - esac
> -
> - extra_config+=(--disable-libgomp)
> - extra_config+=(--disable-libmudflap)
> -
> - [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
> -
> - [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ] && extra_config+=("--disable-libstdcxx-pch")
> -
> - if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
> - extra_config+=("--with-system-zlib")
> - fi
> -
> - if [ "${CT_MULTILIB}" = "y" ]; then
> - extra_config+=("--enable-multilib")
> - else
> - extra_config+=("--disable-multilib")
> - fi
> -
> - CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
> -
> - # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
> - CT_DoExecLog CFG \
> - CC_FOR_BUILD="${CT_BUILD}-gcc" \
> - CFLAGS="${cflags}" \
> - LDFLAGS="${core_LDFLAGS[*]}" \
> - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \
> - --build=${CT_BUILD} \
> - --host=${host} \
> - --target=${CT_TARGET} \
> - --prefix="${prefix}" \
> - --with-local-prefix="${CT_SYSROOT_DIR}" \
> - --disable-libmudflap \
> - ${CC_CORE_SYSROOT_ARG} \
> - "${extra_config[@]}" \
> - --enable-languages="${lang_list}" \
> - "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}"
> -
> - if [ "${build_libgcc}" = "yes" ]; then
> - # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
> - # gcc/config/t-libunwind so -lc is removed from the link for
> - # libgcc_s.so, as we do not have a target -lc yet.
> - # This is not as ugly as it appears to be ;-) All symbols get resolved
> - # during the glibc build, and we provide a proper libgcc_s.so for the
> - # cross toolchain during the final gcc build.
> - #
> - # As we cannot modify the source tree, nor override SHLIB_LC itself
> - # during configure or make, we have to edit the resultant
> - # gcc/libgcc.mk itself to remove -lc from the link.
> - # This causes us to have to jump through some hoops...
> - #
> - # To produce libgcc.mk to edit we firstly require libiberty.a,
> - # so we configure then build it.
> - # Next we have to configure gcc, create libgcc.mk then edit it...
> - # So much easier if we just edit the source tree, but hey...
> - if [ ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
> - CT_DoExecLog CFG make ${JOBSFLAGS} configure-libiberty
> - CT_DoExecLog ALL make ${JOBSFLAGS} -C libiberty libiberty.a
> - CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp
> - CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp
> - else
> - CT_DoExecLog CFG make ${JOBSFLAGS} configure-gcc configure-libcpp configure-build-libiberty
> - CT_DoExecLog ALL make ${JOBSFLAGS} all-libcpp all-build-libiberty
> - fi
> - # HACK: gcc-4.2 uses libdecnumber to build libgcc.mk, so build it here.
> - if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/libdecnumber" ]; then
> - CT_DoExecLog CFG make ${JOBSFLAGS} configure-libdecnumber
> - CT_DoExecLog ALL make ${JOBSFLAGS} -C libdecnumber libdecnumber.a
> - fi
> - # HACK: gcc-4.8 uses libbacktrace to make libgcc.mvars, so make it here.
> - if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/libbacktrace" ]; then
> - CT_DoExecLog CFG make ${JOBSFLAGS} configure-libbacktrace
> - CT_DoExecLog ALL make ${JOBSFLAGS} -C libbacktrace
> - fi
> -
> - # Starting with GCC 4.3, libgcc.mk is no longer built,
> - # and libgcc.mvars is used instead.
> -
> - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
> - libgcc_rule="libgcc.mvars"
> - core_targets=( gcc target-libgcc )
> - else
> - libgcc_rule="libgcc.mk"
> - core_targets=( gcc )
> - fi
> -
> - # On bare metal and canadian build the host-compiler is used when
> - # actually the build-system compiler is required. Choose the correct
> - # compilers for canadian build and use the defaults on other
> - # configurations.
> - if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then
> - repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \
> - CXX_FOR_BUILD=${CT_BUILD}-g++ \
> - GCC_FOR_TARGET=${CT_TARGET}-gcc"
> - else
> - repair_cc=""
> - fi
> -
> - CT_DoExecLog ALL make ${JOBSFLAGS} -C gcc ${libgcc_rule} \
> - ${repair_cc}
> - sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule}
> - else # build_libgcc
> - core_targets=( gcc )
> - fi # ! build libgcc
> - if [ "${build_libstdcxx}" = "yes" \
> - -a "${CT_CC_LANG_CXX}" = "y" \
> - ]; then
> - core_targets+=( target-libstdc++-v3 )
> - fi
> -
> - CT_DoLog EXTRA "Building gcc"
> - CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"
> -
> - CT_DoLog EXTRA "Installing gcc"
> - CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}"
> -
> - if [ "${build_manuals}" = "yes" ]; then
> - CT_DoLog EXTRA "Building the GCC manuals"
> - CT_DoExecLog ALL make pdf html
> - CT_DoLog EXTRA "Installing the GCC manuals"
> - CT_DoExecLog ALL make install-{pdf,html}-gcc
> - fi
> -
> - # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
> - # to call the C compiler with the same, somewhat canonical name.
> - # check whether compiler has an extension
> - file="$( ls -1 "${prefix}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
> - [ -z "${file}" ] || ext=".${file##*.}"
> - CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${prefix}/bin/${CT_TARGET}-cc${ext}"
> -
> - if [ "${CT_MULTILIB}" = "y" ]; then
> - if [ "${CT_CANADIAN}" = "y" -a "${mode}" = "baremetal" \
> - -a "${host}" = "${CT_HOST}" ]; then
> - CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
> - else
> - multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
> - |tail -n +2 ) )
> - if [ ${#multilibs[@]} -ne 0 ]; then
> - CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
> - for i in "${multilibs[@]}"; do
> - dir="${i%%;*}"
> - flags="${i#*;}"
> - CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
> - done
> - else
> - CT_DoLog WARN "gcc configured for multilib, but none available"
> - fi
> - fi
> - fi
> -}
> -
> -#------------------------------------------------------------------------------
> -# Build complete gcc to run on build
> -do_cc_for_build() {
> - local -a build_final_opts
> - local build_final_backend
> -
> - # In case we're canadian or cross-native, it seems that a
> - # real, complete compiler is needed?!? WTF? Sigh...
> - # Otherwise, there is nothing to do.
> - case "${CT_TOOLCHAIN_TYPE}" in
> - native|cross) return 0;;
> - esac
> -
> - build_final_opts+=( "host=${CT_BUILD}" )
> - build_final_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - build_final_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
> - build_final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
> - if [ "${CT_BARE_METAL}" = "y" ]; then
> - # In the tests I've done, bare-metal was not impacted by the
> - # lack of such a compiler, but better safe than sorry...
> - build_final_opts+=( "mode=baremetal" )
> - build_final_opts+=( "build_libgcc=yes" )
> - build_final_opts+=( "build_libstdcxx=yes" )
> - if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> - build_final_opts+=( "build_staticlinked=yes" )
> - fi
> - build_final_backend=do_cc_core_backend
> - else
> - build_final_backend=do_cc_backend
> - fi
> -
> - CT_DoStep INFO "Installing final compiler for build"
> - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-final-build-${CT_BUILD}"
> -
> - "${build_final_backend}" "${build_final_opts[@]}"
> -
> - CT_Popd
> - CT_EndStep
> -}
> -
> -#------------------------------------------------------------------------------
> -# Build final gcc to run on host
> -do_cc_for_host() {
> - local -a final_opts
> - local final_backend
> -
> - final_opts+=( "host=${CT_HOST}" )
> - final_opts+=( "prefix=${CT_PREFIX_DIR}" )
> - final_opts+=( "complibs=${CT_HOST_COMPLIBS_DIR}" )
> - final_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
> - final_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
> - final_opts+=( "lang_list=$( cc_gcc_lang_list )" )
> - if [ "${CT_BUILD_MANUALS}" = "y" ]; then
> - final_opts+=( "build_manuals=yes" )
> - fi
> - if [ "${CT_BARE_METAL}" = "y" ]; then
> - final_opts+=( "mode=baremetal" )
> - final_opts+=( "build_libgcc=yes" )
> - final_opts+=( "build_libstdcxx=yes" )
> - if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> - final_opts+=( "build_staticlinked=yes" )
> - fi
> - final_backend=do_cc_core_backend
> - else
> - final_backend=do_cc_backend
> - fi
> -
> - CT_DoStep INFO "Installing final compiler"
> - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cc-final"
> -
> - "${final_backend}" "${final_opts[@]}"
> -
> - CT_Popd
> - CT_EndStep
> -}
> -
> -#------------------------------------------------------------------------------
> -# Build the final gcc
> -# Usage: do_cc_backend param=value [...]
> -# Parameter : Definition : Type : Default
> -# host : the host we run onto : tuple : (none)
> -# prefix : the runtime prefix : dir : (none)
> -# complibs : the companion libraries prefix : dir : (none)
> -# cflags : cflags to use : string : (empty)
> -# ldflags : ldflags to use : string : (empty)
> -# lang_list : the list of languages to build : string : (empty)
> -# build_manuals : whether to build manuals or not : bool : no
> -do_cc_backend() {
> - local host
> - local prefix
> - local complibs
> - local cflags
> - local ldflags
> - local lang_list
> - local build_manuals
> - local -a host_libstdcxx_flags
> - local -a extra_config
> - local -a final_LDFLAGS
> - local tmp
> - local arg
> -
> - for arg in "$@"; do
> - eval "${arg// /\\ }"
> - done
> -
> - CT_DoLog EXTRA "Configuring gcc"
> -
> - # Enable selected languages
> - extra_config+=("--enable-languages=${lang_list}")
> -
> - for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
> - eval tmp="\${CT_ARCH_WITH_${tmp}}"
> - if [ -n "${tmp}" ]; then
> - extra_config+=("${tmp}")
> - fi
> - done
> -
> - [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
> - if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then
> - extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
> - [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
> - fi
> - case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
> - y) extra_config+=("--enable-sjlj-exceptions");;
> - m) ;;
> - "") extra_config+=("--disable-sjlj-exceptions");;
> - esac
> - if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
> - extra_config+=("--enable-__cxa_atexit")
> - else
> - extra_config+=("--disable-__cxa_atexit")
> - fi
> - if [ -n "${CT_CC_ENABLE_CXX_FLAGS}" ]; then
> - extra_config+=("--enable-cxx-flags=${CT_CC_ENABLE_CXX_FLAGS}")
> - fi
> - if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
> - extra_config+=(--enable-libmudflap)
> - else
> - extra_config+=(--disable-libmudflap)
> - fi
> - if [ "${CT_CC_GCC_LIBGOMP}" = "y" ]; then
> - extra_config+=(--enable-libgomp)
> - else
> - extra_config+=(--disable-libgomp)
> - fi
> - if [ "${CT_CC_GCC_LIBSSP}" = "y" ]; then
> - extra_config+=(--enable-libssp)
> - else
> - extra_config+=(--disable-libssp)
> - fi
> - if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then
> - if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then
> - extra_config+=(--enable-libquadmath)
> - extra_config+=(--enable-libquadmath-support)
> - else
> - extra_config+=(--disable-libquadmath)
> - extra_config+=(--disable-libquadmath-support)
> - fi
> - fi
> -
> - final_LDFLAGS+=("${ldflags}")
> -
> - # *** WARNING ! ***
> - # Keep this full if-else-if-elif-fi-fi block in sync
> - # with the same block in do_cc_core, above.
> - if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
> - final_LDFLAGS+=("-static")
> - host_libstdcxx_flags+=("-static-libgcc")
> - host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++")
> - host_libstdcxx_flags+=("-lm")
> - # Companion libraries are build static (eg !shared), so
> - # the libstdc++ is not pulled automatically, although it
> - # is needed. Shoe-horn it in our LDFLAGS
> - # Ditto libm on some Fedora boxen
> - final_LDFLAGS+=("-lstdc++")
> - final_LDFLAGS+=("-lm")
> - else
> - if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
> - # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
> - # build script
> - # INFO: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
> - # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
> - host_libstdcxx_flags+=("-static-libgcc")
> - host_libstdcxx_flags+=("-Wl,-Bstatic,-lstdc++,-Bdynamic")
> - host_libstdcxx_flags+=("-lm")
> - elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
> - # When companion libraries are build static (eg !shared),
> - # the libstdc++ is not pulled automatically, although it
> - # is needed. Shoe-horn it in our LDFLAGS
> - # Ditto libm on some Fedora boxen
> - final_LDFLAGS+=("-lstdc++")
> - final_LDFLAGS+=("-lm")
> - fi
> - fi
> -
> - if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
> - extra_config+=("--with-gmp=${complibs}")
> - extra_config+=("--with-mpfr=${complibs}")
> - fi
> - if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
> - extra_config+=("--with-mpc=${complibs}")
> - fi
> - if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
> - if [ "${CT_PPL}" = "y" ]; then
> - extra_config+=("--with-ppl=${complibs}")
> - # With PPL 0.11+, also pull libpwl if needed
> - if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
> - host_libstdcxx_flags+=("-L${complibs}/lib")
> - host_libstdcxx_flags+=("-lpwl")
> - fi
> - fi
> - if [ "${CT_ISL}" = "y" ]; then
> - extra_config+=("--with-isl=${complibs}")
> - fi
> - extra_config+=("--with-cloog=${complibs}")
> - elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
> - extra_config+=("--with-ppl=no")
> - extra_config+=("--with-isl=no")
> - extra_config+=("--with-cloog=no")
> - fi
> - if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
> - extra_config+=("--with-libelf=${complibs}")
> - elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
> - extra_config+=("--with-libelf=no")
> - fi
> -
> - if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
> - extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")
> - fi
> -
> - if [ "${CT_THREADS}" = "none" ]; then
> - extra_config+=("--disable-threads")
> - if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then
> - CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y"
> - extra_config+=("--disable-libgomp")
> - fi
> - else
> - if [ "${CT_THREADS}" = "win32" ]; then
> - extra_config+=("--enable-threads=win32")
> - extra_config+=("--disable-win32-registry")
> - else
> - extra_config+=("--enable-threads=posix")
> - fi
> - fi
> -
> - if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
> - extra_config+=("--enable-target-optspace")
> - fi
> - if [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ]; then
> - extra_config+=("--disable-libstdcxx-pch")
> - fi
> -
> - case "${CT_CC_GCC_LDBL_128}" in
> - y) extra_config+=("--with-long-double-128");;
> - m) ;;
> - "") extra_config+=("--without-long-double-128");;
> - esac
> -
> - if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
> - extra_config+=( --enable-linker-build-id )
> - fi
> -
> - case "${CT_CC_GCC_LNK_HASH_STYLE}" in
> - "") ;;
> - *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
> - esac
> -
> - if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
> - extra_config+=( --enable-plugin )
> - fi
> - if [ "${CT_CC_GCC_GOLD}" = "y" ]; then
> - extra_config+=( --enable-gold )
> - fi
> -
> - case "${CT_ARCH}" in
> - mips)
> - case "${CT_CC_GCC_mips_llsc}" in
> - y) extra_config+=( --with-llsc );;
> - m) ;;
> - *) extra_config+=( --without-llsc );;
> - esac
> - case "${CT_CC_GCC_mips_synci}" in
> - y) extra_config+=( --with-synci );;
> - m) ;;
> - *) extra_config+=( --without-synci );;
> - esac
> - if [ "${CT_CC_GCC_mips_plt}" ]; then
> - extra_config+=( --with-mips-plt )
> - fi
> - ;; # ARCH is mips
> - esac
> -
> - [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
> -
> - if [ "${CT_CC_GCC_SYSTEM_ZLIB}" = "y" ]; then
> - extra_config+=("--with-system-zlib")
> - fi
> -
> - if [ "${CT_MULTILIB}" = "y" ]; then
> - extra_config+=("--enable-multilib")
> - else
> - extra_config+=("--disable-multilib")
> - fi
> -
> - CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
> -
> - CT_DoExecLog CFG \
> - CC_FOR_BUILD="${CT_BUILD}-gcc" \
> - CFLAGS="${cflags}" \
> - LDFLAGS="${final_LDFLAGS[*]}" \
> - CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
> - CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \
> - LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \
> - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \
> - --build=${CT_BUILD} \
> - --host=${host} \
> - --target=${CT_TARGET} \
> - --prefix="${prefix}" \
> - ${CC_SYSROOT_ARG} \
> - "${extra_config[@]}" \
> - --with-local-prefix="${CT_SYSROOT_DIR}" \
> - --enable-c99 \
> - --enable-long-long \
> - "${CT_CC_EXTRA_CONFIG_ARRAY[@]}"
> -
> - if [ "${CT_CANADIAN}" = "y" ]; then
> - CT_DoLog EXTRA "Building libiberty"
> - CT_DoExecLog ALL make ${JOBSFLAGS} all-build-libiberty
> - fi
> -
> - CT_DoLog EXTRA "Building gcc"
> - CT_DoExecLog ALL make ${JOBSFLAGS} all
> -
> - CT_DoLog EXTRA "Installing gcc"
> - CT_DoExecLog ALL make ${JOBSFLAGS} install
> -
> - if [ "${build_manuals}" = "yes" ]; then
> - CT_DoLog EXTRA "Building the GCC manuals"
> - CT_DoExecLog ALL make pdf html
> - CT_DoLog EXTRA "Installing the GCC manuals"
> - CT_DoExecLog ALL make install-{pdf,html}-gcc
> - fi
> -
> - # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
> - # to call the C compiler with the same, somewhat canonical name.
> - # check whether compiler has an extension
> - file="$( ls -1 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
> - [ -z "${file}" ] || ext=".${file##*.}"
> - CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}"
> -
> - if [ "${CT_MULTILIB}" = "y" ]; then
> - if [ "${CT_CANADIAN}" = "y" ]; then
> - CT_DoLog WARN "Canadian Cross unable to confirm multilibs configured correctly"
> - else
> - multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \
> - |tail -n +2 ) )
> - if [ ${#multilibs[@]} -ne 0 ]; then
> - CT_DoLog EXTRA "gcc configured with these multilibs (besides the default):"
> - for i in "${multilibs[@]}"; do
> - dir="${i%%;*}"
> - flags="${i#*;}"
> - CT_DoLog EXTRA " ${flags//@/ -} --> ${dir}/"
> - done
> - else
> - CT_DoLog WARN "gcc configured for multilib, but none available"
> - fi
> - fi
> - fi
> -}
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/debug/300-gdb.sh
> --- a/scripts/build/debug/300-gdb.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/build/debug/300-gdb.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -181,11 +181,11 @@
> if [ "${CT_GDB_INSTALL_GDBINIT}" = "y" ]; then
> CT_DoLog EXTRA "Installing '.gdbinit' template"
> # See in scripts/build/internals.sh for why we do this
> - if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
> - gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" )
> + if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
> + gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" )
> else
> - gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
> - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/version.c" \
> + gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
> + "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/version.c" \
> )
> fi
> ${sed} -r \
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/internals.sh
> --- a/scripts/build/internals.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/build/internals.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -28,33 +28,35 @@
> CT_DoExecLog ALL "${CT_TARGET}-strip" ${strip_args} \
> "${CT_TARGET}/debug-root/usr/bin/gdbserver"
> fi
> - # We can not use the version in CT_CC_VERSION because
> - # of the Linaro stuff. So, harvest the version string
> - # directly from the gcc sources...
> - # All gcc 4.x seem to have the version in gcc/BASE-VER
> - # while version prior to 4.x have the version in gcc/version.c
> - # Of course, here is not the better place to do that...
> - if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
> - gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" )
> - else
> - gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
> - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/version.c" \
> - )
> + if [ "${CT_CC_gcc}" = "y" ]; then
> + # We can not use the version in CT_CC_GCC_VERSION because
> + # of the Linaro stuff. So, harvest the version string
> + # directly from the gcc sources...
> + # All gcc 4.x seem to have the version in gcc/BASE-VER
> + # while version prior to 4.x have the version in gcc/version.c
> + # Of course, here is not the better place to do that...
> + if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" ]; then
> + gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/BASE-VER" )
> + else
> + gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
> + "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/version.c" \
> + )
> + fi
> + for _t in "bin/${CT_TARGET}-"* \
> + "${CT_TARGET}/bin/"* \
> + "libexec/gcc/${CT_TARGET}/${gcc_version}/"* \
> + "libexec/gcc/${CT_TARGET}/${gcc_version}/install-tools/"* \
> + ; do
> + _type="$( file "${_t}" |cut -d ' ' -f 2- )"
> + case "${_type}" in
> + *script*executable*)
> + ;;
> + *executable*)
> + CT_DoExecLog ALL ${CT_HOST}-strip ${strip_args} "${_t}"
> + ;;
> + esac
> + done
> fi
> - for _t in "bin/${CT_TARGET}-"* \
> - "${CT_TARGET}/bin/"* \
> - "libexec/gcc/${CT_TARGET}/${gcc_version}/"* \
> - "libexec/gcc/${CT_TARGET}/${gcc_version}/install-tools/"* \
> - ; do
> - _type="$( file "${_t}" |cut -d ' ' -f 2- )"
> - case "${_type}" in
> - *script*executable*)
> - ;;
> - *executable*)
> - CT_DoExecLog ALL ${CT_HOST}-strip ${strip_args} "${_t}"
> - ;;
> - esac
> - done
> CT_Popd
> fi
>
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/build/test_suite/gcc.sh
> --- a/scripts/build/test_suite/gcc.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/build/test_suite/gcc.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -15,10 +15,10 @@
> CT_DoStep INFO "Installing GCC test suite"
>
> CT_DoExecLog ALL mkdir -p "${CT_TEST_SUITE_DIR}/gcc"
> - CT_DoExecLog ALL cp -av "${CT_LIB_DIR}/contrib/gcc-test-suite/default.cfg" \
> - "${CT_LIB_DIR}/contrib/gcc-test-suite/Makefile" \
> - "${CT_LIB_DIR}/contrib/gcc-test-suite/README" \
> - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/testsuite" \
> + CT_DoExecLog ALL cp -av "${CT_LIB_DIR}/contrib/gcc-test-suite/default.cfg" \
> + "${CT_LIB_DIR}/contrib/gcc-test-suite/Makefile" \
> + "${CT_LIB_DIR}/contrib/gcc-test-suite/README" \
> + "${CT_SRC_DIR}/gcc-${CT_CC_GCC_VERSION}/gcc/testsuite" \
> "${CT_TEST_SUITE_DIR}/gcc"
>
> CT_DoExecLog ALL sed -i -r -e "s/@@DG_TARGET@@/${CT_TARGET}/g;" \
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/crosstool-NG.sh.in
> --- a/scripts/crosstool-NG.sh.in Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/crosstool-NG.sh.in Mon Dec 02 21:51:09 2013 +0100
> @@ -140,7 +140,7 @@
> . "${CT_LIB_DIR}/scripts/build/companion_libs.sh"
> . "${CT_LIB_DIR}/scripts/build/binutils/${CT_BINUTILS}.sh"
> . "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
> -. "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh"
> +. "${CT_LIB_DIR}/scripts/build/cc.sh"
> . "${CT_LIB_DIR}/scripts/build/debug.sh"
> . "${CT_LIB_DIR}/scripts/build/test_suite.sh"
>
> @@ -162,8 +162,8 @@
> # Put user-supplied flags at the end, so that they take precedence.
> CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
> CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}"
> -CT_CC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
> -CT_CC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_EXTRA_CONFIG_ARRAY[@]}" )
> +CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
> +CT_CC_GCC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}" )
>
> # Compute the package version string
> CT_PKGVERSION="crosstool-NG ${CT_VERSION}${CT_TOOLCHAIN_PKGVERSION:+ - ${CT_TOOLCHAIN_PKGVERSION}}"
> @@ -545,8 +545,8 @@
> CT_EndStep
> fi
>
> - if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
> - CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_STATIC_LIBSTDCXX)"
> + if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
> + CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_GCC_STATIC_LIBSTDCXX)"
> CT_DoLog DEBUG "You may need to ensure that libstdc++.a is installed on your system"
> CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_HOST} ${CT_LDFLAGS_FOR_HOST} "${testc}" -static -lstdc++ -o "${gccout}"
> rm -f "${gccout}"
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/gen_in_frags.sh
> --- a/scripts/gen_in_frags.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/gen_in_frags.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -138,6 +138,9 @@
> _entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
> printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
> printf ' bool\n'
> + if "${grep}" -E '^## default' ${file} >/dev/null 2>&1; then
> + "${sed}" -r -e '/^## default ?/!d; s/^## default ?/ default /;' ${file} 2>/dev/null
> + fi
> printf ' prompt "%s"\n' "${entry}"
> "${sed}" -r -e '/^## depends on /!d; s/^## / /;' ${file} 2>/dev/null
> "${sed}" -r -e '/^## select /!d; s/^## / /;' ${file} 2>/dev/null
> diff -r 7e569a9cb5fd -r 65771b86df01 scripts/showSamples.sh
> --- a/scripts/showSamples.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/showSamples.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -76,7 +76,7 @@
> [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
> [ -z "${complibs}" ] || printf "\n"
> printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
> - printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
> + printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_GCC_VERSION} (C"
> [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
> [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
> [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
> @@ -121,7 +121,7 @@
> fi
> printf "| ${CT_BINUTILS_VERSION} "
> printf "| ''${CT_CC}'' "
> - printf "| ${CT_CC_VERSION} "
> + printf "| ${CT_CC_GCC_VERSION} "
> printf "| ''${CT_LIBC}'' |"
> if [ "${CT_LIBC}" != "none" ]; then
> printf " ${CT_LIBC_VERSION} "
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones
2013-12-02 20:54 ` [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones Yann Diorcet
2013-12-09 19:05 ` Ray Donnelly
@ 2013-12-09 22:06 ` Cody P Schafer
2013-12-10 9:26 ` Yann Diorcet
1 sibling, 1 reply; 7+ messages in thread
From: Cody P Schafer @ 2013-12-09 22:06 UTC (permalink / raw)
To: Yann Diorcet, Yann E. MORIN; +Cc: crossgcc
> --- a/scripts/showSamples.sh Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/showSamples.sh Mon Dec 02 21:51:09 2013 +0100
> @@ -76,7 +76,7 @@
> [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
> [ -z "${complibs}" ] || printf "\n"
> printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
> - printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
> + printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_GCC_VERSION} (C"
> [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
> [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
> [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
> @@ -121,7 +121,7 @@
> fi
> printf "| ${CT_BINUTILS_VERSION} "
> printf "| ''${CT_CC}'' "
> - printf "| ${CT_CC_VERSION} "
> + printf "| ${CT_CC_GCC_VERSION} "
> printf "| ''${CT_LIBC}'' |"
> if [ "${CT_LIBC}" != "none" ]; then
> printf " ${CT_LIBC_VERSION} "
>
> --
From this it looks like
- there isn't a way to get the NAME-VERSION of the configured C compiler
- You'll be using the GCC version number even if CT_CC isn't gcc.
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones
2013-12-09 22:06 ` Cody P Schafer
@ 2013-12-10 9:26 ` Yann Diorcet
0 siblings, 0 replies; 7+ messages in thread
From: Yann Diorcet @ 2013-12-10 9:26 UTC (permalink / raw)
To: Cody P Schafer; +Cc: Yann E. MORIN, crossgcc
Hi,
2013/12/9 Cody P Schafer <dev@codyps.com>:
>
>> --- a/scripts/showSamples.sh Sat Nov 16 18:14:45 2013 +0100
>> +++ b/scripts/showSamples.sh Mon Dec 02 21:51:09 2013 +0100
>> @@ -76,7 +76,7 @@
>> [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf
>> " libelf-%s" "${CT_LIBELF_VERSION}"
>> [ -z "${complibs}" ] || printf "\n"
>> printf " %-*s : %s\n" ${width} "binutils"
>> "binutils-${CT_BINUTILS_VERSION}"
>> - printf " %-*s : %s" ${width} "C compiler"
>> "${CT_CC}-${CT_CC_VERSION} (C"
>> + printf " %-*s : %s" ${width} "C compiler"
>> "${CT_CC}-${CT_CC_GCC_VERSION} (C"
>> [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
>> [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
>> [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
>> @@ -121,7 +121,7 @@
>> fi
>> printf "| ${CT_BINUTILS_VERSION} "
>> printf "| ''${CT_CC}'' "
>> - printf "| ${CT_CC_VERSION} "
>> + printf "| ${CT_CC_GCC_VERSION} "
>> printf "| ''${CT_LIBC}'' |"
>> if [ "${CT_LIBC}" != "none" ]; then
>> printf " ${CT_LIBC_VERSION} "
>>
>> --
>
>
> From this it looks like
> - there isn't a way to get the NAME-VERSION of the configured C compiler
There is maybe more that C compiler selected btw.
> - You'll be using the GCC version number even if CT_CC isn't gcc.
>
Indeed not clean. How we can improve that?
--
Diorcet Yann
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0 of 1] Split gcc from cc
@ 2013-12-11 20:42 Yann Diorcet
0 siblings, 0 replies; 7+ messages in thread
From: Yann Diorcet @ 2013-12-11 20:42 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: crossgcc
The goal of this patch is to split gcc configurations and functions from cc ones, in order to prepare the ground for including other compilers (including a listing of compilers in samples)
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0 of 1] Split gcc from cc
@ 2013-07-09 22:58 Yann Diorcet
0 siblings, 0 replies; 7+ messages in thread
From: Yann Diorcet @ 2013-07-09 22:58 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: crossgcc
The goal of this patch is to split gcc configurations and functions from cc ones, in order to prepare the ground for including other compilers
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-12-11 20:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-02 20:52 [PATCH 0 of 1] Split gcc from cc Yann Diorcet
2013-12-02 20:54 ` [PATCH 1 of 1] cc/gcc: Split gcc configurations and functions from cc ones Yann Diorcet
2013-12-09 19:05 ` Ray Donnelly
2013-12-09 22:06 ` Cody P Schafer
2013-12-10 9:26 ` Yann Diorcet
-- strict thread matches above, loose matches on Subject: below --
2013-12-11 20:42 [PATCH 0 of 1] Split gcc from cc Yann Diorcet
2013-07-09 22:58 Yann Diorcet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).