All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support
@ 2015-06-26 17:33 Guido Martínez
  2015-06-26 17:33 ` [Buildroot] [PATCH 1/4] arm: update processor types Guido Martínez
                   ` (5 more replies)
  0 siblings, 6 replies; 27+ messages in thread
From: Guido Martínez @ 2015-06-26 17:33 UTC (permalink / raw)
  To: buildroot

Hi all,

this patchset introduces support for the M3 processors. These processors
don't have an MMU and they don't support the regular ARM mode (only
Thumb and Thumb2).

The OSELAS 2014.12.0 toolchain is added, along with a few patches to
make it usable within BR since it has some quirks (patches #2 and #3).

I'm planning to send a defconfig for the CIAA board[1] once it's
mainlined in Linux. But, for now, this config can generate a proper
rootfs:
  BR2_arm=y
  BR2_cortex_m3=y
  BR2_TOOLCHAIN_EXTERNAL=y

The changes from v2 are:
 - Patch #1 adapted to new MMU/BINFMT configs

 - INFLATE.deb patch dropped as it didn't work for every .deb.

 - elf2flt patch dropped, as it didn't make sense and it's not needed
   for now. We encountered some problems building a custom U-boot and
   it's likely that the problem is there.

Any comments and testing welcome!

[1] http://www.proyecto-ciaa.com.ar/

Guido Mart?nez (4):
  arm: update processor types
  toolchain: allow for stupid toolchains
  toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
  toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain

 arch/Config.in.arm                                 |  5 +++
 package/busybox/busybox.mk                         |  3 ++
 toolchain/Config.in                                |  3 ++
 toolchain/helpers.mk                               |  6 ++--
 toolchain/toolchain-external/Config.in             | 42 ++++++++++++++++++++++
 .../toolchain-external/toolchain-external.hash     |  4 +++
 toolchain/toolchain-external/toolchain-external.mk | 10 ++++++
 7 files changed, 71 insertions(+), 2 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 1/4] arm: update processor types
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
@ 2015-06-26 17:33 ` Guido Martínez
  2015-06-27 10:24   ` Yann E. MORIN
  2015-06-26 17:33 ` [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains Guido Martínez
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 27+ messages in thread
From: Guido Martínez @ 2015-06-26 17:33 UTC (permalink / raw)
  To: buildroot

Add the Cortex M3 variant. These microcontrollers don't support regular
ARM instructions and don't have an MMU.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 arch/Config.in.arm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index a2f00d2..9aa23a3 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -146,6 +146,10 @@ config BR2_cortex_a15
 	select BR2_ARM_CPU_HAS_THUMB2
 	select BR2_ARM_CPU_ARMV7A
 	select BR2_ARCH_HAS_MMU_OPTIONAL
+config BR2_cortex_m3
+	bool "cortex-M3"
+	select BR2_ARM_CPU_HAS_THUMB
+	select BR2_ARM_CPU_HAS_THUMB2
 config BR2_fa526
 	bool "fa526/626"
 	select BR2_ARM_CPU_HAS_ARM
@@ -408,6 +412,7 @@ config BR2_GCC_TARGET_CPU
 	default "cortex-a9"	if BR2_cortex_a9
 	default "cortex-a12"	if BR2_cortex_a12
 	default "cortex-a15"	if BR2_cortex_a15
+	default "cortex-m3"	if BR2_cortex_m3
 	default "fa526"		if BR2_fa526
 	default "marvell-pj4"	if BR2_pj4
 	default "strongarm"	if BR2_strongarm
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
  2015-06-26 17:33 ` [Buildroot] [PATCH 1/4] arm: update processor types Guido Martínez
@ 2015-06-26 17:33 ` Guido Martínez
  2015-06-27 10:28   ` Yann E. MORIN
  2015-06-26 17:33 ` [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 27+ messages in thread
From: Guido Martínez @ 2015-06-26 17:33 UTC (permalink / raw)
  To: buildroot

check_arm_abi builds a test C file to check that the toolchain is
working correctly, with the output redirected to /dev/null.

However, some toolchains (OSELAS 2014.12.0, for instance) foolishly
append ".gdb" to the output filename for an intermediate file, causing
an attempt to write to /dev/null.gdb, which obviously fails.

Fix this by adding changing the output to a temporary file, which is
later removed along with any other "suffixed" files.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/helpers.mk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 30eb065..0dc1864 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -308,12 +308,14 @@ check_arm_abi = \
 		echo "External toolchain uses the unsuported OABI" ; \
 		exit 1 ; \
 	fi ; \
-	if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o /dev/null - ; then \
+	if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o $(BUILD_DIR)/.br-toolchain-test.tmp - ; then \
+		rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*; \
 		abistr_$(BR2_ARM_EABI)='EABI'; \
 		abistr_$(BR2_ARM_EABIHF)='EABIhf'; \
 		echo "Incorrect ABI setting: $${abistr_y} selected, but toolchain is incompatible"; \
 		exit 1 ; \
-	fi
+	fi ; \
+	rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
 
 #
 # Check that the external toolchain supports C++
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
  2015-06-26 17:33 ` [Buildroot] [PATCH 1/4] arm: update processor types Guido Martínez
  2015-06-26 17:33 ` [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains Guido Martínez
@ 2015-06-26 17:33 ` Guido Martínez
  2015-06-27 10:39   ` Yann E. MORIN
  2015-06-26 17:33 ` [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 27+ messages in thread
From: Guido Martínez @ 2015-06-26 17:33 UTC (permalink / raw)
  To: buildroot

Add a Kconfig option specifying if the toolchain supports name resolving
(or at least has stubs for it) so we can disable packages that depend on
that (or they would fail to link). For now, only disable the 'nslookup'
tool from BusyBox if there's no resolver support.

For now, every toolchain supports name resolving.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 package/busybox/busybox.mk             |  3 +++
 toolchain/Config.in                    |  3 +++
 toolchain/toolchain-external/Config.in | 29 +++++++++++++++++++++++++++++
 3 files changed, 35 insertions(+)

diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index 090e174..f4e086e 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -156,6 +156,9 @@ endif
 # full-blown versions of apps installed by other packages with sym/hard links.
 define BUSYBOX_NOCLOBBER_INSTALL
 	$(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh
+	$(if $(BR2_TOOLCHAIN_HAS_RESOLVER),,
+		$(call KCONFIG_DISABLE_OPT,CONFIG_NSLOOKUP,$(@D)/.config)
+	)
 endef
 
 define BUSYBOX_KCONFIG_FIXUP_CMDS
diff --git a/toolchain/Config.in b/toolchain/Config.in
index a851ce4..7e66de0 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -20,6 +20,9 @@ config BR2_TOOLCHAIN_USES_GLIBC
 config BR2_TOOLCHAIN_USES_UCLIBC
 	bool
 
+config BR2_TOOLCHAIN_HAS_RESOLVER
+	bool
+
 config BR2_TOOLCHAIN_USES_MUSL
 	bool
 	select BR2_USE_WCHAR
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index e70989e..ec2d1a5 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -18,6 +18,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Linaro toolchain for the ARM architecture. It uses Linaro
 	  GCC 2014.09 (based on gcc 4.9), Linaro GDB 2013.10 (based on
@@ -44,6 +45,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Linaro toolchain for the ARM big endian architecture. It
 	  uses Linaro GCC 2014.09 (based on gcc 4.9), Linaro GDB
@@ -69,6 +71,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the ARM architecture, from
 	  Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc
@@ -98,6 +101,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201311
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the ARM architecture, from
 	  Mentor Graphics. It uses gcc 4.8.1, binutils 2.23.52, glibc
@@ -126,6 +130,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the ARM architecture, from
 	  Mentor Graphics. It uses gcc 4.7.3, binutils 2.23.52, glibc
@@ -159,6 +164,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	# kernel headers: 2.6.31
 	help
 	  Texas Instruments Arago 2011.09 toolchain, with gcc 4.5.3,
@@ -181,6 +187,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	# kernel headers: 2.6.31
 	help
 	  Texas Instruments Arago ARMv5 2011.09 toolchain, with gcc
@@ -199,6 +206,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the MIPS architecture, from
 	  Mentor Graphics. It uses gcc 4.9.2, binutils 2.24.51, glibc
@@ -284,6 +292,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the MIPS architecture, from
 	  Mentor Graphics. It uses gcc 4.9.1, binutils 2.24.51, glibc
@@ -369,6 +378,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the MIPS architecture, from
 	  Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc
@@ -457,6 +467,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the Nios-II architecture,
 	  from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51,
@@ -472,6 +483,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the Nios-II architecture,
 	  from Mentor Graphics. It uses gcc 4.7.3, binutils 2.23.52,
@@ -488,6 +500,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the PowerPC architecture,
 	  from Mentor Graphics. It uses gcc 4.6.3, binutils 2.21.53,
@@ -504,6 +517,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	# kernel headers: 2.6.38
 	help
 	  Sourcery CodeBench toolchain for the PowerPC architecture,
@@ -536,6 +550,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	# kernel headers: 2.6.35
 	help
 	  Sourcery CodeBench toolchain for the PowerPC architecture,
@@ -569,6 +584,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201209
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the SuperH architecture,
 	  from Mentor Graphics. It uses gcc 4.7.2, binutils 2.23.51,
@@ -592,6 +608,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201203
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the SuperH architecture,
 	  from Mentor Graphics. It uses gcc 4.6.3, binutils 2.21.53,
@@ -616,6 +633,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	# kernel headers: 2.6.38
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the SuperH architecture,
 	  from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20,
@@ -641,6 +659,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_201405
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the amd64 (x86_64)
 	  architectures, from Mentor Graphics. It uses gcc 4.8.3,
@@ -665,6 +684,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201209
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the x86/x86_64
 	  architectures, from Mentor Graphics. It uses gcc 4.7.2,
@@ -692,6 +712,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201203
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the x86/x86_64
 	  architectures, from Mentor Graphics. It uses gcc 4.6.3,
@@ -720,6 +741,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201109
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the x86/x86_64
 	  architectures, from Mentor Graphics. It uses gcc 4.6.1,
@@ -748,6 +770,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2014R1
 	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain for the Blackfin architecture, from
 	  http://blackfin.uclinux.org.
@@ -764,6 +787,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1
 	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain for the Blackfin architecture, from
 	  http://blackfin.uclinux.org.
@@ -780,6 +804,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2
 	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain for the Blackfin architecture, from
 	  http://blackfin.uclinux.org.
@@ -794,6 +819,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain for the AArch64 architecture, from
 	  http://www.linaro.org/engineering/armv8/
@@ -808,6 +834,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Sourcery CodeBench toolchain for the AArch64 architecture,
 	  from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24,
@@ -823,6 +850,7 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
 	select BR2_INSTALL_LIBSTDCPP
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain based on the Musl C library, provided by the
 	  musl-cross project. It uses gcc 4.9.2, binutils 2.25 and
@@ -849,6 +877,7 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_2014_12
 	select BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+	select BR2_TOOLCHAIN_HAS_RESOLVER
 	help
 	  Toolchain for the ARC cores, from
 	  https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
                   ` (2 preceding siblings ...)
  2015-06-26 17:33 ` [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
@ 2015-06-26 17:33 ` Guido Martínez
  2015-06-27 12:42   ` Yann E. MORIN
  2015-06-28 12:34 ` [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Thomas Petazzoni
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
  5 siblings, 1 reply; 27+ messages in thread
From: Guido Martínez @ 2015-06-26 17:33 UTC (permalink / raw)
  To: buildroot

Binary toolchain based on uClibc for Cortex-M3 processor based on GCC
4.9.2.

This toolchain has no resolver support, thus, we don't select
BR2_HAS_RESOLVER_SUPPORT.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/toolchain-external/Config.in               | 13 +++++++++++++
 toolchain/toolchain-external/toolchain-external.hash |  4 ++++
 toolchain/toolchain-external/toolchain-external.mk   | 10 ++++++++++
 3 files changed, 27 insertions(+)

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index ec2d1a5..6980b1e 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -195,6 +195,18 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
 
 	  This toolchain uses software-floating point.
 
+config BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
+	bool "OSELAS ARM Cortex-M3 2014.12"
+	depends on BR2_arm
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	select BR2_LARGEFILE
+	select BR2_INET_IPV6
+	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	help
+	  OSELAS binary toolchain for Cortex-M3.
+
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505
 	bool "Sourcery CodeBench MIPS 2015.05"
 	depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@@ -941,6 +953,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
 	default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
+	default "arm-cortexm3-uclinuxeabi" if BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
 	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 3980c62..342ce21 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -74,3 +74,7 @@ sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e  crossx8
 sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1  crossx86-sh4eb-linux-musl-1.1.6.tar.xz
 sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260  crossx86-x86_64-linux-musl-1.1.6.tar.xz
 sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690  crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz
+
+# Oselas Cortex-M3 toolchain
+# Locally calculated
+sha1	75e7ae45b514b10ad64ff5588770434cea755496	oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 22f8118..e9514c1 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -293,6 +293,9 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+TOOLCHAIN_EXTERNAL_SITE = http://debian.pengutronix.de/debian/pool/main/o/oselas.toolchain/
+TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
@@ -421,6 +424,13 @@ define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
 	$(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
 		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
 endef
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+# Special handling for OSELAS toolchains
+define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
+	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+	ar fp $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) data.tar.xz | $(XZCAT) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=5 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
+endef
 else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
 # Normal handling of toolchain tarball extraction.
 define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 1/4] arm: update processor types
  2015-06-26 17:33 ` [Buildroot] [PATCH 1/4] arm: update processor types Guido Martínez
@ 2015-06-27 10:24   ` Yann E. MORIN
  0 siblings, 0 replies; 27+ messages in thread
From: Yann E. MORIN @ 2015-06-27 10:24 UTC (permalink / raw)
  To: buildroot

Guido, All,

On 2015-06-26 14:33 -0300, Guido Mart?nez spake thusly:
> Add the Cortex M3 variant. These microcontrollers don't support regular
> ARM instructions and don't have an MMU.
> 
> Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  arch/Config.in.arm | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/Config.in.arm b/arch/Config.in.arm
> index a2f00d2..9aa23a3 100644
> --- a/arch/Config.in.arm
> +++ b/arch/Config.in.arm
> @@ -146,6 +146,10 @@ config BR2_cortex_a15
>  	select BR2_ARM_CPU_HAS_THUMB2
>  	select BR2_ARM_CPU_ARMV7A
>  	select BR2_ARCH_HAS_MMU_OPTIONAL
> +config BR2_cortex_m3
> +	bool "cortex-M3"
> +	select BR2_ARM_CPU_HAS_THUMB
> +	select BR2_ARM_CPU_HAS_THUMB2
>  config BR2_fa526
>  	bool "fa526/626"
>  	select BR2_ARM_CPU_HAS_ARM
> @@ -408,6 +412,7 @@ config BR2_GCC_TARGET_CPU
>  	default "cortex-a9"	if BR2_cortex_a9
>  	default "cortex-a12"	if BR2_cortex_a12
>  	default "cortex-a15"	if BR2_cortex_a15
> +	default "cortex-m3"	if BR2_cortex_m3
>  	default "fa526"		if BR2_fa526
>  	default "marvell-pj4"	if BR2_pj4
>  	default "strongarm"	if BR2_strongarm
> -- 
> 2.1.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains
  2015-06-26 17:33 ` [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains Guido Martínez
@ 2015-06-27 10:28   ` Yann E. MORIN
  0 siblings, 0 replies; 27+ messages in thread
From: Yann E. MORIN @ 2015-06-27 10:28 UTC (permalink / raw)
  To: buildroot

Guido, All,

On 2015-06-26 14:33 -0300, Guido Mart?nez spake thusly:
> check_arm_abi builds a test C file to check that the toolchain is
> working correctly, with the output redirected to /dev/null.
> 
> However, some toolchains (OSELAS 2014.12.0, for instance) foolishly
> append ".gdb" to the output filename for an intermediate file, causing
> an attempt to write to /dev/null.gdb, which obviously fails.
> 
> Fix this by adding changing the output to a temporary file, which is
> later removed along with any other "suffixed" files.
> 
> Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  toolchain/helpers.mk | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 30eb065..0dc1864 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -308,12 +308,14 @@ check_arm_abi = \
>  		echo "External toolchain uses the unsuported OABI" ; \
>  		exit 1 ; \
>  	fi ; \
> -	if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o /dev/null - ; then \
> +	if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o $(BUILD_DIR)/.br-toolchain-test.tmp - ; then \
> +		rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*; \
>  		abistr_$(BR2_ARM_EABI)='EABI'; \
>  		abistr_$(BR2_ARM_EABIHF)='EABIhf'; \
>  		echo "Incorrect ABI setting: $${abistr_y} selected, but toolchain is incompatible"; \
>  		exit 1 ; \
> -	fi
> +	fi ; \
> +	rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
>  
>  #
>  # Check that the external toolchain supports C++
> -- 
> 2.1.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
  2015-06-26 17:33 ` [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
@ 2015-06-27 10:39   ` Yann E. MORIN
  0 siblings, 0 replies; 27+ messages in thread
From: Yann E. MORIN @ 2015-06-27 10:39 UTC (permalink / raw)
  To: buildroot

Guido, All,

On 2015-06-26 14:33 -0300, Guido Mart?nez spake thusly:
> Add a Kconfig option specifying if the toolchain supports name resolving
> (or at least has stubs for it) so we can disable packages that depend on
> that (or they would fail to link). For now, only disable the 'nslookup'
> tool from BusyBox if there's no resolver support.
> 
> For now, every toolchain supports name resolving.

I'm a bit skeptical about this change.

Let's see:
  - adds a new 'select' for all existing external pre-configured
    toolchains;

  - misses the cases for internal toolchain and exterdnal custom
    toolchains;

  - disables nslookup in busybox when resolver is mising;

  - misses the fixing the bind package which can install nslookup, too.

So, I find this is a bit of noise for a relatively infrequent setup. And
you're missing quite a few cases.

I'd rather we disable nslookup from our default busybox configuration.

(Note: the bind case is not a problem for you, because it already
depends on MMU which Cortex-M3 do not have, so bind is inherently
protected from such limited toolchains.)

> Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
> ---
>  package/busybox/busybox.mk             |  3 +++
>  toolchain/Config.in                    |  3 +++
>  toolchain/toolchain-external/Config.in | 29 +++++++++++++++++++++++++++++
>  3 files changed, 35 insertions(+)
> 
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index 090e174..f4e086e 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -156,6 +156,9 @@ endif
>  # full-blown versions of apps installed by other packages with sym/hard links.
>  define BUSYBOX_NOCLOBBER_INSTALL
>  	$(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh
> +	$(if $(BR2_TOOLCHAIN_HAS_RESOLVER),,
> +		$(call KCONFIG_DISABLE_OPT,CONFIG_NSLOOKUP,$(@D)/.config)
> +	)

This hunk should go into its own macro, and used in
BUSYBOX_KCONFIG_FIXUP_CMDS, below, like so:

    ifeq ($(BR2_TOOLCHAIN_HAS_RESOLVER),)
    define BUSYBOX_UNSET_NSLOOKUP
        $(call KCONFIG_DISABLE_OPT,CONFIG_NSLOOKUP,$(@D)/.config)
    endef
    endif

    define BUSYBOX_KCONFIG_FIXUP_CMDS
        [existing calls]
        $(BUSYBOX_UNSET_NSLOOKUP)
    endef

But I'd really prefer we just ditch nslookup from our default busybox
configuration, to avoid all this noise.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-06-26 17:33 ` [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
@ 2015-06-27 12:42   ` Yann E. MORIN
  0 siblings, 0 replies; 27+ messages in thread
From: Yann E. MORIN @ 2015-06-27 12:42 UTC (permalink / raw)
  To: buildroot

Guido, All,

On 2015-06-26 14:33 -0300, Guido Mart?nez spake thusly:
> Binary toolchain based on uClibc for Cortex-M3 processor based on GCC
> 4.9.2.
> 
> This toolchain has no resolver support, thus, we don't select
> BR2_HAS_RESOLVER_SUPPORT.
> 
> Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
[--SNIP--]
> diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
> index 3980c62..342ce21 100644
> --- a/toolchain/toolchain-external/toolchain-external.hash
> +++ b/toolchain/toolchain-external/toolchain-external.hash
> @@ -74,3 +74,7 @@ sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e  crossx8
>  sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1  crossx86-sh4eb-linux-musl-1.1.6.tar.xz
>  sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260  crossx86-x86_64-linux-musl-1.1.6.tar.xz
>  sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690  crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz
> +
> +# Oselas Cortex-M3 toolchain
> +# Locally calculated
> +sha1	75e7ae45b514b10ad64ff5588770434cea755496	oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb

We prefer sha256 when locally computed.

But in this case, we do have an upstream-provided set of hashes:

    http://debian.pengutronix.de/debian/dists/sid/main/binary-i386/Packages

so we should use it (even though it is not https... :-( ):

    # From: http://debian.pengutronix.de/debian/dists/sid/main/binary-i386/Packages
    sha1    75e7ae45b514b10ad64ff5588770434cea755496  oselas.......
    sha256  1c542d3aad4e592270918d54bb02a90580902d573dc4d9b59aabfd0697220f3e  oselas.......

Otherwise, looks good.

Yet, there is also a 64-bit variant for this toolchain, so maybe we
could download the one corresponding to the user's host, like so:

    [...]
    else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
    TOOLCHAIN_EXTERNAL_SITE = http://debian.pengutronix.de/debian/pool/main/o/oselas.toolchain/
    ifeq ($(HOSTARCH),x86)
    TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-[...]_i386.deb
    else
    TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-[...]_amd64.deb
    endif
    else ifeq (...)
    [...]

And of course, no longer needed to have the option select
BR2_HOSTARCH_NEEDS_IA32_LIBS in the Config.in, since there would be a
64-bit-native variant.

(But don't forget to add the hashes for that variant, too! ;-) )

Regards,
Yann E. MORIN.

> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
> index 22f8118..e9514c1 100644
> --- a/toolchain/toolchain-external/toolchain-external.mk
> +++ b/toolchain/toolchain-external/toolchain-external.mk
> @@ -293,6 +293,9 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
>  TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
> +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
> +TOOLCHAIN_EXTERNAL_SITE = http://debian.pengutronix.de/debian/pool/main/o/oselas.toolchain/
> +TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
>  TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
> @@ -421,6 +424,13 @@ define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
>  	$(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
>  		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>  endef
> +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
> +# Special handling for OSELAS toolchains
> +define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
> +	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
> +	ar fp $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) data.tar.xz | $(XZCAT) | \
> +		$(TAR) $(TAR_STRIP_COMPONENTS)=5 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
> +endef
>  else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
>  # Normal handling of toolchain tarball extraction.
>  define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
> -- 
> 2.1.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
                   ` (3 preceding siblings ...)
  2015-06-26 17:33 ` [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
@ 2015-06-28 12:34 ` Thomas Petazzoni
  2015-06-29 15:01   ` Guido Martínez
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
  5 siblings, 1 reply; 27+ messages in thread
From: Thomas Petazzoni @ 2015-06-28 12:34 UTC (permalink / raw)
  To: buildroot

Dear Guido Mart?nez,

On Fri, 26 Jun 2015 14:33:18 -0300, Guido Mart?nez wrote:

> Guido Mart?nez (4):
>   arm: update processor types
>   toolchain: allow for stupid toolchains

Both of these applied.

>   toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
>   toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain

There have been some comments from Yann on these patches, so I've
marked them as "Changes Requested" in patchwork. Could you rework them
as suggested by Yann, and resend updated versions?

Also, now that there is Cortex-M3 support listed, please make sure it
works fine with the internal toolchain backend, and if it doesn't work,
add the appropriate exceptions (for example, glibc and musl cannot be
built for Cortex-M3, as far as I know). Can you send a follow-up patch
for this?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support
  2015-06-28 12:34 ` [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Thomas Petazzoni
@ 2015-06-29 15:01   ` Guido Martínez
  0 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-06-29 15:01 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Sun, Jun 28, 2015 at 02:34:54PM +0200, Thomas Petazzoni wrote:
> Dear Guido Mart?nez,
> 
> On Fri, 26 Jun 2015 14:33:18 -0300, Guido Mart?nez wrote:
> >   toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
> >   toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
> 
> There have been some comments from Yann on these patches, so I've
> marked them as "Changes Requested" in patchwork. Could you rework them
> as suggested by Yann, and resend updated versions?
Yes, will do! I agree with Yann in removing nslookup from the default
busybox config. I think that's easier for everyone.

> Also, now that there is Cortex-M3 support listed, please make sure it
> works fine with the internal toolchain backend, and if it doesn't work,
> add the appropriate exceptions (for example, glibc and musl cannot be
> built for Cortex-M3, as far as I know). Can you send a follow-up patch
> for this?
Right, it doesn't work right now since there are a few places that force
the selection of ARM instructions where Thumb is not available, and that
won't work on M3. I'll try to fix it and get back.

Thanks!

-- 
Guido Mart?nez, VanguardiaSur
www.vanguardiasur.com.ar

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 0/3] Add ARM Cortex-M3 support
  2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
                   ` (4 preceding siblings ...)
  2015-06-28 12:34 ` [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Thomas Petazzoni
@ 2015-07-14 15:11 ` Guido Martínez
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 1/3] busybox: disable nslookup applet Guido Martínez
                     ` (3 more replies)
  5 siblings, 4 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:11 UTC (permalink / raw)
  To: buildroot

Hi all,

this patchset introduces support for the M3 processors. These processors
don't have an MMU and they don't support the regular ARM mode (only
Thumb and Thumb2).

The OSELAS 2014.12.0 toolchain is added, in 32-bit and 64-bit variants.

I'm planning to send a defconfig for the CIAA board[1] once it's
mainlined in Linux. But, for now, this config can generate a proper
rootfs:
  BR2_arm=y
  BR2_cortex_m3=y

The changes from v3 are:
  * Patches 1 and 2 were committed, so dropped.

  * Add x86 and x86_64 versions of the toolchain, as suggested by Yann.

  * Drop the HAS_RESOLVER patch and just disable nslookup from the
    default busybox config.

  * Disable the internal toolchain for Cortex-M3. It won't work for now
    since ARM instructions are used as a fall back in some cases.

Any comments and testing welcome!

[1] http://www.proyecto-ciaa.com.ar/

Guido Mart?nez (3):
  busybox: disable nslookup applet
  toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  toolchain: disable internal for blackfin

 package/busybox/busybox.config                       |  2 +-
 toolchain/Config.in                                  |  1 +
 toolchain/toolchain-external/Config.in               | 12 ++++++++++++
 toolchain/toolchain-external/toolchain-external.hash |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk   | 14 ++++++++++++++
 5 files changed, 34 insertions(+), 1 deletion(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 1/3] busybox: disable nslookup applet
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
@ 2015-07-14 15:11   ` Guido Martínez
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:11 UTC (permalink / raw)
  To: buildroot

Some toolchains have no resolver support (res_* family), so they fail to
build this applet (which is the only user of those functions). Instead
of selectively disabling it on such limited toolchains, just drop it
from the default config, since (to the best of my knowledge) is not
widely used.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 package/busybox/busybox.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/busybox/busybox.config b/package/busybox/busybox.config
index 8d1d80a..91c3006 100644
--- a/package/busybox/busybox.config
+++ b/package/busybox/busybox.config
@@ -838,7 +838,7 @@ CONFIG_IPRULE=y
 CONFIG_NETSTAT=y
 # CONFIG_FEATURE_NETSTAT_WIDE is not set
 # CONFIG_FEATURE_NETSTAT_PRG is not set
-CONFIG_NSLOOKUP=y
+# CONFIG_NSLOOKUP is not set
 # CONFIG_NTPD is not set
 # CONFIG_FEATURE_NTPD_SERVER is not set
 # CONFIG_FEATURE_NTPD_CONF is not set
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 1/3] busybox: disable nslookup applet Guido Martínez
@ 2015-07-14 15:11   ` Guido Martínez
  2015-07-14 15:42     ` Baruch Siach
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin Guido Martínez
  2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
  3 siblings, 1 reply; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:11 UTC (permalink / raw)
  To: buildroot

Binary toolchain based on uClibc for Cortex-M3 processor based on GCC
4.9.2.

This commit adds both the i386 and amd64 versions of the toolchain, and
chooses one based on $(HOSTARCH), as suggested by Yann.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/toolchain-external/Config.in               | 12 ++++++++++++
 toolchain/toolchain-external/toolchain-external.hash |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk   | 14 ++++++++++++++
 3 files changed, 32 insertions(+)

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index e70989e..66bf5cb 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -188,6 +188,17 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
 
 	  This toolchain uses software-floating point.
 
+config BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
+	bool "OSELAS ARM Cortex-M3 2014.12"
+	depends on BR2_cortex_m3
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	select BR2_LARGEFILE
+	select BR2_INET_IPV6
+	help
+	  OSELAS binary toolchain for Cortex-M3.
+
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505
 	bool "Sourcery CodeBench MIPS 2015.05"
 	depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@@ -912,6 +923,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
 	default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
+	default "arm-cortexm3-uclinuxeabi" if BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
 	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 3980c62..4c3bd92 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -74,3 +74,9 @@ sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e  crossx8
 sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1  crossx86-sh4eb-linux-musl-1.1.6.tar.xz
 sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260  crossx86-x86_64-linux-musl-1.1.6.tar.xz
 sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690  crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz
+
+# Oselas Cortex-M3 toolchain
+# From: http://debian.pengutronix.de/debian/dists/sid/main/binary-i386/Packages
+sha256	1c542d3aad4e592270918d54bb02a90580902d573dc4d9b59aabfd0697220f3e oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
+# From: http://debian.pengutronix.de/debian/dists/sid/main/binary-amd64/Packages
+sha256	050cd9296763dc9cf15f293ff612e2987f5bc9cbae5aa338f28f6f057753ce7a oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_amd64.deb
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index fcb033c..092291d 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -293,6 +293,13 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+TOOLCHAIN_EXTERNAL_SITE = http://debian.pengutronix.de/debian/pool/main/o/oselas.toolchain/
+ifeq ($(HOSTARCH),x86)
+TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
+else
+TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_amd64.deb
+endif
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
@@ -421,6 +428,13 @@ define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
 	$(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
 		$(TAR) --strip-components=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
 endef
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+# Special handling for OSELAS toolchains
+define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
+	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+	ar fp $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) data.tar.xz | $(XZCAT) | \
+		$(TAR) --strip-components=5 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
+endef
 else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
 # Normal handling of toolchain tarball extraction.
 define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 1/3] busybox: disable nslookup applet Guido Martínez
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
@ 2015-07-14 15:11   ` Guido Martínez
  2015-07-14 15:43     ` Baruch Siach
  2015-07-14 19:20     ` Waldemar Brodkorb
  2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
  3 siblings, 2 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:11 UTC (permalink / raw)
  To: buildroot

The internal toolchain won't work with Cortex-M3, mostly because of the
fact that some packages (notably: uclibc and glibc) fall back to regular
ARM instructions in some situations, and Cortex-M3 has no support for
those kind of instructions.

So, just disable it for now and rely on the external toolchain.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/Config.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index a851ce4..399d25b 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -40,6 +40,7 @@ choice
 config BR2_TOOLCHAIN_BUILDROOT
 	bool "Buildroot toolchain"
 	depends on !BR2_bfin
+	depends on !BR2_cortex_m3
 	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
 
 config BR2_TOOLCHAIN_EXTERNAL
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
@ 2015-07-14 15:42     ` Baruch Siach
  2015-07-14 15:57       ` Guido Martínez
  0 siblings, 1 reply; 27+ messages in thread
From: Baruch Siach @ 2015-07-14 15:42 UTC (permalink / raw)
  To: buildroot

Hi Guido,

On Tue, Jul 14, 2015 at 12:11:03PM -0300, Guido Mart?nez wrote:
> +config BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
> +	bool "OSELAS ARM Cortex-M3 2014.12"
> +	depends on BR2_cortex_m3
> +	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> +	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
> +	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> +	select BR2_LARGEFILE
> +	select BR2_INET_IPV6

These two symbols were removed recently. All toolchains should now support LFS 
and IPv6.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin Guido Martínez
@ 2015-07-14 15:43     ` Baruch Siach
  2015-07-14 15:58       ` Guido Martínez
  2015-07-14 19:20     ` Waldemar Brodkorb
  1 sibling, 1 reply; 27+ messages in thread
From: Baruch Siach @ 2015-07-14 15:43 UTC (permalink / raw)
  To: buildroot

Hi Guido,

On Tue, Jul 14, 2015 at 12:11:04PM -0300, Guido Mart?nez wrote:
> The internal toolchain won't work with Cortex-M3, mostly because of the
> fact that some packages (notably: uclibc and glibc) fall back to regular
> ARM instructions in some situations, and Cortex-M3 has no support for
> those kind of instructions.
> 
> So, just disable it for now and rely on the external toolchain.

Subject line does not match the patch.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-07-14 15:42     ` Baruch Siach
@ 2015-07-14 15:57       ` Guido Martínez
  0 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:57 UTC (permalink / raw)
  To: buildroot

On Tue, Jul 14, 2015 at 06:42:30PM +0300, Baruch Siach wrote:
> Hi Guido,
> 
> On Tue, Jul 14, 2015 at 12:11:03PM -0300, Guido Mart?nez wrote:
> > +config BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
> > +	bool "OSELAS ARM Cortex-M3 2014.12"
> > +	depends on BR2_cortex_m3
> > +	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> > +	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
> > +	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> > +	select BR2_LARGEFILE
> > +	select BR2_INET_IPV6
> 
> These two symbols were removed recently. All toolchains should now support LFS 
> and IPv6.
Ah, OK I missed that! Will remove those two.

-- 
Guido Mart?nez, VanguardiaSur
www.vanguardiasur.com.ar

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin
  2015-07-14 15:43     ` Baruch Siach
@ 2015-07-14 15:58       ` Guido Martínez
  0 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 15:58 UTC (permalink / raw)
  To: buildroot

On Tue, Jul 14, 2015 at 06:43:26PM +0300, Baruch Siach wrote:
> Hi Guido,
> 
> On Tue, Jul 14, 2015 at 12:11:04PM -0300, Guido Mart?nez wrote:
> > The internal toolchain won't work with Cortex-M3, mostly because of the
> > fact that some packages (notably: uclibc and glibc) fall back to regular
> > ARM instructions in some situations, and Cortex-M3 has no support for
> > those kind of instructions.
> > 
> > So, just disable it for now and rely on the external toolchain.
> 
> Subject line does not match the patch.
Ugh, that's what I get for looking at the log and copying.

Sorry!

-- 
Guido Mart?nez, VanguardiaSur
www.vanguardiasur.com.ar

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet
  2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
                     ` (2 preceding siblings ...)
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin Guido Martínez
@ 2015-07-14 16:09   ` Guido Martínez
  2015-07-14 16:09     ` [Buildroot] [PATCH v5 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
                       ` (2 more replies)
  3 siblings, 3 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 16:09 UTC (permalink / raw)
  To: buildroot

Some toolchains have no resolver support (res_* family), so they fail to
build this applet (which is the only user of those functions). Instead
of selectively disabling it on such limited toolchains, just drop it
from the default config, since (to the best of my knowledge) is not
widely used.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 package/busybox/busybox.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/busybox/busybox.config b/package/busybox/busybox.config
index 8d1d80a..91c3006 100644
--- a/package/busybox/busybox.config
+++ b/package/busybox/busybox.config
@@ -838,7 +838,7 @@ CONFIG_IPRULE=y
 CONFIG_NETSTAT=y
 # CONFIG_FEATURE_NETSTAT_WIDE is not set
 # CONFIG_FEATURE_NETSTAT_PRG is not set
-CONFIG_NSLOOKUP=y
+# CONFIG_NSLOOKUP is not set
 # CONFIG_NTPD is not set
 # CONFIG_FEATURE_NTPD_SERVER is not set
 # CONFIG_FEATURE_NTPD_CONF is not set
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
@ 2015-07-14 16:09     ` Guido Martínez
  2015-07-14 16:09     ` [Buildroot] [PATCH v5 3/3] toolchain: disable internal for Cortex-M3 Guido Martínez
  2015-07-14 16:31     ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Thomas Petazzoni
  2 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 16:09 UTC (permalink / raw)
  To: buildroot

Binary toolchain based on uClibc for Cortex-M3 processor based on GCC
4.9.2.

This commit adds both the i386 and amd64 versions of the toolchain, and
chooses one based on $(HOSTARCH), as suggested by Yann.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/toolchain-external/Config.in               | 10 ++++++++++
 toolchain/toolchain-external/toolchain-external.hash |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk   | 14 ++++++++++++++
 3 files changed, 30 insertions(+)

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index e70989e..f02d9ab 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -188,6 +188,15 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
 
 	  This toolchain uses software-floating point.
 
+config BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
+	bool "OSELAS ARM Cortex-M3 2014.12"
+	depends on BR2_cortex_m3
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	help
+	  OSELAS binary toolchain for Cortex-M3.
+
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505
 	bool "Sourcery CodeBench MIPS 2015.05"
 	depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@@ -912,6 +921,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
 	default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109
 	default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
+	default "arm-cortexm3-uclinuxeabi" if BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
 	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 3980c62..4c3bd92 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -74,3 +74,9 @@ sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e  crossx8
 sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1  crossx86-sh4eb-linux-musl-1.1.6.tar.xz
 sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260  crossx86-x86_64-linux-musl-1.1.6.tar.xz
 sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690  crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz
+
+# Oselas Cortex-M3 toolchain
+# From: http://debian.pengutronix.de/debian/dists/sid/main/binary-i386/Packages
+sha256	1c542d3aad4e592270918d54bb02a90580902d573dc4d9b59aabfd0697220f3e oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
+# From: http://debian.pengutronix.de/debian/dists/sid/main/binary-amd64/Packages
+sha256	050cd9296763dc9cf15f293ff612e2987f5bc9cbae5aa338f28f6f057753ce7a oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_amd64.deb
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index fcb033c..092291d 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -293,6 +293,13 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+TOOLCHAIN_EXTERNAL_SITE = http://debian.pengutronix.de/debian/pool/main/o/oselas.toolchain/
+ifeq ($(HOSTARCH),x86)
+TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_i386.deb
+else
+TOOLCHAIN_EXTERNAL_SOURCE = oselas.toolchain-2014.12.0-arm-cortexm3-uclinuxeabi-gcc-4.9.2-uclibc-0.9.33.2-binutils-2.24-kernel-3.16-sanitized_2014.12.0_amd64.deb
+endif
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
@@ -421,6 +428,13 @@ define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
 	$(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
 		$(TAR) --strip-components=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
 endef
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412),y)
+# Special handling for OSELAS toolchains
+define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
+	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+	ar fp $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) data.tar.xz | $(XZCAT) | \
+		$(TAR) --strip-components=5 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
+endef
 else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
 # Normal handling of toolchain tarball extraction.
 define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 3/3] toolchain: disable internal for Cortex-M3
  2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
  2015-07-14 16:09     ` [Buildroot] [PATCH v5 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
@ 2015-07-14 16:09     ` Guido Martínez
  2015-07-14 16:31     ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Thomas Petazzoni
  2 siblings, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-14 16:09 UTC (permalink / raw)
  To: buildroot

The internal toolchain won't work with Cortex-M3, mostly because of the
fact that some packages (notably: uclibc and glibc) fall back to regular
ARM instructions in some situations, and Cortex-M3 has no support for
those kind of instructions.

So, just disable it for now and rely on the external toolchain.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 toolchain/Config.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index a851ce4..399d25b 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -40,6 +40,7 @@ choice
 config BR2_TOOLCHAIN_BUILDROOT
 	bool "Buildroot toolchain"
 	depends on !BR2_bfin
+	depends on !BR2_cortex_m3
 	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
 
 config BR2_TOOLCHAIN_EXTERNAL
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet
  2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
  2015-07-14 16:09     ` [Buildroot] [PATCH v5 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
  2015-07-14 16:09     ` [Buildroot] [PATCH v5 3/3] toolchain: disable internal for Cortex-M3 Guido Martínez
@ 2015-07-14 16:31     ` Thomas Petazzoni
  2015-07-14 16:55       ` Thomas Petazzoni
  2 siblings, 1 reply; 27+ messages in thread
From: Thomas Petazzoni @ 2015-07-14 16:31 UTC (permalink / raw)
  To: buildroot

Dear Guido Mart?nez,

On Tue, 14 Jul 2015 13:09:32 -0300, Guido Mart?nez wrote:
> Some toolchains have no resolver support (res_* family), so they fail to
> build this applet (which is the only user of those functions). Instead
> of selectively disabling it on such limited toolchains, just drop it
> from the default config, since (to the best of my knowledge) is not
> widely used.
> 
> Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>

I know this solution was suggested to you instead of adding a new
toolchain option that tells us whether resolver support is available or
not.

However, the problem with the solution of changing the Busybox config
file is that it fixes Busybox only: there will possibly be plenty of
other packages using res_*(). And we will have no way to fix those
packages in a proper way, except possibly by making them 'depends
on !BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412'. But if other
OSELAS toolchains for other architectures also lack resolver support,
then we will have to add more and more of those exclusions.

Conclusion: I am wondering if your initial solution was not the right
one.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet
  2015-07-14 16:31     ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Thomas Petazzoni
@ 2015-07-14 16:55       ` Thomas Petazzoni
  2015-07-14 17:10         ` Gustavo Zacarias
  2015-07-15 17:19         ` Guido Martínez
  0 siblings, 2 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2015-07-14 16:55 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 14 Jul 2015 18:31:26 +0200, Thomas Petazzoni wrote:

> I know this solution was suggested to you instead of adding a new
> toolchain option that tells us whether resolver support is available or
> not.
> 
> However, the problem with the solution of changing the Busybox config
> file is that it fixes Busybox only: there will possibly be plenty of
> other packages using res_*(). And we will have no way to fix those
> packages in a proper way, except possibly by making them 'depends
> on !BR2_TOOLCHAIN_EXTERNAL_OSELAS_ARM_CORTEX_M3_201412'. But if other
> OSELAS toolchains for other architectures also lack resolver support,
> then we will have to add more and more of those exclusions.
> 
> Conclusion: I am wondering if your initial solution was not the right
> one.

I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
toolchain and the uClibc_config.h of a uClibc toolchain built by
Buildroot, and there are quite a few differences in the configuration.

First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
patches. And in Buildroot, we had to add a lot of patches to uClibc to
make it properly support a number of packages (which is also why we've
switched to uClibc-ng as the default C library).

And then, the uClibc configuration itself is quite different: a number
of features that we enable by default in the Buildroot uClibc
configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
we will start adding the OSELAS Cortex-M3 toolchain in the
autobuilders, it will probably start showing a number of failures
caused by this uClibc version/configuration being quite different from
the usual Buildroot expectations.

So, we've got two possibilities here:

 1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
    capable of building a Cortex-M3 toolchain.

 2/ Really add the toolchain anyway, but be prepared for some
    additional work to handle all those issues. Since the Cortex-M3 is
    noMMU, it means that a significant fraction of the packages are not
    available, so maybe it will be more reasonable that I expect. But I
    was in fact hoping to be able to add other OSELAS toolchains, even
    for MMU capable platforms. But if they have such uClibc
    configurations, we might be limited to using their glibc toolchains.

What do you think?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet
  2015-07-14 16:55       ` Thomas Petazzoni
@ 2015-07-14 17:10         ` Gustavo Zacarias
  2015-07-15 17:19         ` Guido Martínez
  1 sibling, 0 replies; 27+ messages in thread
From: Gustavo Zacarias @ 2015-07-14 17:10 UTC (permalink / raw)
  To: buildroot

On 14/07/15 13:55, Thomas Petazzoni wrote:

> I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
> toolchain and the uClibc_config.h of a uClibc toolchain built by
> Buildroot, and there are quite a few differences in the configuration.
>
> First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
> patches. And in Buildroot, we had to add a lot of patches to uClibc to
> make it properly support a number of packages (which is also why we've
> switched to uClibc-ng as the default C library).
>
> And then, the uClibc configuration itself is quite different: a number
> of features that we enable by default in the Buildroot uClibc
> configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
> we will start adding the OSELAS Cortex-M3 toolchain in the
> autobuilders, it will probably start showing a number of failures
> caused by this uClibc version/configuration being quite different from
> the usual Buildroot expectations.
>
> So, we've got two possibilities here:
>
>   1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
>      capable of building a Cortex-M3 toolchain.
>
>   2/ Really add the toolchain anyway, but be prepared for some
>      additional work to handle all those issues. Since the Cortex-M3 is
>      noMMU, it means that a significant fraction of the packages are not
>      available, so maybe it will be more reasonable that I expect. But I
>      was in fact hoping to be able to add other OSELAS toolchains, even
>      for MMU capable platforms. But if they have such uClibc
>      configurations, we might be limited to using their glibc toolchains.
>
> What do you think?

As far as i remember as you say uclibc for M3 requires minimal patching.
IMHO option 1 would be best rather than the "black box" solution 
(besides a lack of options being problematic).
It would help Waldemar include any required patches upstream in 
uclibc-ng going forward.
Regards.

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin
  2015-07-14 15:11   ` [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin Guido Martínez
  2015-07-14 15:43     ` Baruch Siach
@ 2015-07-14 19:20     ` Waldemar Brodkorb
  1 sibling, 0 replies; 27+ messages in thread
From: Waldemar Brodkorb @ 2015-07-14 19:20 UTC (permalink / raw)
  To: buildroot

Hi Guido,
Guido Mart?nez wrote,

> The internal toolchain won't work with Cortex-M3, mostly because of the
> fact that some packages (notably: uclibc and glibc) fall back to regular
> ARM instructions in some situations, and Cortex-M3 has no support for
> those kind of instructions.
> 
> So, just disable it for now and rely on the external toolchain.

uClibc-ng compiles fine for Cortex-M3 when you use thumb, flat
binaries and disable ld.so. 
I am still in the progress of running the code on Freescale Kinetis
K70 from Emcraft. But I am optimistic.
(context functions must be disabled)

best regards
 Waldemar 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet
  2015-07-14 16:55       ` Thomas Petazzoni
  2015-07-14 17:10         ` Gustavo Zacarias
@ 2015-07-15 17:19         ` Guido Martínez
  1 sibling, 0 replies; 27+ messages in thread
From: Guido Martínez @ 2015-07-15 17:19 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Tue, Jul 14, 2015 at 06:55:14PM +0200, Thomas Petazzoni wrote:
> [...]
>
> I did a comparison between the uClibc_config.h of the OSELAS Cortex-M3
> toolchain and the uClibc_config.h of a uClibc toolchain built by
> Buildroot, and there are quite a few differences in the configuration.
> 
> First and foremost, OSELAS is using uClibc 0.9.33.2 with almost no
> patches. And in Buildroot, we had to add a lot of patches to uClibc to
> make it properly support a number of packages (which is also why we've
> switched to uClibc-ng as the default C library).
> 
> And then, the uClibc configuration itself is quite different: a number
> of features that we enable by default in the Buildroot uClibc
> configuration are not enabled in the OSELAS Cortex-M3 uClibc. So when
> we will start adding the OSELAS Cortex-M3 toolchain in the
> autobuilders, it will probably start showing a number of failures
> caused by this uClibc version/configuration being quite different from
> the usual Buildroot expectations.
> 
> So, we've got two possibilities here:
> 
>  1/ Just give up on the OSELAS toolchain, and focus on making Buildroot
>     capable of building a Cortex-M3 toolchain.
> 
>  2/ Really add the toolchain anyway, but be prepared for some
>     additional work to handle all those issues. Since the Cortex-M3 is
>     noMMU, it means that a significant fraction of the packages are not
>     available, so maybe it will be more reasonable that I expect. But I
>     was in fact hoping to be able to add other OSELAS toolchains, even
>     for MMU capable platforms. But if they have such uClibc
>     configurations, we might be limited to using their glibc toolchains.
> 
> What do you think?

I have no problem with option 1. In fact, I was going to try to do it
anyway even if the OSELAS toolchain got accepted. I'll start looking
into it in detail and report back. I haven't done anything similar in
the past so it might take me a while.

Thanks to all who reviewed the patches!

-- 
Guido Mart?nez, VanguardiaSur
www.vanguardiasur.com.ar

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2015-07-15 17:19 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-26 17:33 [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Guido Martínez
2015-06-26 17:33 ` [Buildroot] [PATCH 1/4] arm: update processor types Guido Martínez
2015-06-27 10:24   ` Yann E. MORIN
2015-06-26 17:33 ` [Buildroot] [PATCH 2/4] toolchain: allow for stupid toolchains Guido Martínez
2015-06-27 10:28   ` Yann E. MORIN
2015-06-26 17:33 ` [Buildroot] [PATCH 3/4] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
2015-06-27 10:39   ` Yann E. MORIN
2015-06-26 17:33 ` [Buildroot] [PATCH 4/4] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
2015-06-27 12:42   ` Yann E. MORIN
2015-06-28 12:34 ` [Buildroot] [PATCH v3 0/4] Add ARM Cortex-M3 support Thomas Petazzoni
2015-06-29 15:01   ` Guido Martínez
2015-07-14 15:11 ` [Buildroot] [PATCH v4 0/3] " Guido Martínez
2015-07-14 15:11   ` [Buildroot] [PATCH v4 1/3] busybox: disable nslookup applet Guido Martínez
2015-07-14 15:11   ` [Buildroot] [PATCH v4 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
2015-07-14 15:42     ` Baruch Siach
2015-07-14 15:57       ` Guido Martínez
2015-07-14 15:11   ` [Buildroot] [PATCH v4 3/3] toolchain: disable internal for blackfin Guido Martínez
2015-07-14 15:43     ` Baruch Siach
2015-07-14 15:58       ` Guido Martínez
2015-07-14 19:20     ` Waldemar Brodkorb
2015-07-14 16:09   ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Guido Martínez
2015-07-14 16:09     ` [Buildroot] [PATCH v5 2/3] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
2015-07-14 16:09     ` [Buildroot] [PATCH v5 3/3] toolchain: disable internal for Cortex-M3 Guido Martínez
2015-07-14 16:31     ` [Buildroot] [PATCH v5 1/3] busybox: disable nslookup applet Thomas Petazzoni
2015-07-14 16:55       ` Thomas Petazzoni
2015-07-14 17:10         ` Gustavo Zacarias
2015-07-15 17:19         ` Guido Martínez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.