[aarch64] Fix the big endian loader name

Message ID 54F985F1.5070103@arm.com
State Committed
Headers

Commit Message

Szabolcs Nagy March 6, 2015, 10:48 a.m. UTC
  AArch64 uses arch specific configure.ac fragment to set HAVE_AARCH64_BE
in config.h so later the loader name can be decided based on this macro.

However config.h.in needs an appropriate line to generate the macro.

I think the loader name should be managed in a simpler way for future
abi variants.

Changelog:

2015-03-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config.h.in (HAVE_AARCH64_BE): Add.
  

Comments

Carlos O'Donell March 6, 2015, 4:24 p.m. UTC | #1
On 03/06/2015 05:48 AM, Szabolcs Nagy wrote:
> AArch64 uses arch specific configure.ac fragment to set HAVE_AARCH64_BE
> in config.h so later the loader name can be decided based on this macro.
> 
> However config.h.in needs an appropriate line to generate the macro.
> 
> I think the loader name should be managed in a simpler way for future
> abi variants.
> 
> Changelog:
> 
> 2015-03-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
> 
> 	* config.h.in (HAVE_AARCH64_BE): Add.
> 

Since you are talking about the "long term", what you propose is
not what we want.

Roland, please correct me if I'm wrong, but I think the consensus
was that all machine-dependent macros should move out of the top-level
config.h.in, and into the machine directories.

Unfortunately that requires work and rejiggering and we just keep
putting the machine macros into the top-level config.h.in.

Cheers,
Carlos.
  
Marcus Shawcroft March 6, 2015, 4:47 p.m. UTC | #2
On 6 March 2015 at 16:24, Carlos O'Donell <carlos@redhat.com> wrote:
> On 03/06/2015 05:48 AM, Szabolcs Nagy wrote:
>> AArch64 uses arch specific configure.ac fragment to set HAVE_AARCH64_BE
>> in config.h so later the loader name can be decided based on this macro.
>>
>> However config.h.in needs an appropriate line to generate the macro.
>>
>> I think the loader name should be managed in a simpler way for future
>> abi variants.
>>
>> Changelog:
>>
>> 2015-03-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
>>
>>       * config.h.in (HAVE_AARCH64_BE): Add.
>>
>
> Since you are talking about the "long term", what you propose is
> not what we want.
>
> Roland, please correct me if I'm wrong, but I think the consensus
> was that all machine-dependent macros should move out of the top-level
> config.h.in, and into the machine directories.
>
> Unfortunately that requires work and rejiggering and we just keep
> putting the machine macros into the top-level config.h.in.

Looks to me that this change is need to make the existing configure.ac
work as intended.  I would have thought it is better to separate such
fixes from restructure work.
Cheers
/Marcus
  
Carlos O'Donell March 6, 2015, 5:03 p.m. UTC | #3
On 03/06/2015 11:47 AM, Marcus Shawcroft wrote:
> On 6 March 2015 at 16:24, Carlos O'Donell <carlos@redhat.com> wrote:
>> On 03/06/2015 05:48 AM, Szabolcs Nagy wrote:
>>> AArch64 uses arch specific configure.ac fragment to set HAVE_AARCH64_BE
>>> in config.h so later the loader name can be decided based on this macro.
>>>
>>> However config.h.in needs an appropriate line to generate the macro.
>>>
>>> I think the loader name should be managed in a simpler way for future
>>> abi variants.
>>>
>>> Changelog:
>>>
>>> 2015-03-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
>>>
>>>       * config.h.in (HAVE_AARCH64_BE): Add.
>>>
>>
>> Since you are talking about the "long term", what you propose is
>> not what we want.
>>
>> Roland, please correct me if I'm wrong, but I think the consensus
>> was that all machine-dependent macros should move out of the top-level
>> config.h.in, and into the machine directories.
>>
>> Unfortunately that requires work and rejiggering and we just keep
>> putting the machine macros into the top-level config.h.in.
> 
> Looks to me that this change is need to make the existing configure.ac
> work as intended.  I would have thought it is better to separate such
> fixes from restructure work.

It is. Sorry, let me be clear, the patch as posted is fine
if it is required for AArch64.

I was simply talking about "future" things and explaining
how we wish this worked.

Cheers,
Carlos.
  
Joseph Myers March 6, 2015, 10:18 p.m. UTC | #4
On Fri, 6 Mar 2015, Carlos O'Donell wrote:

> Roland, please correct me if I'm wrong, but I think the consensus
> was that all machine-dependent macros should move out of the top-level
> config.h.in, and into the machine directories.

That's bug 14068.  (The wiki todo list identifies some other cases where 
we still need to get architecture-specific cases out of generic files.)
  
Marcus Shawcroft May 1, 2015, 1 p.m. UTC | #5
On 6 March 2015 at 10:48, Szabolcs Nagy <szabolcs.nagy@arm.com> wrote:

> 2015-03-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
>
>         * config.h.in (HAVE_AARCH64_BE): Add.

Committed. /Marcus
  

Patch

diff --git a/config.h.in b/config.h.in
index 695ca35..73ddb9c 100644
--- a/config.h.in
+++ b/config.h.in
@@ -260,4 +260,7 @@ 
 /* The PowerPC64 ELFv2 ABI is being used.  */
 #undef HAVE_ELFV2_ABI
 
+/* AArch64 big endian ABI */
+#undef HAVE_AARCH64_BE
+
 #endif