All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Enman <paul.enman@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] package/uclibc: Enable compile in thumb mode configuration option
Date: Sun, 13 Dec 2015 19:28:40 -0600	[thread overview]
Message-ID: <1450056520-18750-1-git-send-email-paul.enman@gmail.com> (raw)
In-Reply-To: <1449269795-17864-1-git-send-email-paul.enman@gmail.com>

From: penman <paul.enman@gmail.com>

Signed-off-by: Paul Enman <paul.enman@gmail.com>
---

When buildroot is configured to build uClibc with thumb, it uses a workaround
 for that relies on interworking between arm and thumb instructions and does
 not set the config file to enable compile in thumb mode.

This patch enables buildroot to configure and compile uClibc in thumb mode.

 arch/Config.in.arm       | 18 +++++++++---------
 package/uclibc/uclibc.mk | 12 ++++++++++++
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index 67ff384..2d318f2 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -374,6 +374,15 @@ config BR2_ARM_INSTRUCTIONS_ARM
 	  This option instructs the compiler to generate regular ARM
 	  instructions, that are all 32 bits wide.
 
+config BR2_ARM_INSTRUCTIONS_THUMB2
+	bool "Thumb2"
+	depends on BR2_ARM_CPU_HAS_THUMB2
+	help
+	  This option instructions the compiler to generate Thumb2
+	  instructions, which allows to mix 16 bits instructions and
+	  32 bits instructions. This generally provides a much smaller
+	  compiled binary size.
+
 config BR2_ARM_INSTRUCTIONS_THUMB
 	bool "Thumb"
 	depends on BR2_ARM_CPU_HAS_THUMB
@@ -389,15 +398,6 @@ comment "Thumb1 is not compatible with VFP"
 	depends on BR2_ARM_CPU_HAS_THUMB
 	depends on !BR2_ARM_SOFT_FLOAT
 
-config BR2_ARM_INSTRUCTIONS_THUMB2
-	bool "Thumb2"
-	depends on BR2_ARM_CPU_HAS_THUMB2
-	help
-	  This option instructions the compiler to generate Thumb2
-	  instructions, which allows to mix 16 bits instructions and
-	  32 bits instructions. This generally provides a much smaller
-	  compiled binary size.
-
 endchoice
 
 config BR2_ARCH
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index c62a40f..6685325 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -91,6 +91,17 @@ ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
 UCLIBC_EXTRA_CFLAGS += -marm
 endif
 
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB2),y)
+define UCLIBC_ARM_THUMB_CONFIG
+	$(call KCONFIG_ENABLE_OPT,COMPILE_IN_THUMB_MODE,$(@D)/.config)
+	$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_CONTEXT_FUNCS,$(@D)/.config)
+endef
+else
+define UCLIBC_ARM_THUMB_CONFIG
+	$(call KCONFIG_DISABLE_OPT,COMPILE_IN_THUMB_MODE,$(@D)/.config)
+endef
+endif
+
 ifeq ($(BR2_UCLIBC_ARM_BX),y)
 define UCLIBC_ARM_BX_CONFIG
 	$(call KCONFIG_ENABLE_OPT,USE_BX,$(@D)/.config)
@@ -373,6 +384,7 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
 	$(UCLIBC_ARC_TYPE_CONFIG)
 	$(UCLIBC_ARC_PAGE_SIZE_CONFIG)
 	$(UCLIBC_ARM_ABI_CONFIG)
+	$(UCLIBC_ARM_THUMB_CONFIG)
 	$(UCLIBC_ARM_BX_CONFIG)
 	$(UCLIBC_MIPS_ABI_CONFIG)
 	$(UCLIBC_MIPS_ISA_CONFIG)
-- 
1.9.1

  parent reply	other threads:[~2015-12-14  1:28 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-04 22:56 [Buildroot] [PATCH 1/1] [1/1] package/uclibc: Enable compile in thumb mode when selected penman
2015-12-05 15:08 ` Arnout Vandecappelle
2015-12-08 19:34   ` Paul Enman
2015-12-14  1:28 ` Paul Enman [this message]
2015-12-15 22:03   ` [Buildroot] [PATCH v2] package/uclibc: Enable compile in thumb mode configuration option Thomas Petazzoni
2015-12-16  7:10     ` Waldemar Brodkorb
2015-12-16 21:49       ` Arnout Vandecappelle
2015-12-19  9:13         ` Waldemar Brodkorb
2015-12-31 19:44           ` Paul Enman
2015-12-16 22:08     ` Arnout Vandecappelle
2015-12-18  0:11       ` Paul Enman
2015-12-18 21:55         ` Arnout Vandecappelle
2015-12-19  9:35           ` Waldemar Brodkorb
2015-12-19  9:31         ` Waldemar Brodkorb
2015-12-23 16:16     ` Paul Enman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450056520-18750-1-git-send-email-paul.enman@gmail.com \
    --to=paul.enman@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.