Index: ct-ng.trunk/config/cc/gcc.in =================================================================== --- ct-ng.trunk/config/cc/gcc.in (revision 1443) +++ ct-ng.trunk/config/cc/gcc.in (working copy) @@ -112,10 +112,39 @@ depends on EXPERIMENTAL select CC_GCC_4_3_or_later +config CC_V_4_4_0 + bool + prompt "4.4.0 snapshot" + depends on EXPERIMENTAL + select CC_GCC_4_3_or_later + select CC_GCC_4_4_snapshot + # CT_INSERT_VERSION_ABOVE # Don't remove above line! endchoice +config CC_GCC_4_3_or_later + bool + default n + select GMP_MPFR + +config CC_GCC_4_4_snapshot + bool + default n + +config CC_GCC_4_4_snapshot_date + string + prompt "Snapshot date" + depends on CC_GCC_4_4_snapshot + help + Enter the snapshot date in the form YYYYMMDD. + Snapshots are made every friday, at around 22:30 GMT+1, + so look at your calendar to find a suitable date. + + Also, you may have to adapt the patches/gcc/4.4-* patch + directory to fit your selected snapshot. Curently, snapshot + dated 20090320 has the appropriate patches in place. YMMV. + config CC_VERSION string default "3.2.3" if CC_V_3_2_3 @@ -138,14 +167,10 @@ default "4.3.1" if CC_V_4_3_1 default "4.3.2" if CC_V_4_3_2 default "4.3.3" if CC_V_4_3_3 + default "4.4-" if CC_V_4_4_0 # CT_INSERT_VERSION_STRING_ABOVE # Don't remove above line! -config CC_GCC_4_3_or_later - bool - default n - select GMP_MPFR - config CC_CXA_ATEXIT bool prompt "Use __cxa_atexit" Index: ct-ng.trunk/scripts/build/cc/gcc.sh =================================================================== --- ct-ng.trunk/scripts/build/cc/gcc.sh (revision 1443) +++ ct-ng.trunk/scripts/build/cc/gcc.sh (working copy) @@ -4,15 +4,19 @@ # Download gcc do_cc_get() { + local version="${CT_CC_VERSION}${CT_CC_GCC_4_4_snapshot_date}" + # Ah! gcc folks are kind of 'different': they store the tarballs in # subdirectories of the same name! That's because gcc is such /crap/ that # it is such /big/ that it needs being splitted for distribution! Sad. :-( # 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! You bastard! - 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} + CT_GetFile "gcc-${version}" \ + {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${version}} \ + ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${version} \ + ftp://ftp.uvsq.fr/pub/gcc/snapshots/${version} + # 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 @@ -25,13 +29,16 @@ # Extract gcc do_cc_extract() { - CT_Extract "gcc-${CT_CC_VERSION}" - CT_Patch "gcc-${CT_CC_VERSION}" + local version="${CT_CC_VERSION}${CT_CC_GCC_4_4_snapshot_date}" + + CT_Extract "gcc-${version}" + CT_Patch "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_VERSION}/ecj.jar" \ + if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" \ + -a ! -f "${CT_SRC_DIR}/gcc-${version}/ecj.jar" \ ]; then - CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar" + CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${version}/ecj.jar" fi } @@ -83,6 +90,7 @@ local core_prefix_dir local extra_config local lang_opt + local version="${CT_CC_VERSION}${CT_CC_GCC_4_4_snapshot_date}" eval $1 eval $2 @@ -142,7 +150,7 @@ CC_FOR_BUILD="${CT_BUILD}-gcc" \ CFLAGS="${CT_CFLAGS_FOR_HOST}" \ CT_DoExecLog ALL \ - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \ + "${CT_SRC_DIR}/gcc-${version}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ --target=${CT_TARGET} \ @@ -174,7 +182,7 @@ # 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 + if [ ! -f "${CT_SRC_DIR}/gcc-${version}/gcc/BASE-VER" ]; then CT_DoExecLog ALL make configure-libiberty CT_DoExecLog ALL make ${PARALLELMFLAGS} -C libiberty libiberty.a CT_DoExecLog ALL make configure-gcc configure-libcpp @@ -184,7 +192,7 @@ CT_DoExecLog ALL make ${PARALLELMFLAGS} 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 + if [ -d "${CT_SRC_DIR}/gcc-${version}/libdecnumber" ]; then CT_DoExecLog ALL make configure-libdecnumber CT_DoExecLog ALL make ${PARALLELMFLAGS} -C libdecnumber libdecnumber.a fi @@ -226,6 +234,8 @@ #------------------------------------------------------------------------------ # Build final gcc do_cc() { + local version="${CT_CC_VERSION}${CT_CC_GCC_4_4_snapshot_date}" + # If building for bare metal, nothing to be done here, the static core conpiler is enough! [ "${CT_BARE_METAL}" = "y" ] && return 0 @@ -282,7 +292,7 @@ CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \ CT_DoExecLog ALL \ - "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure" \ + "${CT_SRC_DIR}/gcc-${version}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ --target=${CT_TARGET} \