* [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1)
@ 2013-07-19 13:06 Gustavo Zacarias
2013-07-19 13:06 ` [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode Gustavo Zacarias
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Gustavo Zacarias @ 2013-07-19 13:06 UTC (permalink / raw)
To: buildroot
libmudflap doesn't build for a thumb(1) toolchain so disable it.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/gcc/gcc.mk | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index c0d821b..85cd7d4 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -194,6 +194,11 @@ ifeq ($(BR2_avr32),y)
HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
endif
+# ARM Thumb and mudflap aren't friends
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
+endif
+
# Disable mudflap and enable proper double/long double for SPE ABI
ifeq ($(BR2_powerpc_SPE),y)
HOST_GCC_COMMON_CONF_OPT += \
--
1.8.1.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode
2013-07-19 13:06 [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Gustavo Zacarias
@ 2013-07-19 13:06 ` Gustavo Zacarias
2013-07-19 22:07 ` Peter Korsgaard
2013-07-19 13:06 ` [Buildroot] [PATCHv2 3/3] uclibc/arm: doesn't build in thumb(1) mode with threads Gustavo Zacarias
2013-07-19 22:07 ` [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Peter Korsgaard
2 siblings, 1 reply; 7+ messages in thread
From: Gustavo Zacarias @ 2013-07-19 13:06 UTC (permalink / raw)
To: buildroot
It runs out of registers, so build it in ARM mode, EABI mandates
interworking so this isn't an issue.
Tested in an arm920t board.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/eglibc/eglibc.mk | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/package/eglibc/eglibc.mk b/package/eglibc/eglibc.mk
index 5431ac5..253dabd 100644
--- a/package/eglibc/eglibc.mk
+++ b/package/eglibc/eglibc.mk
@@ -23,6 +23,11 @@ EGLIBC_INSTALL_STAGING = YES
EGLIBC_INSTALL_STAGING_OPT = install_root=$(STAGING_DIR) install
+# Thumb build is broken, build in ARM mode
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+EGLIBC_EXTRA_CFLAGS += -marm
+endif
+
# Even though we use the autotools-package infrastructure, we have to
# override the default configure commands for several reasons:
#
@@ -36,7 +41,8 @@ define EGLIBC_CONFIGURE_CMDS
# Do the configuration
(cd $(@D)/build; \
$(TARGET_CONFIGURE_OPTS) \
- CFLAGS="-O2" CPPFLAGS="" CXXFLAGS="-O2" \
+ CFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \
+ CXXFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" \
$(SHELL) $(@D)/libc/configure \
ac_cv_path_BASH_SHELL=/bin/bash \
libc_cv_forced_unwind=yes \
--
1.8.1.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 3/3] uclibc/arm: doesn't build in thumb(1) mode with threads
2013-07-19 13:06 [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Gustavo Zacarias
2013-07-19 13:06 ` [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode Gustavo Zacarias
@ 2013-07-19 13:06 ` Gustavo Zacarias
2013-07-19 22:07 ` [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Peter Korsgaard
2 siblings, 0 replies; 7+ messages in thread
From: Gustavo Zacarias @ 2013-07-19 13:06 UTC (permalink / raw)
To: buildroot
It runs out of registers, it fails even in official form
(COMPILE_IN_THUMB_MODE=y) so just build it in ARM mode since EABI
mandates interworking.
Tested in an arm920t board.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/uclibc/Config.in | 2 +-
package/uclibc/uclibc.mk | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 8d16e8c..90aae90 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -185,7 +185,7 @@ config BR2_UCLIBC_ARM_TYPE
config BR2_UCLIBC_ARM_BX
bool
depends on BR2_UCLIBC_TARGET_ARCH = "arm"
- default y if !BR2_fa265 && !BR2_strongarm
+ default y if (BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2)
config BR2_UCLIBC_MIPS_ABI
string
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 0c76c3f..cf53280 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -74,6 +74,11 @@ define UCLIBC_ARM_ABI_CONFIG
$(call UCLIBC_OPT_SET,CONFIG_ARM_EABI,y,$(@D))
endef
+# Thumb build is broken with threads, build in ARM mode
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
+UCLIBC_EXTRA_CFLAGS += -marm
+endif
+
ifeq ($(BR2_UCLIBC_ARM_BX),y)
define UCLIBC_ARM_BX_CONFIG
$(call UCLIBC_OPT_SET,USE_BX,y,$(@D))
@@ -354,7 +359,7 @@ endif
UCLIBC_MAKE_FLAGS = \
ARCH="$(UCLIBC_TARGET_ARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
- UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
+ UCLIBC_EXTRA_CFLAGS="$(UCLIBC_EXTRA_CFLAGS) $(TARGET_ABI)" \
HOSTCC="$(HOSTCC)"
define UCLIBC_SETUP_DOT_CONFIG
--
1.8.1.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1)
2013-07-19 13:06 [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Gustavo Zacarias
2013-07-19 13:06 ` [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode Gustavo Zacarias
2013-07-19 13:06 ` [Buildroot] [PATCHv2 3/3] uclibc/arm: doesn't build in thumb(1) mode with threads Gustavo Zacarias
@ 2013-07-19 22:07 ` Peter Korsgaard
2 siblings, 0 replies; 7+ messages in thread
From: Peter Korsgaard @ 2013-07-19 22:07 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> libmudflap doesn't build for a thumb(1) toolchain so disable it.
Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Committed series, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode
2013-07-19 13:06 ` [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode Gustavo Zacarias
@ 2013-07-19 22:07 ` Peter Korsgaard
2013-07-21 15:24 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Peter Korsgaard @ 2013-07-19 22:07 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> It runs out of registers, so build it in ARM mode, EABI mandates
Gustavo> interworking so this isn't an issue.
Gustavo> Tested in an arm920t board.
Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Gustavo> ---
Gustavo> package/eglibc/eglibc.mk | 8 +++++++-
Gustavo> 1 file changed, 7 insertions(+), 1 deletion(-)
Gustavo> diff --git a/package/eglibc/eglibc.mk b/package/eglibc/eglibc.mk
Gustavo> index 5431ac5..253dabd 100644
Gustavo> --- a/package/eglibc/eglibc.mk
Gustavo> +++ b/package/eglibc/eglibc.mk
Gustavo> @@ -23,6 +23,11 @@ EGLIBC_INSTALL_STAGING = YES
Gustavo> EGLIBC_INSTALL_STAGING_OPT = install_root=$(STAGING_DIR) install
Gustavo> +# Thumb build is broken, build in ARM mode
Gustavo> +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
Gustavo> +EGLIBC_EXTRA_CFLAGS += -marm
Gustavo> +endif
Gustavo> +
Gustavo> # Even though we use the autotools-package infrastructure, we have to
Gustavo> # override the default configure commands for several reasons:
Gustavo> #
Gustavo> @@ -36,7 +41,8 @@ define EGLIBC_CONFIGURE_CMDS
Gustavo> # Do the configuration
Gustavo> (cd $(@D)/build; \
Gustavo> $(TARGET_CONFIGURE_OPTS) \
Gustavo> - CFLAGS="-O2" CPPFLAGS="" CXXFLAGS="-O2" \
Gustavo> + CFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \
I know you didn't add this, but why are we forcing -O2 here? Thomas?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode
2013-07-19 22:07 ` Peter Korsgaard
@ 2013-07-21 15:24 ` Thomas Petazzoni
2013-07-21 16:06 ` Peter Korsgaard
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2013-07-21 15:24 UTC (permalink / raw)
To: buildroot
Dear Peter Korsgaard,
On Sat, 20 Jul 2013 00:07:59 +0200, Peter Korsgaard wrote:
> Gustavo> @@ -36,7 +41,8 @@ define EGLIBC_CONFIGURE_CMDS
> Gustavo> # Do the configuration
> Gustavo> (cd $(@D)/build; \
> Gustavo> $(TARGET_CONFIGURE_OPTS) \
> Gustavo> - CFLAGS="-O2" CPPFLAGS="" CXXFLAGS="-O2" \
> Gustavo> + CFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \
>
> I know you didn't add this, but why are we forcing -O2 here? Thomas?
Because eglibc must be built with optimizations. See
http://patches.openembedded.org/patch/38849/ for example.
Best regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode
2013-07-21 15:24 ` Thomas Petazzoni
@ 2013-07-21 16:06 ` Peter Korsgaard
0 siblings, 0 replies; 7+ messages in thread
From: Peter Korsgaard @ 2013-07-21 16:06 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
Hi,
>> I know you didn't add this, but why are we forcing -O2 here? Thomas?
Thomas> Because eglibc must be built with optimizations. See
Thomas> http://patches.openembedded.org/patch/38849/ for example.
Ok, thanks. A small note about this would be good so it doesn't get
removed in future "cleanups".
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-21 16:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-19 13:06 [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Gustavo Zacarias
2013-07-19 13:06 ` [Buildroot] [PATCHv2 2/3] eglibc/arm: doesn't build in thumb(1) mode Gustavo Zacarias
2013-07-19 22:07 ` Peter Korsgaard
2013-07-21 15:24 ` Thomas Petazzoni
2013-07-21 16:06 ` Peter Korsgaard
2013-07-19 13:06 ` [Buildroot] [PATCHv2 3/3] uclibc/arm: doesn't build in thumb(1) mode with threads Gustavo Zacarias
2013-07-19 22:07 ` [Buildroot] [PATCHv2 1/3] gcc/arm: disable mudflap for thumb(1) Peter Korsgaard
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.