Patchwork nommu/flat: build packages with the correct FLAGS

login
register
mail settings
Submitter Gustavo Zacarias
Date Sept. 11, 2013, 12:53 p.m.
Message ID <1378904024-14607-1-git-send-email-gustavo@zacarias.com.ar>
Download mbox | patch
Permalink /patch/274269/
State Accepted
Commit 71701eb6d77f2fe03124f559ed0d1a9e559b3d17
Headers show

Comments

Gustavo Zacarias - Sept. 11, 2013, 12:53 p.m.
When building for nommu flat targets the CFLAGS/CXXFLAGS/LDFLAGS must be
adjusted accordingly.
For gcc this means passing along -Wl,-elf2flt to signal the linker.
For ld this means -elf2flt.

Also correct the error in STACKSIZE settings from commit 9edf482d which
is setting gcc flags as ld flags and will surely fail (no package uses
it at the moment so it was never seen).

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/Makefile.in | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
Thomas Petazzoni - Sept. 11, 2013, 1:40 p.m.
Dear Gustavo Zacarias,

On Wed, 11 Sep 2013 09:53:44 -0300, Gustavo Zacarias wrote:

>  ifeq ($(BR2_BINFMT_FLAT),y)
> +TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
> +	-Wl$(comma)-elf2flt)

Nitpicking, can't this be written:

TARGET_CFLAGS += -Wl$(comma)-elf2flt$(if $($(PKG)_FLAT_STACKSIZE),=-s$($(PKG)_FLAT_STACKSIZE))

not sure if it's more readable though.

Thomas
Gustavo Zacarias - Sept. 11, 2013, 1:41 p.m.
On 09/11/2013 10:40 AM, Thomas Petazzoni wrote:

> Dear Gustavo Zacarias,
> 
> On Wed, 11 Sep 2013 09:53:44 -0300, Gustavo Zacarias wrote:
> 
>>  ifeq ($(BR2_BINFMT_FLAT),y)
>> +TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
>> +	-Wl$(comma)-elf2flt)
> 
> Nitpicking, can't this be written:
> 
> TARGET_CFLAGS += -Wl$(comma)-elf2flt$(if $($(PKG)_FLAT_STACKSIZE),=-s$($(PKG)_FLAT_STACKSIZE))
> 
> not sure if it's more readable though.

Yes very likely, but i went for readable :)
If the FLAT support is extended there may be other options appended
there and separate clauses will be likely/better to avoid duplication
and general uglyness.
Regards.
Peter Korsgaard - Sept. 12, 2013, 10:12 p.m.
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

 Gustavo> When building for nommu flat targets the CFLAGS/CXXFLAGS/LDFLAGS must be
 Gustavo> adjusted accordingly.
 Gustavo> For gcc this means passing along -Wl,-elf2flt to signal the linker.
 Gustavo> For ld this means -elf2flt.

 Gustavo> Also correct the error in STACKSIZE settings from commit 9edf482d which
 Gustavo> is setting gcc flags as ld flags and will surely fail (no package uses
 Gustavo> it at the moment so it was never seen).

Committed, thanks.

Patch

diff --git a/package/Makefile.in b/package/Makefile.in
index 91ae1b9..dd365be 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -115,7 +115,11 @@  TARGET_CXXFLAGS = $(TARGET_CFLAGS)
 TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
 
 ifeq ($(BR2_BINFMT_FLAT),y)
-TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE))
+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
 
 ifeq ($(BR2_BINFMT_FLAT_SHARED),y)