From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 00/12] RFC: ARC port
Date: Thu, 02 May 2013 18:32:01 +0200 [thread overview]
Message-ID: <51829501.7050400@mind.be> (raw)
In-Reply-To: <E6BF041E97966E4DB955F0DF883AD2D6339FE6A5@de02wembxa.internal.synopsys.com>
On 02/05/13 16:03, Mischa Jonker wrote:
>>> Maybe others will have a suggestion on this point?
>>
>> Not entirely clean either, but what about the following:
>>
>> [toolchain/gcc/Config.in]
>> config BR2_ARCH_HAS_ALL_GCC
>> bool
>>
>> config BR2_ARCH_HAS_GCC_4_4
>> bool
>> default y if BR2_ARCH_HAS_ALL_GCC
>>
>> [arch/Config.in]
>> config BR2_mips
>> select BR2_ARCH_HAS_ALL_GCC
>> ...
>>
>> [arch/Config.in.arm]
>> config BR2_arm1176jzf_s
>> select BR2_ARCH_HAS_ALL_GCC
>> ...
>> config BR2_cortex_a8
>> select BR2_ARCH_HAS_GCC_4_4
>> ...
>
> The problem with this is that you end up in Config.in.arm with a lot of "select BR2_ARCH_HAS_ALL_GCC" lines. It is more logical, but it adds a lot of clutter IMHO.
Okay, yet another idea. I don't know if this will actually work.
[toolchain/gcc/Config.in]
config BR2_ARCH_HAS_ALL_GCC
bool
default y if !(BR2_ARCH_HAS_GCC_4_4 || BR2_ARCH_HAS_GCC_4_5 ...)
config BR2_ARCH_HAS_GCC_4_4
bool
config BR2_GCC_VERSION_4_4_X
depends on BR2_ARCH_HAS_ALL_GCC || BR2_ARCH_HAS_GCC_4_4
> Unfortunately, we cannot make "BR2_ARCH_HAS_ALL_GCC" default y, because we don't have the 'deselect' keyword, so we need to add it everywhere. For ARM and x86, the architectures that aren't supported by all GCC versions are the exception, so instead of adding additional lines for just the exceptions, we end up with extra code everywhere.
>
> I also tried to let default values depend on earlier versions:
> config BR2_ARCH_HAS_GCC_4_5
> bool
> default y if BR2_ARCH_HAS_GCC_4_4
>
> But this doesn't work for several architectures, such as BR2_sparc_sparcsfleon, that do have GCC 4.4, but no 4.5 for instance.
>
> The reverse logic helps in the sense that the BR2_HAS_NO_GCC_x_y lines will go away over time when old GCC versions get deprecated.
Yes, looking at the alternatives, the negative logic isn't that bad...
However, the advantage of the positive logic is that it is slightly
more future-safe. When adding a new gcc version, you have to remember to
also add all the negative cases. Of course, you also have to remember to
add a new positive case, but it is less bad if you forget that.
>
> I will send both variants later today.
As Thomas said, don't feel obliged to continue working on this refactoring.
Regards,
Arnout
> Mischa
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
prev parent reply other threads:[~2013-05-02 16:32 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-24 10:13 [Buildroot] [PATCH v2 00/12] RFC: ARC port Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 01/12] arc: Add ARC and ARC BE architecture Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 02/12] arc: Add option for ARC-specific download site Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 03/12] arc: Add support for ARC-specific binutils Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 04/12] arc: Add arc, arcbe to gnuconfig Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 05/12] arc: disable Crosstool-NG for ARC Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 06/12] arc: add gcc " Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 07/12] arc: Add support for ARC-specific uClibc Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 08/12] arc: Make sure that libgcc doesn't get included when it doesn't exist yet Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 09/12] kernel-headers: Use ../testing URL for kernel release candidates Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 10/12] kernel-headers: Add 3.9-rc8 headers to make ARC work Mischa Jonker
2013-04-24 19:41 ` Peter Korsgaard
2013-04-24 10:13 ` [Buildroot] [PATCH v2 11/12] toolchain/gcc: Only enable --with-float when it makes sense Mischa Jonker
2013-04-24 10:13 ` [Buildroot] [PATCH v2 12/12] toolchain/gcc: Introduce BR2_ARCH_HAS_NO_GCC_x_y Mischa Jonker
2013-04-25 3:02 ` [Buildroot] [PATCH v2 00/12] RFC: ARC port Thomas Petazzoni
2013-04-25 11:01 ` Mischa Jonker
2013-04-29 20:45 ` Thomas Petazzoni
2013-04-30 16:06 ` Arnout Vandecappelle
2013-04-30 22:09 ` Thomas Petazzoni
2013-05-02 14:03 ` Mischa Jonker
2013-05-02 15:12 ` Thomas Petazzoni
2013-05-02 15:18 ` Mischa Jonker
2013-05-02 16:30 ` Thomas Petazzoni
2013-05-02 16:32 ` Arnout Vandecappelle [this message]
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=51829501.7050400@mind.be \
--to=arnout@mind.be \
--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