* [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).