From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/2] package: Makefile.in: Add target compilation flags for NOMMU architecture.
Date: Fri, 22 Mar 2013 15:29:20 +0100 [thread overview]
Message-ID: <20130322152920.59b74891@skate> (raw)
In-Reply-To: <1363942902-6045-1-git-send-email-sonic.adi@gmail.com>
Dear Sonic Zhang,
On Fri, 22 Mar 2013 17:01:41 +0800, Sonic Zhang wrote:
> From: Sonic Zhang <sonic.zhang@analog.com>
Thanks for getting back to us with Blackfin-related changes!
> +config BR2_TARGET_ABI_FLAT
> + bool
I don't think FLAT is an ABI, it's a binary format.
For example, on ARM, you can have ELF or FLAT binaries, that follow
either the OABI or EABI. True, OABI is deprecated, but it still clearly
points the fact that FLAT is *not* an ABI, but a binary format.
Therefore, I think we should introduce config options like:
config BR2_BINFMT_ELF
bool
config BR2_BINFMT_FDPIC
bool
config BR2_BINFMT_FLAT
bool
probably with a choice list or something.
> if BR2_arm || BR2_armeb
> source "arch/Config.in.arm"
> endif
> diff --git a/package/Makefile.in b/package/Makefile.in
> index a8bf36b..acfd9c8 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -103,6 +103,14 @@ TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET
> TARGET_CXXFLAGS = $(TARGET_CFLAGS)
> TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
>
> +ifeq ($(BR2_TARGET_ABI_FLAT),y)
> +TARGET_LDFLAGS += -Wl,-elf2flt
> +endif
This will have to use some BR2_BINFMT_FLAT config option, as per the
discussion above.
> +ifneq ($(BR2_USE_MMU), y)
> +TARGET_CFLAGS += -D__NOMMU__
> +endif
I'm still not entirely happy with that. This define is completely
non-standard, I am not sure we want to have this at the global level.
autotools-based packages should be fixed to check if fork() is
available or not. For other packages, this special flag can be
introduced on a per-package basis. But it's true that maybe a good
number of packages will need that. Not sure here. What do others think?
> +
> ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_CTNG),y)
> TARGET_CROSS=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-
> else
> diff --git a/package/pkg-autotools.mk b/package/pkg-autotools.mk
> index 890506b..09bdc7b 100644
> --- a/package/pkg-autotools.mk
> +++ b/package/pkg-autotools.mk
> @@ -82,6 +82,11 @@ $(2)_CLEAN_OPT ?= clean
> $(2)_UNINSTALL_STAGING_OPT ?= DESTDIR=$$(STAGING_DIR) uninstall
> $(2)_UNINSTALL_TARGET_OPT ?= DESTDIR=$$(TARGET_DIR) uninstall
>
> +ifeq ($(BR2_TARGET_ABI_FLAT),y)
> + ifneq ($$($(2)_FLAT_STACKSIZE),)
> + $(2)_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -Wl,-elf2flt=-s$$($(2)_FLAT_STACKSIZE)"
> + endif
> +endif
Ok. This needs an update in the documentation, detailing the new
<pkg>_FLAT_STACKSIZE option.
> #
> # Configure step. Only define it if not already defined by the package
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 57b0fd0..5ce32f9 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -303,6 +303,11 @@ endif
>
> $(2)_REDISTRIBUTE ?= YES
>
> +ifeq ($(BR2_TARGET_ABI_FLAT),y)
> + ifneq ($$($(2)_FLAT_STACKSIZE),)
> + $(2)_FLAT_LDFLAGS = -Wl,-elf2flt=-s$$($(2)_FLAT_STACKSIZE)
> + endif
> +endif
How is this one supposed to work? Who will use <pkg>_FLAT_LDFLAGS?
Best regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2013-03-22 14:29 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-22 9:01 [Buildroot] [PATCH v3 1/2] package: Makefile.in: Add target compilation flags for NOMMU architecture Sonic Zhang
2013-03-22 9:01 ` [Buildroot] [PATCH v3 2/2] buildroot: target: Add Blackfin architecture support Sonic Zhang
2013-03-22 14:54 ` Thomas Petazzoni
2013-03-25 11:33 ` Sonic Zhang
2013-03-25 11:47 ` Thomas De Schampheleire
2013-03-26 8:16 ` Sonic Zhang
2013-03-26 8:41 ` Thomas Petazzoni
2013-03-26 9:36 ` Sonic Zhang
2013-03-26 10:08 ` Thomas Petazzoni
2013-03-26 7:25 ` Arnout Vandecappelle
2013-03-26 8:15 ` Thomas Petazzoni
2013-03-28 8:20 ` Sonic Zhang
2013-03-28 8:56 ` Thomas Petazzoni
2013-03-29 9:50 ` Sonic Zhang
2013-03-22 14:29 ` Thomas Petazzoni [this message]
2013-03-22 17:28 ` [Buildroot] [PATCH v3 1/2] package: Makefile.in: Add target compilation flags for NOMMU architecture Thomas De Schampheleire
2013-03-25 7:11 ` Arnout Vandecappelle
2013-03-25 7:50 ` Sonic Zhang
2013-03-25 7:57 ` Sonic Zhang
2013-03-25 7:58 ` Thomas Petazzoni
2013-03-25 8:51 ` Sonic Zhang
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=20130322152920.59b74891@skate \
--to=thomas.petazzoni@free-electrons.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox