diff options
-rw-r--r-- | .travis.sh | 45 | ||||
-rw-r--r-- | .travis.yml | 8 | ||||
-rw-r--r-- | Makefile.in | 1 | ||||
-rw-r--r-- | config/cc/gcc.in.2 | 10 | ||||
-rw-r--r-- | config/global/logging.in | 7 | ||||
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | scripts/build/cc/100-gcc.sh | 26 |
7 files changed, 84 insertions, 23 deletions
diff --git a/.travis.sh b/.travis.sh new file mode 100644 index 0000000..90a439b --- /dev/null +++ b/.travis.sh @@ -0,0 +1,45 @@ +# Add current directory to PATH +export PATH="$(pwd):$PATH" + +# Manage the travis build +ct-ng_travis_build() +{ + # Override the log behaviour + sed -i -e 's/^.*\(CT_LOG_ERROR\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOG_WARN\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOG_INFO\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOG_EXTRA\).*$/\1=y/' \ + -e 's/^.*\(CT_LOG_ALL\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOG_DEBUG\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOG_LEVEL_MAX\).*$/\1="EXTRA"/' \ + -e 's/^.*\(CT_LOG_PROGRESS_BAR\).*$/# \1 is not set/' \ + -e 's/^.*\(CT_LOCAL_TARBALLS_DIR\).*$/\1="${HOME}\/src"/' \ + -e 's/^.*\(CT_SAVE_TARBALLS\).*$/\1=y/' \ + .config + + # Build the sample + ct-ng build.2 & + local build_pid=$! + + # Start a runner task to print a "still running" line every 5 minutes + # to avoid travis to think that the build is stuck + { + while true + do + sleep 300 + printf "Crosstool-NG is still running ...\r" + done + } & + local runner_pid=$! + + # Wait for the build to finish and get the result + wait $build_pid 2>/dev/null + local result=$? + + # Stop the runner task + kill $runner_pid + wait $runner_pid 2>/dev/null + + # Return the result + return $result +} diff --git a/.travis.yml b/.travis.yml index 0476cbd..b6570e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,10 +43,10 @@ env: # Building the standard samples script: - - ./ct-ng $CT_SAMPLE - - CT_LOG_DEBUG=y CT_LOG_LEVEL_MAX="DEBUG" ./ct-ng build.2 + - . ./.travis.sh # Load the travis environment + - ct-ng $CT_SAMPLE # Configure the build + - ct-ng_travis_build # Build the sample # On failure displaying the last lines of the log file after_failure: - - tail -n 200 build.log - + - tail -n 1000 build.log diff --git a/Makefile.in b/Makefile.in index c7494f5..895983b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -46,7 +46,6 @@ all: Makefile build # Stuff found by ./configure export DATE := @DATE@ export LOCAL := @enable_local@ -export AUTOMATED := @enable_automated@ export PROG_SED := @program_transform_name@ export PACKAGE_TARNAME := @PACKAGE_TARNAME@ export VERSION := @PACKAGE_VERSION@ diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index cbad638..73b6a2f 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -37,6 +37,16 @@ config CC_GCC_EXTRA_CONFIG_ARRAY 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_GCC_EXTRA_ENV_ARRAY + string + prompt "Extra env variables to set for make" + default "" + help + Used to add specific env variables on the make command line for the + gcc build (eg. INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0') + + Leave blank if you don't know better. + config STATIC_TOOLCHAIN select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later diff --git a/config/global/logging.in b/config/global/logging.in index 5fe794d..0c77e88 100644 --- a/config/global/logging.in +++ b/config/global/logging.in @@ -74,7 +74,7 @@ config LOG_PROGRESS_BAR bool prompt "Progress bar" default y - depends on ! LOG_ALL && ! LOG_DEBUG && ! AUTOMATED_BUILD + depends on ! LOG_ALL && ! LOG_DEBUG help If you say 'y' here, you'll be able to see the elapsed time. @@ -104,8 +104,3 @@ config LOG_FILE_COMPRESS depends on LOG_TO_FILE help Compress the log file once the toolchain is successfully built. - -config AUTOMATED_BUILD - bool - default y - depends on CONFIGURE_has_automated diff --git a/configure.ac b/configure.ac index 5670a03..adde2ab 100644 --- a/configure.ac +++ b/configure.ac @@ -67,16 +67,6 @@ AC_ARG_ENABLE( [do not install, and use current directory])]) AC_SUBST([enable_local], [${enable_local:-no}]) AC_ARG_ENABLE( - [automated], - [AS_HELP_STRING( - [--enable-automated], - [Tell ct-ng that this is an automated build])], - [if test "x$automated" = "x" -o "x$automated" = "xyes"; then - automated=y - fi]) -AC_SUBST([enable_automated], [${enable_automated:-no}]) -ACX_SET_KCONFIG_OPTION([automated]) -AC_ARG_ENABLE( [shared], [AS_HELP_STRING( [--enable-shared], diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 72534fe..2001ff9 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -194,6 +194,7 @@ do_gcc_core_backend() { local -a core_LDFLAGS local -a core_targets local -a extra_user_config + local -a extra_user_env local arg for arg in "$@"; do @@ -362,6 +363,21 @@ do_gcc_core_backend() { extra_config+=(--disable-libgomp) extra_config+=(--disable-libmudflap) + 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 + [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls") [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ] && extra_config+=("--disable-libstdcxx-pch") @@ -376,6 +392,10 @@ do_gcc_core_backend() { extra_config+=("--disable-multilib") fi + if [ "x${CT_CC_GCC_EXTRA_ENV_ARRAY}" != "x" ]; then + extra_user_env=( "${CT_CC_GCC_EXTRA_ENV_ARRAY[@]}" ) + 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) @@ -455,7 +475,7 @@ do_gcc_core_backend() { repair_cc="" fi - CT_DoExecLog ALL make ${JOBSFLAGS} -C gcc ${libgcc_rule} \ + CT_DoExecLog ALL make ${JOBSFLAGS} ${extra_user_env} -C gcc ${libgcc_rule} \ ${repair_cc} sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule} else # build_libgcc @@ -474,7 +494,7 @@ do_gcc_core_backend() { fi CT_DoLog EXTRA "Building gcc" - CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}" + CT_DoExecLog ALL make ${JOBSFLAGS} ${extra_user_env} "${core_targets[@]/#/all-}" CT_DoLog EXTRA "Installing gcc" CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}" @@ -752,8 +772,10 @@ do_gcc_backend() { 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 |