linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
@ 2013-10-30 16:27 Paul Walmsley
  2013-10-30 16:51 ` Russell King - ARM Linux
  2013-11-17 18:50 ` Rob Landley
  0 siblings, 2 replies; 7+ messages in thread
From: Paul Walmsley @ 2013-10-30 16:27 UTC (permalink / raw)
  To: linux-arm-kernel


ARMv7 builds now make use of the pldw opcode and the ".arch_extension mp"
pragma.  These aren't supported in binutils prior to 2.21.  So, update
Documentation/Changes accordingly.

Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Thierry Reding <treding@nvidia.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>

---
Intended for 3.13.

  Documentation/Changes | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/Documentation/Changes b/Documentation/Changes
index b175808..97fcbdf 100644
--- a/Documentation/Changes
+++ b/Documentation/Changes
@@ -67,6 +67,9 @@ assembling the 16-bit boot code, removing the need for as86 to compile
  your kernel.  This change does, however, mean that you need a recent
  release of binutils.

+ARMv7 builds require binutils 2.21 or later due to the use of the pldw
+opcode and ".arch_extension mp".
+
  Perl
  ----

-- 
1.8.1.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-10-30 16:27 [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds Paul Walmsley
@ 2013-10-30 16:51 ` Russell King - ARM Linux
  2013-11-17 18:50 ` Rob Landley
  1 sibling, 0 replies; 7+ messages in thread
From: Russell King - ARM Linux @ 2013-10-30 16:51 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 30, 2013 at 09:27:07AM -0700, Paul Walmsley wrote:
>
> ARMv7 builds now make use of the pldw opcode and the ".arch_extension mp"
> pragma.  These aren't supported in binutils prior to 2.21.  So, update
> Documentation/Changes accordingly.
>
> Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Russell King <linux@arm.linux.org.uk>

You can drop this Cc: line, thanks.

> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Thierry Reding <treding@nvidia.com>
> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
>
> ---
> Intended for 3.13.
>
>  Documentation/Changes | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/Documentation/Changes b/Documentation/Changes
> index b175808..97fcbdf 100644
> --- a/Documentation/Changes
> +++ b/Documentation/Changes
> @@ -67,6 +67,9 @@ assembling the 16-bit boot code, removing the need for as86 to compile
>  your kernel.  This change does, however, mean that you need a recent
>  release of binutils.
>
> +ARMv7 builds require binutils 2.21 or later due to the use of the pldw
> +opcode and ".arch_extension mp".
> +
>  Perl
>  ----
>
> -- 
> 1.8.1.5
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-10-30 16:27 [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds Paul Walmsley
  2013-10-30 16:51 ` Russell King - ARM Linux
@ 2013-11-17 18:50 ` Rob Landley
  2013-11-18 16:56   ` Stephen Warren
  2013-11-18 20:06   ` Paul Walmsley
  1 sibling, 2 replies; 7+ messages in thread
From: Rob Landley @ 2013-11-17 18:50 UTC (permalink / raw)
  To: linux-arm-kernel

On 10/30/2013 11:27:07 AM, Paul Walmsley wrote:
> 
> ARMv7 builds now make use of the pldw opcode and the ".arch_extension  
> mp"
> pragma.  These aren't supported in binutils prior to 2.21.  So, update
> Documentation/Changes accordingly.

ARMv7 support didn't _exist_ in the minimal binutils version, and ARMv8  
support is newer still. Hexagon, microblaze, they've all shown up in  
newer versions than the one that will build older architectures.

Annotating the global Documentation/Changes with every per-arch  
requirement... not sure that's the right place for it.

I also note that the FSF's toolchain seems to be losing steam again,  
and this time around EGCS is called LLVM. Now that http://ellcc.org is  
self-hosting (and can even build native toolchains as of  
http://ellcc.org/blog/?p=251) all they need is http://lld.llvm.org to  
catch up and I think they've got a complete non-gnu toolchain capable  
of building a linux system. (It already contains musl-libc.org, I'm  
banging on toybox to provide a public domain busybox replacement...)

So there are larger issues in motion here. Noting armv7 requirements in  
an arm-specific file makes sense. Annotating the top level one raises  
the question of why not to do that for arc, unicore, openrisc, tile...

Rob

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-11-17 18:50 ` Rob Landley
@ 2013-11-18 16:56   ` Stephen Warren
  2013-12-05  2:26     ` Rob Landley
  2013-11-18 20:06   ` Paul Walmsley
  1 sibling, 1 reply; 7+ messages in thread
From: Stephen Warren @ 2013-11-18 16:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 11/17/2013 11:50 AM, Rob Landley wrote:
> On 10/30/2013 11:27:07 AM, Paul Walmsley wrote:
>>
>> ARMv7 builds now make use of the pldw opcode and the ".arch_extension mp"
>> pragma.  These aren't supported in binutils prior to 2.21.  So, update
>> Documentation/Changes accordingly.
> 
> ARMv7 support didn't _exist_ in the minimal binutils version, and ARMv8
> support is newer still. Hexagon, microblaze, they've all shown up in
> newer versions than the one that will build older architectures.
> 
> Annotating the global Documentation/Changes with every per-arch
> requirement... not sure that's the right place for it.
...
> So there are larger issues in motion here. Noting armv7 requirements in
> an arm-specific file makes sense. Annotating the top level one raises
> the question of why not to do that for arc, unicore, openrisc, tile...

Documenting some of the requirements in the top-level file and some in a
per-arch file seems bad though. If we move the docs to a per-arch file,
we need to actively remove the top-level documentation since it will
conflict. What's wrong with a single table in the top-level document?
The answer to missing requirements for the other arch seems to be to
encourage the relevant maintainers to document them, not too disallow
the ARM requirements to be documented there.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-11-17 18:50 ` Rob Landley
  2013-11-18 16:56   ` Stephen Warren
@ 2013-11-18 20:06   ` Paul Walmsley
  2013-12-05  2:37     ` Rob Landley
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Walmsley @ 2013-11-18 20:06 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Rob,

On 11/17/2013 10:50 AM, Rob Landley wrote:
> On 10/30/2013 11:27:07 AM, Paul Walmsley wrote:
>> ARMv7 builds now make use of the pldw opcode and the ".arch_extension
>> mp"
>> pragma.  These aren't supported in binutils prior to 2.21.  So, update
>> Documentation/Changes accordingly.
> Annotating the global Documentation/Changes with every per-arch
> requirement... not sure that's the right place for it.

It doesn't matter to me where it's documented in the kernel 
documentation, but we should document it.

And we should expect folks who post patches with new toolchain 
constraints to also send patches for that documentation...

> Noting armv7 requirements in
> an arm-specific file makes sense. Annotating the top level one raises
> the question of why not to do that for arc, unicore, openrisc, tile...

Yes - it's the following x86-specific text in Documentation/Changes that 
inspired the patch:

-----
Linux on IA-32 has recently switched from using as86 to using gas for
assembling the 16-bit boot code, removing the need for as86 to compile
your kernel.  This change does, however, mean that you need a recent
release of binutils.
-----

But we can move that to Documentation/x86/ also.


regards,

- Paul

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-11-18 16:56   ` Stephen Warren
@ 2013-12-05  2:26     ` Rob Landley
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Landley @ 2013-12-05  2:26 UTC (permalink / raw)
  To: linux-arm-kernel

On 11/18/2013 10:56:39 AM, Stephen Warren wrote:
> On 11/17/2013 11:50 AM, Rob Landley wrote:
> > On 10/30/2013 11:27:07 AM, Paul Walmsley wrote:
> >>
> >> ARMv7 builds now make use of the pldw opcode and the  
> ".arch_extension mp"
> >> pragma.  These aren't supported in binutils prior to 2.21.  So,  
> update
> >> Documentation/Changes accordingly.
> >
> > ARMv7 support didn't _exist_ in the minimal binutils version, and  
> ARMv8
> > support is newer still. Hexagon, microblaze, they've all shown up in
> > newer versions than the one that will build older architectures.
> >
> > Annotating the global Documentation/Changes with every per-arch
> > requirement... not sure that's the right place for it.
> ...
> > So there are larger issues in motion here. Noting armv7  
> requirements in
> > an arm-specific file makes sense. Annotating the top level one  
> raises
> > the question of why not to do that for arc, unicore, openrisc,  
> tile...
> 
> Documenting some of the requirements in the top-level file and some  
> in a
> per-arch file seems bad though. If we move the docs to a per-arch  
> file,
> we need to actively remove the top-level documentation since it will
> conflict.

No, you just need to document arch-specific deltas in arch-specific  
files.

You can build Linux with gcc 3.4. There was no ARMv7 support in gcc 3.4  
(let alone 64 bit arm), but that doesn't change the fact that you can  
build Linux with it. Which is why it says "Upgrade to at *least* these  
software revisions".

If you're going to build Linux with llvm, you'll need a different  
version. If pcc manages to build linux (development of that's stalled  
but not stopped), then there's another one. If tinycc restarts...

> What's wrong with a single table in the top-level document?

So we haven't needed one for 20 years now, but your target is special?

The minimal requirements are the versions needed to build Linux at all,  
on any target, because there are generic features missing in earlier  
versions. Building Linux for a specific target often has more specific  
requirements.

> The answer to missing requirements for the other arch seems to be to
> encourage the relevant maintainers to document them, not too disallow
> the ARM requirements to be documented there.

There's a Documentation/arm directory but arm-specific documentation  
can't go there, it has to go at the top level even though other  
architectures haven't previously done this. The alternative is that any  
global documentation that does NOT apply to arm must be deleted to  
avoid confusing arm.

Is this really your position?

One of the 8 gazillion todo items I have queued up is moving  
Documentation/zorro.txt to the Documentation/m68k directory. That's not  
the same as deleting the file because its existence might confuse ARM  
developers. I honestly think most of them are smarter than that.

Rob

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds
  2013-11-18 20:06   ` Paul Walmsley
@ 2013-12-05  2:37     ` Rob Landley
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Landley @ 2013-12-05  2:37 UTC (permalink / raw)
  To: linux-arm-kernel

On 11/18/2013 02:06:18 PM, Paul Walmsley wrote:
> Hi Rob,
> 
> On 11/17/2013 10:50 AM, Rob Landley wrote:
>> On 10/30/2013 11:27:07 AM, Paul Walmsley wrote:
>>> ARMv7 builds now make use of the pldw opcode and the  
>>> ".arch_extension
>>> mp"
>>> pragma.  These aren't supported in binutils prior to 2.21.  So,  
>>> update
>>> Documentation/Changes accordingly.
>> Annotating the global Documentation/Changes with every per-arch
>> requirement... not sure that's the right place for it.
> 
> It doesn't matter to me where it's documented in the kernel  
> documentation, but we should document it.

Agreed, I'd just rather not add target-specific information to a file  
that currently has target-agnostic information.

A new file under Documentation/arm describing the build requirements  
for that platform would be nice. At some point I want to collate the  
target-specific directories under a Documentation/arch (so  
Documentation/arch/arm and Documentation/arch/m68k and so on, mirroring  
the source layout), but that's unrelated to this.

> And we should expect folks who post patches with new toolchain  
> constraints to also
> send patches for that documentation...

Agreed.

>> Noting armv7 requirements in
>> an arm-specific file makes sense. Annotating the top level one raises
>> the question of why not to do that for arc, unicore, openrisc,  
>> tile...
> 
> Yes - it's the following x86-specific text in Documentation/Changes  
> that inspired
> the patch:
> 
> -----
> Linux on IA-32 has recently switched from using as86 to using gas for
> assembling the 16-bit boot code, removing the need for as86 to compile
> your kernel.  This change does, however, mean that you need a recent
> release of binutils.
> -----

(Sigh, define "recent". Bisection search time, I suppose...)

> But we can move that to Documentation/x86/ also.

Agreed. Also the mcelog stuff looks x86-specific (or at least is  
currently documented as such). Also, I posted patches to remove the  
perl requirement but didn't remove the mention of perl from  
Documentation/Changes. I should fix that.

Also, Documentation/Changes is a weird name for the file describing the  
build environment requirements, but it's sort of grandfathered in at  
this point. That sort of implies I should add a  
Documentation/x86/Changes with the moved material, and the new arm file  
should be Documentation/arm/Changes. I suppose if the 00-INDEX  
clarifies that this describes the build environment requirements...

Which is worse, renaming a top level file that's been there for  
decades, or propagating the inaccurate name into subdirectories? Sigh,  
damned if you do...

Rob

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-12-05  2:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-30 16:27 [PATCH] Documentation/Changes: update binutils version requirement for ARMv7 builds Paul Walmsley
2013-10-30 16:51 ` Russell King - ARM Linux
2013-11-17 18:50 ` Rob Landley
2013-11-18 16:56   ` Stephen Warren
2013-12-05  2:26     ` Rob Landley
2013-11-18 20:06   ` Paul Walmsley
2013-12-05  2:37     ` Rob Landley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).