Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support
@ 2015-05-18 14:24 Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 1/6] arm: update processor types Guido Martínez
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 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. The toolchain is
packaged as a .deb package, so I implemented INFLATE.deb so we don't
need special EXTRACT_CMDS for it (although that isn't really too ugly,
so it's up for discussion).

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 v1 (sent by Ezequiel) are:
 - Patch 1 was accepted, so dropped it.

 - The toolchain checked is not skipped, but done with a different
 output as Yann suggested.

 - This toolchain version is newer than the previous one (2014.12.0 vs
 (2013.12.2).

 - Added a script to implement INFLATE.deb in support/extract/, to avoid
 custom extract commands. This might also be useful for other packages.

When we sent out v1 there was a discussion about adding
BR2_HAS_{ELF,FLAT}_SUPPORT and BR2_HAS_OPTIONAL_MMU to avoid
blacklisting each architecture on the ELF, FLAT and MMU configs. I
haven't done this for now as it would make it a huge patchset and is a
different objective (I think), but I can send a new patch for that if
there's interest.

Any comments and testing welcome!

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

--

Guido Mart?nez (6):
  arm: update processor types
  pkg-utils: implement INFLATE for .deb files
  toolchain: allow for stupid toolchains
  toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
  nommu/flat: don't add -elf2flt for some toolchains
  toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain

 Makefile                                           |  2 +
 arch/Config.in                                     |  8 ++--
 arch/Config.in.arm                                 |  5 +++
 package/Makefile.in                                |  3 ++
 package/busybox/busybox.mk                         |  3 ++
 package/pkg-utils.mk                               |  1 +
 support/extract/inflate-deb.sh                     |  5 +++
 toolchain/Config.in                                |  6 +++
 toolchain/helpers.mk                               |  6 ++-
 toolchain/toolchain-common.in                      |  6 ++-
 toolchain/toolchain-external/Config.in             | 43 ++++++++++++++++++++++
 .../toolchain-external/toolchain-external.hash     |  4 ++
 toolchain/toolchain-external/toolchain-external.mk | 10 +++++
 13 files changed, 94 insertions(+), 8 deletions(-)
 create mode 100755 support/extract/inflate-deb.sh

-- 
2.1.4

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

* [Buildroot] [PATCH v2 1/6] arm: update processor types
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  2015-05-18 20:05   ` Thomas Petazzoni
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files Guido Martínez
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 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                | 8 ++++----
 arch/Config.in.arm            | 5 +++++
 toolchain/toolchain-common.in | 6 ++++--
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/arch/Config.in b/arch/Config.in
index 06aff2c..8ff4a05 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -244,13 +244,13 @@ config BR2_BINFMT_SUPPORTS_SHARED
 # Set up target binary format
 choice
 	prompt "Target Binary Format"
-	default BR2_BINFMT_ELF if !(BR2_bfin || BR2_m68k)
+	default BR2_BINFMT_ELF if !(BR2_bfin || BR2_m68k || BR2_cortex_m3)
 	default BR2_BINFMT_FDPIC if BR2_bfin
-	default BR2_BINFMT_FLAT if BR2_m68k
+	default BR2_BINFMT_FLAT if BR2_m68k || BR2_cortex_m3
 
 config BR2_BINFMT_ELF
 	bool "ELF"
-	depends on !BR2_bfin && !BR2_m68k
+	depends on !BR2_bfin && !BR2_m68k && !BR2_cortex_m3
 	select BR2_BINFMT_SUPPORTS_SHARED
 	help
 	  ELF (Executable and Linkable Format) is a format for libraries and
@@ -269,7 +269,7 @@ config BR2_BINFMT_FDPIC
 
 config BR2_BINFMT_FLAT
 	bool "FLAT"
-	depends on BR2_bfin || BR2_m68k
+	depends on BR2_bfin || BR2_m68k || BR2_cortex_m3
 	help
 	  FLAT binary is a relatively simple and lightweight executable format
 	  based on the original a.out format. It is widely used in environment
diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index f5d317b..44dd47c 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -134,6 +134,10 @@ config BR2_cortex_a15
 	select BR2_ARM_CPU_HAS_VFPV4
 	select BR2_ARM_CPU_HAS_THUMB2
 	select BR2_ARM_CPU_ARMV7A
+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
@@ -391,6 +395,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
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index d50c908..d71b850 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -108,8 +108,10 @@ config BR2_NEEDS_GETTEXT_IF_LOCALE
 	default y if (BR2_NEEDS_GETTEXT && BR2_ENABLE_LOCALE)
 
 config BR2_USE_MMU
-	bool "Enable MMU support" if BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
-	default y if !BR2_bfin
+	bool "Enable MMU support"
+	depends on BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
+	depends on !BR2_cortex_m3 && !BR2_bfin
+	default y
 	help
 	  If your target has a MMU, you should say Y here.  If you
 	  are unsure, just say Y.
-- 
2.1.4

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

* [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 1/6] arm: update processor types Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  2015-05-18 19:55   ` Thomas Petazzoni
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 3/6] toolchain: allow for stupid toolchains Guido Martínez
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 UTC (permalink / raw)
  To: buildroot

This allows to use packages that are shipped in the .deb format.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 Makefile                       | 2 ++
 package/pkg-utils.mk           | 1 +
 support/extract/inflate-deb.sh | 5 +++++
 3 files changed, 8 insertions(+)
 create mode 100755 support/extract/inflate-deb.sh

diff --git a/Makefile b/Makefile
index 5c4293b..c20da1f 100644
--- a/Makefile
+++ b/Makefile
@@ -339,6 +339,8 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
 ZCAT := $(call qstrip,$(BR2_ZCAT))
 BZCAT := $(call qstrip,$(BR2_BZCAT))
 XZCAT := $(call qstrip,$(BR2_XZCAT))
+export ZCAT BZCAT XZCAT
+
 TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
 
 # packages compiled for the host go here
diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 99a3c1e..196dd36 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -77,6 +77,7 @@ INFLATE.tbz  = $(BZCAT)
 INFLATE.tbz2 = $(BZCAT)
 INFLATE.tgz  = $(ZCAT)
 INFLATE.xz   = $(XZCAT)
+INFLATE.deb  = ./support/extract/inflate-deb.sh
 INFLATE.tar  = cat
 # suitable-extractor(filename): returns extractor based on suffix
 suitable-extractor = $(INFLATE$(suffix $(1)))
diff --git a/support/extract/inflate-deb.sh b/support/extract/inflate-deb.sh
new file mode 100755
index 0000000..39e7b52
--- /dev/null
+++ b/support/extract/inflate-deb.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+DEBFILE=$1
+
+ar fp ${DEBFILE} data.tar.xz | ${XZCAT} -d
-- 
2.1.4

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

* [Buildroot] [PATCH v2 3/6] toolchain: allow for stupid toolchains
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 1/6] arm: update processor types Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 4/6] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 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] 14+ messages in thread

* [Buildroot] [PATCH v2 4/6] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
                   ` (2 preceding siblings ...)
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 3/6] toolchain: allow for stupid toolchains Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains Guido Martínez
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 6/6] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
  5 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 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.

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 1ce508a..44416a8 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -155,6 +155,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 6ea6838..3469fbc 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_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
@@ -284,6 +292,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
@@ -369,6 +378,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201311
 	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 MIPS architecture, from
 	  Mentor Graphics. It uses gcc 4.8.1, binutils 2.23.52, 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] 14+ messages in thread

* [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
                   ` (3 preceding siblings ...)
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 4/6] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  2015-05-18 19:58   ` Thomas Petazzoni
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 6/6] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez
  5 siblings, 1 reply; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 UTC (permalink / raw)
  To: buildroot

Some toolchains (OSELAS 2014.12.0, for instance) internally do elf2flt
conversion without having to add anything to {C,CXX,LD}FLAGS. So, add an
option that allows to not add these flags.

Signed-off-by: Guido Mart?nez <guido@vanguardiasur.com.ar>
---
 package/Makefile.in | 3 +++
 toolchain/Config.in | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/package/Makefile.in b/package/Makefile.in
index a0c5a7a..0ac1a94 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -142,12 +142,15 @@ TARGET_CXXFLAGS = $(TARGET_CFLAGS)
 TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
 
 ifeq ($(BR2_BINFMT_FLAT),y)
+# Don't add any flags for toolchains that don't require it
+ifneq ($(BR2_TOOLCHAIN_DONT_ELF2FLT),y)
 TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
 	-Wl$(comma)-elf2flt)
 TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
 	-Wl$(comma)-elf2flt)
 TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-elf2flt)
 endif
+endif
 
 ifeq ($(BR2_BINFMT_FLAT_SHARED),y)
 TARGET_LDFLAGS += -mid-shared-library -mshared-library-id=0
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 7e66de0..fd8dc43 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -23,6 +23,9 @@ config BR2_TOOLCHAIN_USES_UCLIBC
 config BR2_TOOLCHAIN_HAS_RESOLVER
 	bool
 
+config BR2_TOOLCHAIN_DONT_ELF2FLT
+	bool
+
 config BR2_TOOLCHAIN_USES_MUSL
 	bool
 	select BR2_USE_WCHAR
-- 
2.1.4

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

* [Buildroot] [PATCH v2 6/6] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain
  2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
                   ` (4 preceding siblings ...)
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains Guido Martínez
@ 2015-05-18 14:24 ` Guido Martínez
  5 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-18 14:24 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, and runs elf2flt automatically
when called. Thus, we don't select BR2_HAS_RESOLVER_SUPPORT and we do
select BR2_TOOLCHAIN_DONT_ELF2FLT.

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

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 3469fbc..34a0835 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -195,6 +195,19 @@ 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
+	select BR2_TOOLCHAIN_DONT_ELF2FLT
+	help
+	  OSELAS binary toolchain for Cortex-M3.
+
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411
 	bool "Sourcery CodeBench MIPS 2014.11"
 	depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@@ -941,6 +954,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_MIPS201311
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 444ddfd..ada42c8 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 b293ba9..808ee85 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -293,6 +293,9 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-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)
+	$(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_SOURCE)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
+		$(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] 14+ messages in thread

* [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files Guido Martínez
@ 2015-05-18 19:55   ` Thomas Petazzoni
  2015-05-19 16:00     ` Guido Martínez
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2015-05-18 19:55 UTC (permalink / raw)
  To: buildroot

Dear Guido Mart?nez,

On Mon, 18 May 2015 11:24:44 -0300, Guido Mart?nez wrote:

> +ar fp ${DEBFILE} data.tar.xz | ${XZCAT} -d

Are all Debian .deb packages compressed with the xz compression? How
many packages would benefit for this being supported at the package
infra level vs. handling it directly in the toolchain-external package?

We normally try to not clutter the package infra with features only
useful to one package, especially when the feature can easily be
implemented at the package level.

Best regards,

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

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

* [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains Guido Martínez
@ 2015-05-18 19:58   ` Thomas Petazzoni
  2015-05-19 19:00     ` Guido Martínez
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2015-05-18 19:58 UTC (permalink / raw)
  To: buildroot

Dear Guido Mart?nez,

On Mon, 18 May 2015 11:24:47 -0300, Guido Mart?nez wrote:

>  ifeq ($(BR2_BINFMT_FLAT),y)
> +# Don't add any flags for toolchains that don't require it
> +ifneq ($(BR2_TOOLCHAIN_DONT_ELF2FLT),y)

An option named "DONT_<something>" really isn't nice.

>  TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
>  	-Wl$(comma)-elf2flt)
>  TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
>  	-Wl$(comma)-elf2flt)
>  TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-elf2flt)

But the Blackfin toolchain also doesn't need -elf2flt as far as I know,
the FLAT toolchain also directly produces FLAT binaries without
specifying any flags. Maybe we should instead adjust the logic here
instead of working around it?

Thanks,

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

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

* [Buildroot] [PATCH v2 1/6] arm: update processor types
  2015-05-18 14:24 ` [Buildroot] [PATCH v2 1/6] arm: update processor types Guido Martínez
@ 2015-05-18 20:05   ` Thomas Petazzoni
  2015-05-19 15:53     ` Guido Martínez
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2015-05-18 20:05 UTC (permalink / raw)
  To: buildroot

Dear Guido Mart?nez,

On Mon, 18 May 2015 11:24:43 -0300, Guido Mart?nez wrote:

>  config BR2_USE_MMU
> -	bool "Enable MMU support" if BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
> -	default y if !BR2_bfin
> +	bool "Enable MMU support"
> +	depends on BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
> +	depends on !BR2_cortex_m3 && !BR2_bfin

This breaks things, because now BR2_USE_MMU is empty on architectures
others than arm, armeb, sh and xtensa.

What we probably need is something like this:

config BR2_ARCH_MMU_OPTIONAL
	bool

config BR2_ARCH_MMU_MANDATORY
	bool

and have all ARM cores select BR2_ARCH_MMU_OPTIONAL except Cortex M3,
SuperH and Xtensa select BR2_ARCH_MMU_OPTIONAL, all other architectures
except Blackfin selecting BR2_ARCH_MMU_MANDATORY.

And then:

	bool "Enable MMU support" if BR2_ARCH_MMU_OPTIONAL
	default y if BR2_ARCH_MMU_MANDATORY || BR2_ARCH_MMU_OPTIONAL

or something like that.

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

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

* [Buildroot] [PATCH v2 1/6] arm: update processor types
  2015-05-18 20:05   ` Thomas Petazzoni
@ 2015-05-19 15:53     ` Guido Martínez
  2015-05-21 16:51       ` Guido Martínez
  0 siblings, 1 reply; 14+ messages in thread
From: Guido Martínez @ 2015-05-19 15:53 UTC (permalink / raw)
  To: buildroot

On Mon, May 18, 2015 at 10:05:12PM +0200, Thomas Petazzoni wrote:
> >  config BR2_USE_MMU
> > -	bool "Enable MMU support" if BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
> > -	default y if !BR2_bfin
> > +	bool "Enable MMU support"
> > +	depends on BR2_arm || BR2_armeb || BR2_sh || BR2_xtensa
> > +	depends on !BR2_cortex_m3 && !BR2_bfin
> 
> This breaks things, because now BR2_USE_MMU is empty on architectures
> others than arm, armeb, sh and xtensa.
Ugh, stupid me.

> What we probably need is something like this:
> 
> config BR2_ARCH_MMU_OPTIONAL
> 	bool
> 
> config BR2_ARCH_MMU_MANDATORY
> 	bool
> 
> and have all ARM cores select BR2_ARCH_MMU_OPTIONAL except Cortex M3,
> SuperH and Xtensa select BR2_ARCH_MMU_OPTIONAL, all other architectures
> except Blackfin selecting BR2_ARCH_MMU_MANDATORY.
> 
> And then:
> 
> 	bool "Enable MMU support" if BR2_ARCH_MMU_OPTIONAL
> 	default y if BR2_ARCH_MMU_MANDATORY || BR2_ARCH_MMU_OPTIONAL
> 
> or something like that.
Yes, I'll work on something like that.

Sorry for the noise :(

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

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

* [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files
  2015-05-18 19:55   ` Thomas Petazzoni
@ 2015-05-19 16:00     ` Guido Martínez
  0 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-19 16:00 UTC (permalink / raw)
  To: buildroot

On Mon, May 18, 2015 at 09:55:58PM +0200, Thomas Petazzoni wrote:
> Dear Guido Mart?nez,
> 
> On Mon, 18 May 2015 11:24:44 -0300, Guido Mart?nez wrote:
> 
> > +ar fp ${DEBFILE} data.tar.xz | ${XZCAT} -d
> 
> Are all Debian .deb packages compressed with the xz compression? How
> many packages would benefit for this being supported at the package
> infra level vs. handling it directly in the toolchain-external package?
I had tried with several packages and found they were all XZ-compressed,
but I just tried with ~6000 packages and saw that only 90% are
XZ-compressed, so this wouldn't work.

I also don't know of any packages we might want to use are only shipped
the .deb format.

> We normally try to not clutter the package infra with features only
> useful to one package, especially when the feature can easily be
> implemented at the package level.
Yeah, I agree. I'll drop this and revert back to custom extract
commands.

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

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

* [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains
  2015-05-18 19:58   ` Thomas Petazzoni
@ 2015-05-19 19:00     ` Guido Martínez
  0 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-19 19:00 UTC (permalink / raw)
  To: buildroot

On Mon, May 18, 2015 at 09:58:41PM +0200, Thomas Petazzoni wrote:
> Dear Guido Mart?nez,
> 
> On Mon, 18 May 2015 11:24:47 -0300, Guido Mart?nez wrote:
> 
> >  ifeq ($(BR2_BINFMT_FLAT),y)
> > +# Don't add any flags for toolchains that don't require it
> > +ifneq ($(BR2_TOOLCHAIN_DONT_ELF2FLT),y)
> 
> An option named "DONT_<something>" really isn't nice.
> 
> >  TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
> >  	-Wl$(comma)-elf2flt)
> >  TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
> >  	-Wl$(comma)-elf2flt)
> >  TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-elf2flt)
> 
> But the Blackfin toolchain also doesn't need -elf2flt as far as I know,
> the FLAT toolchain also directly produces FLAT binaries without
> specifying any flags.
Hm, that's right. In that case I don't know why -elf2flt is specified
when there's no $(PKG)_FLAT_STACKSIZE. For this particular toolchain it
causes the linker to explode while building U-boot, which doesn't happen
with other toolchains.

Removing "-Wl$(comma)-elf2flt" from the else-part fixes it too.

I'll into it some more.

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

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

* [Buildroot] [PATCH v2 1/6] arm: update processor types
  2015-05-19 15:53     ` Guido Martínez
@ 2015-05-21 16:51       ` Guido Martínez
  0 siblings, 0 replies; 14+ messages in thread
From: Guido Martínez @ 2015-05-21 16:51 UTC (permalink / raw)
  To: buildroot

On Tue, May 19, 2015 at 12:53:42PM -0300, Guido Mart?nez wrote:
> Yes, I'll work on something like that.

I'm sending two patches tidying up the MMU and BINFMT configs. After
that I'll respin the m3 series with the changes discussed.

Thanks for the comments!

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

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

end of thread, other threads:[~2015-05-21 16:51 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-18 14:24 [Buildroot] [PATCH v2 0/6] Add ARM Cortex-M3 support Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 1/6] arm: update processor types Guido Martínez
2015-05-18 20:05   ` Thomas Petazzoni
2015-05-19 15:53     ` Guido Martínez
2015-05-21 16:51       ` Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 2/6] pkg-utils: implement INFLATE for .deb files Guido Martínez
2015-05-18 19:55   ` Thomas Petazzoni
2015-05-19 16:00     ` Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 3/6] toolchain: allow for stupid toolchains Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 4/6] toolchain: introduce BR2_TOOLCHAIN_HAS_RESOLVER Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 5/6] nommu/flat: don't add -elf2flt for some toolchains Guido Martínez
2015-05-18 19:58   ` Thomas Petazzoni
2015-05-19 19:00     ` Guido Martínez
2015-05-18 14:24 ` [Buildroot] [PATCH v2 6/6] toolchain-external: add OSELAS 2014.12.0 Cortex-M3 toolchain Guido Martínez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox