From f7d6e53e2b40bd70fdfcd6178ea6f57c64fabf9f Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Fri, 13 Nov 2015 18:47:13 -0800 Subject: Add update-samples target. Same as check-samples, but actually updates the crosstool.config. Signed-off-by: Alexey Neyman diff --git a/samples/samples.mk b/samples/samples.mk index c87e5fc..2d9a287 100644 --- a/samples/samples.mk +++ b/samples/samples.mk @@ -11,6 +11,10 @@ CT_SAMPLES := $(shell echo $(sort $(CT_TOP_SAMPLES) $(CT_LIB_SAMPLES)) \ |$(sed) -r -e 's/(.*),(.*)/\2,\1/;' \ ) +# If set to yes on command line, updates the sample configuration +# instead of just dumping the diff. +CT_UPDATE_SAMPLES := no + # ---------------------------------------------------------- # This part deals with the samples help entries @@ -81,21 +85,29 @@ list-samples-short: FORCE # Check one sample PHONY += $(patsubst %,check-%,$(CT_SAMPLES)) -$(patsubst %,check-%,$(CT_SAMPLES)): config_files +$(patsubst %,check-%,$(CT_SAMPLES)): check-%: config_files @export KCONFIG_CONFIG=$$(pwd)/.config.sample; \ - CT_NG_SAMPLE=$(call sample_dir,$(patsubst check-%,%,$(@)))/crosstool.config; \ - $(CONF) --defconfig=$${CT_NG_SAMPLE} $(KCONFIG_TOP) >/dev/null; \ - $(CONF) --savedefconfig=$$(pwd)/.defconfig $(KCONFIG_TOP) >/dev/null; \ + CT_NG_SAMPLE=$(call sample_dir,$*)/crosstool.config; \ + $(CONF) -s --defconfig=$${CT_NG_SAMPLE} $(KCONFIG_TOP) &>/dev/null; \ + $(CONF) -s --savedefconfig=$$(pwd)/.defconfig $(KCONFIG_TOP) &>/dev/null; \ old_sha1=$$( sha1sum "$${CT_NG_SAMPLE}" |cut -d ' ' -f 1 ); \ new_sha1=$$( sha1sum .defconfig |cut -d ' ' -f 1 ); \ if [ $${old_sha1} != $${new_sha1} ]; then \ - echo "$(patsubst check-%,%,$(@)) needs update:"; \ - diff -du0 "$${CT_NG_SAMPLE}" .defconfig |tail -n +4; \ + if [ $(CT_UPDATE_SAMPLES) = yes ]; then \ + echo "Updating $*"; \ + mv .defconfig "$${CT_NG_SAMPLE}"; \ + else \ + echo "$* needs update:"; \ + diff -du0 "$${CT_NG_SAMPLE}" .defconfig |tail -n +4; \ + fi; \ fi @rm -f .config.sample* .defconfig check-samples: $(patsubst %,check-%,$(CT_SAMPLES)) +update-samples: + $(SILENT)$(MAKE) -rf $(CT_NG) check-samples CT_UPDATE_SAMPLES=yes + PHONY += wiki-samples wiki-samples: wiki-samples-pre $(patsubst %,wiki-%,$(CT_SAMPLES)) wiki-samples-post -- cgit v0.10.2-6-g49f6 From 8a07253fa076dcfff1738600743d5c3b4d4f4131 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Fri, 13 Nov 2015 18:50:52 -0800 Subject: Use $* to simplify rules in samples.mk. Signed-off-by: Alexey Neyman diff --git a/samples/samples.mk b/samples/samples.mk index 2d9a287..d76a93f 100644 --- a/samples/samples.mk +++ b/samples/samples.mk @@ -46,11 +46,11 @@ show-config: .config # Prints the details of a sample PHONY += $(patsubst %,show-%,$(CT_SAMPLES)) -$(patsubst %,show-%,$(CT_SAMPLES)): config_files +$(patsubst %,show-%,$(CT_SAMPLES)): show-%: config_files @KCONFIG_CONFIG=$$(pwd)/.config.sample \ - $(CONF) --defconfig=$(call sample_dir,$(patsubst show-%,%,$(@)))/crosstool.config \ + $(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \ $(KCONFIG_TOP) >/dev/null - @$(CT_LIB_DIR)/scripts/showSamples.sh -v $(patsubst show-%,%,$(@)) + @$(CT_LIB_DIR)/scripts/showSamples.sh -v $* @rm -f .config.sample # Prints the details of all samples @@ -70,11 +70,11 @@ list-samples-pre: FORCE @echo 'Status Sample name' PHONY += $(patsubst %,list-%,$(CT_SAMPLES)) -$(patsubst %,list-%,$(CT_SAMPLES)): config_files +$(patsubst %,list-%,$(CT_SAMPLES)): list-%: config_files @KCONFIG_CONFIG=$$(pwd)/.config.sample \ - $(CONF) --defconfig=$(call sample_dir,$(patsubst list-%,%,$(@)))/crosstool.config \ + $(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \ $(KCONFIG_TOP) >/dev/null - @$(CT_LIB_DIR)/scripts/showSamples.sh $(patsubst list-%,%,$(@)) + @$(CT_LIB_DIR)/scripts/showSamples.sh $* @rm -f .config.sample PHONY += list-samples-short @@ -117,11 +117,11 @@ wiki-samples-pre: FORCE wiki-samples-post: FORCE $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -W $(CT_SAMPLES) -$(patsubst %,wiki-%,$(CT_SAMPLES)): config_files +$(patsubst %,wiki-%,$(CT_SAMPLES)): wiki-%: config_files $(SILENT)KCONFIG_CONFIG=$$(pwd)/.config.sample \ - $(CONF) --defconfig=$(call sample_dir,$(patsubst wiki-%,%,$(@)))/crosstool.config \ + $(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \ $(KCONFIG_TOP) >/dev/null - $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -w $(patsubst wiki-%,%,$(@)) + $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -w $* $(SILENT)rm -f .config.sample # ---------------------------------------------------------- -- cgit v0.10.2-6-g49f6 From bb704f532af37086f7a1f2d4a4a3386941cbdb85 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Nov 2015 09:24:41 -0800 Subject: Allow --with-cpu/--with-tune for !arm. The configure error mentioned in the commits that disable --with-arch/--with-tune when --with-cpu is specified is specific to ARM builds. For other architectures, it makes sense (hey, it even makes sense for ARM - read 'info gcc'! - it is just a shortcoming of ARM build, apparently). Thus, add an arch setting ARCH_EXCLUSIVE_WITH_CPU (currently, set only for ARM) that will trigger current behavior. Permit combinations of --with-arch/cpu/tune for other arches. Signed-off-by: Alexey Neyman diff --git a/config/arch/arm.in b/config/arch/arm.in index 5d40e37..5dbc717 100644 --- a/config/arch/arm.in +++ b/config/arch/arm.in @@ -9,6 +9,7 @@ ## select ARCH_DEFAULT_LE ## select ARCH_SUPPORTS_WITH_ARCH ## select ARCH_SUPPORTS_WITH_CPU +## select ARCH_EXCLUSIVE_WITH_CPU ## select ARCH_SUPPORTS_WITH_TUNE ## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32 ## select ARCH_SUPPORTS_WITH_FPU if ARCH_32 diff --git a/config/target.in b/config/target.in index 31d2dc1..8cbaabc 100644 --- a/config/target.in +++ b/config/target.in @@ -210,11 +210,14 @@ config ARCH_SUPPORTS_WITH_FPU config ARCH_SUPPORTS_SOFTFP bool +config ARCH_EXCLUSIVE_WITH_CPU + bool + config ARCH_ARCH string prompt "Architecture level" depends on ARCH_SUPPORTS_WITH_ARCH - depends on ARCH_CPU = "" + depends on !ARCH_EXCLUSIVE_WITH_CPU || ARCH_CPU = "" default "" help GCC uses this name to determine what kind of instructions it can emit @@ -271,7 +274,7 @@ config ARCH_TUNE string prompt "Tune for CPU" depends on ARCH_SUPPORTS_WITH_TUNE - depends on ARCH_CPU = "" + depends on !ARCH_EXCLUSIVE_WITH_CPU || ARCH_CPU = "" default "" help This option is very similar to the ARCH_CPU option (above), except -- cgit v0.10.2-6-g49f6 From 379331986d717fb90e50ccfd147db1c88443544b Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Nov 2015 09:47:01 -0800 Subject: More trivial sample updates. Drop ARCH_ARCH/ARCH_TUNE where it is overridden by ARCH_CPU. Also, same updates as in the previous batch for architectures with !ARCH_EXCLUSIVE_WITH_CPU (i.e. where there is no need to drop ARCH_CPU/ARCH_TUNE). Signed-off-by: Alexey Neyman diff --git a/samples/arm-cortex_a15-linux-gnueabi/crosstool.config b/samples/arm-cortex_a15-linux-gnueabi/crosstool.config index 782d598..b625116 100644 --- a/samples/arm-cortex_a15-linux-gnueabi/crosstool.config +++ b/samples/arm-cortex_a15-linux-gnueabi/crosstool.config @@ -2,7 +2,6 @@ CT_LOCAL_TARBALLS_DIR="${HOME}/src" CT_SAVE_TARBALLS=y CT_LOG_EXTRA=y CT_ARCH_CPU="cortex-a15" -CT_ARCH_TUNE="cortex-a15" CT_ARCH_FPU="neon-vfpv4" CT_ARCH_FLOAT_HW=y CT_ARCH_arm=y @@ -12,7 +11,6 @@ CT_BINUTILS_LINKER_LD_GOLD=y CT_BINUTILS_GOLD_THREADS=y CT_BINUTILS_LD_WRAPPER=y CT_BINUTILS_PLUGINS=y -CT_LIBC_glibc=y CT_CC_GCC_SHOW_LINARO=y CT_CC_LANG_CXX=y CT_DEBUG_dmalloc=y -- cgit v0.10.2-6-g49f6 From 10c0f278e9573ee188bcdf3afc7fca8a9ff2e72f Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Nov 2015 14:34:51 -0800 Subject: Switch to using EV67 in alphaev67-*. It does not make much sense to have alphaev67 example use -mcpu=ev67, does it? Signed-off-by: Alexey Neyman diff --git a/samples/alphaev67-unknown-linux-gnu/crosstool.config b/samples/alphaev67-unknown-linux-gnu/crosstool.config index 53b038a..f6d5124 100644 --- a/samples/alphaev67-unknown-linux-gnu/crosstool.config +++ b/samples/alphaev67-unknown-linux-gnu/crosstool.config @@ -1,7 +1,7 @@ CT_LOCAL_TARBALLS_DIR="${HOME}/src" CT_SAVE_TARBALLS=y CT_LOG_EXTRA=y -CT_ARCH_CPU="ev56" +CT_ARCH_CPU="ev67" CT_ARCH_ALPHA_EV67=y CT_KERNEL_linux=y CT_BINUTILS_PLUGINS=y -- cgit v0.10.2-6-g49f6 From 57dc5e69d2b83bd15673e59d5cf5c159c8492a6a Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Nov 2015 15:13:57 -0800 Subject: Remove --disable-libsanitizer. It is now added automatically if CT_GCC_SANITIZER is not set - and that option depends on !UCLIBC. Signed-off-by: Alexey Neyman diff --git a/samples/x86_64-unknown-linux-uclibc/crosstool.config b/samples/x86_64-unknown-linux-uclibc/crosstool.config index f20362d..6f724e6 100644 --- a/samples/x86_64-unknown-linux-uclibc/crosstool.config +++ b/samples/x86_64-unknown-linux-uclibc/crosstool.config @@ -11,7 +11,6 @@ CT_BINUTILS_LD_WRAPPER=y CT_BINUTILS_PLUGINS=y CT_LIBC_uClibc=y CT_LIBC_UCLIBC_WCHAR=y -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--disable-libsanitizer" CT_CC_LANG_CXX=y CT_DEBUG_dmalloc=y CT_DEBUG_duma=y -- cgit v0.10.2-6-g49f6 From 2541bd0b118f8fee6d200910e9c9211dd732f207 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Nov 2015 15:18:35 -0800 Subject: Remove redundant configure options. -mcpu= and -msoft-float are added due to ARCH_* flags, and correctly passed down to libstdc build. Signed-off-by: Alexey Neyman diff --git a/samples/powerpc-860-linux-gnu/crosstool.config b/samples/powerpc-860-linux-gnu/crosstool.config index 9475f5a..aa1625e 100644 --- a/samples/powerpc-860-linux-gnu/crosstool.config +++ b/samples/powerpc-860-linux-gnu/crosstool.config @@ -8,7 +8,6 @@ CT_TARGET_VENDOR="860" CT_KERNEL_linux=y CT_BINUTILS_PLUGINS=y CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY="--without-fp" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--with-cpu=860 --enable-cxx-flags=-mcpu=860 --with-float=soft --enable-cxx-flags=-msoft-float" CT_CC_LANG_CXX=y CT_DEBUG_gdb=y # CT_GDB_CROSS_PYTHON is not set -- cgit v0.10.2-6-g49f6