summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.sh45
-rw-r--r--.travis.yml9
-rw-r--r--Makefile.in1
-rw-r--r--config/cc/gcc.in.210
-rw-r--r--config/global/logging.in7
-rw-r--r--configure.ac10
-rw-r--r--samples/bfin-unknown-linux-uclibc/crosstool.config3
-rw-r--r--scripts/build/cc/100-gcc.sh26
8 files changed, 87 insertions, 24 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 93765c7..b6570e5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,13 +39,14 @@ env:
- CT_SAMPLE=armeb-unknown-eabi
- CT_SAMPLE=arm-unknown-linux-gnueabi
- CT_SAMPLE=armeb-unknown-linux-gnueabi
+ - CT_SAMPLE=bfin-unknown-linux-uclibc
# 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/samples/bfin-unknown-linux-uclibc/crosstool.config b/samples/bfin-unknown-linux-uclibc/crosstool.config
index b7ae4e6..a8b8b51 100644
--- a/samples/bfin-unknown-linux-uclibc/crosstool.config
+++ b/samples/bfin-unknown-linux-uclibc/crosstool.config
@@ -4,11 +4,12 @@ CT_LOG_EXTRA=y
CT_ARCH_blackfin=y
CT_KERNEL_linux=y
CT_ARCH_BINFMT_FDPIC=y
+CT_BINUTILS_V_2_22=y
CT_BINUTILS_PLUGINS=y
CT_LIBC_uClibc=y
CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
CT_THREADS_LT=y
-CT_CC_V_4_5_3=y
+CT_CC_GCC_V_4_5_3=y
# CT_CC_GCC_USE_GRAPHITE is not set
# CT_CC_GCC_USE_LTO is not set
CT_GMP_V_4_3_2=y
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