Disable o32 ABI for MIPS64 architectures
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
--- arch/Config.in.mips | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)
arch/Config.in.mips +7 -5
@@ -38,15 +38,12 @@ endchoice choice prompt "Target ABI" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - default BR2_MIPS_OABI32 if !BR2_ARCH_IS_64 - default BR2_MIPS_NABI32 if BR2_ARCH_IS_64 + depends on BR2_mips64 || BR2_mips64el + default BR2_MIPS_NABI32 help Application Binary Interface to use -config BR2_MIPS_OABI32 - bool "o32" config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64
@@ -86,6 +83,11 @@ config BR2_GCC_TARGET_ARCH default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + default n if BR2_mips64 || BR2_mips64el + config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32
Signature · 1 line
1.7.1
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 33 lines · Vicente Olivert Riera
Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Signed-off-by Vicente Olivert Riera <[email protected]>--- arch/Config.in.mips | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)arch/Config.in.mips +2
-5@@ -38,15 +38,12 @@ endchoice choice prompt "Target ABI" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - default BR2_MIPS_OABI32 if !BR2_ARCH_IS_64 - default BR2_MIPS_NABI32 if BR2_ARCH_IS_64 + depends on BR2_mips64 || BR2_mips64el + default BR2_MIPS_NABI32 help Application Binary Interface to use -config BR2_MIPS_OABI32 - bool "o32" config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64
arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 89
Quoted 7 lines
arch/Config.in.mips +4
-0@@ -86,6 +83,11 @@ config BR2_GCC_TARGET_ARCH default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + default n if BR2_mips64 || BR2_mips64el
The default n isn't needed - that is the default already in all other cases.
arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 93
Quoted 5 lines
arch/Config.in.mips +1
-0+ config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32
Normally we should have a Config.in.legacy entry to catch old .configs
that have o32 for a mips64 target. However, that is not possible now. Therefore, it should be captured in the release notes. To make sure that Peter doesn't forget, can you add this to the top of CHANGES?
2014.05, Not yet released:
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Regards,
Arnout
Signature · 6 lines
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
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 56 lines · Arnout Vandecappelle
Quoted 33 lines · Vicente Olivert Riera
Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Signed-off-by Vicente Olivert Riera <[email protected]>--- arch/Config.in.mips | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)arch/Config.in.mips +2
-5@@ -38,15 +38,12 @@ endchoice choice prompt "Target ABI" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - default BR2_MIPS_OABI32 if !BR2_ARCH_IS_64 - default BR2_MIPS_NABI32 if BR2_ARCH_IS_64 + depends on BR2_mips64 || BR2_mips64el + default BR2_MIPS_NABI32 help Application Binary Interface to use -config BR2_MIPS_OABI32 - bool "o32" config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 89
Quoted 7 lines
arch/Config.in.mips +4
-0@@ -86,6 +83,11 @@ config BR2_GCC_TARGET_ARCH default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + default n if BR2_mips64 || BR2_mips64elThe default n isn't needed - that is the default already in all other cases.
arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 93
Quoted 5 lines
arch/Config.in.mips +1
-0+ config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32Normally we should have a Config.in.legacy entry to catch old .configs
that have o32 for a mips64 target. However, that is not possible now. Therefore, it should be captured in the release notes. To make sure that Peter doesn't forget, can you add this to the top of CHANGES?
Quoted 7 lines
2014.05, Not yet released:
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have a somewhat-working n32 chroot on the same box. Additionally, isn't o32 the ABI that Debian still builds for most of their mips/mipsel targets?
I guess for newer MIPS hardware, this is definitely sensible, but given the wide availability of old SGI hardware on eBay, it's far from exotic. I also believe Debian still supports DEC systems, which are even older.
I still plan on looking at fixing the MIPS-II to MIPS-IV issue I raised a few weeks ago, but I've been tied up in other projects. So if there is some legacy way to retain this capability, maybe by defining an SGI-specific target at some point, that'd be great. It'll at least give me a starting port to isolate the legacy stuff so that it only applies to this old hardware and doesn't impede anyone working with newer hardware.
Food for thought :)
Signature · 9 lines
Joshua Kinard Gentoo/MIPS kumba at gentoo.org 4096R/D25D95E3 2011-03-28 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 65 lines · Joshua Kinard
Quoted 56 lines · Arnout Vandecappelle
Quoted 33 lines · Vicente Olivert Riera
Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Signed-off-by Vicente Olivert Riera <[email protected]>--- arch/Config.in.mips | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)arch/Config.in.mips +2
-5@@ -38,15 +38,12 @@ endchoice choice prompt "Target ABI" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - default BR2_MIPS_OABI32 if !BR2_ARCH_IS_64 - default BR2_MIPS_NABI32 if BR2_ARCH_IS_64 + depends on BR2_mips64 || BR2_mips64el + default BR2_MIPS_NABI32 help Application Binary Interface to use -config BR2_MIPS_OABI32 - bool "o32" config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 89
Quoted 7 lines
arch/Config.in.mips +4
-0@@ -86,6 +83,11 @@ config BR2_GCC_TARGET_ARCH default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + default n if BR2_mips64 || BR2_mips64elThe default n isn't needed - that is the default already in all other cases.
arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 93
Quoted 5 lines
arch/Config.in.mips +1
-0+ config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32Normally we should have a Config.in.legacy entry to catch old .configs
that have o32 for a mips64 target. However, that is not possible now. Therefore, it should be captured in the release notes. To make sure that Peter doesn't forget, can you add this to the top of CHANGES?Quoted 7 lines
2014.05, Not yet released:
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Quoted 4 lines
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have a somewhat-working n32 chroot on the same box. Additionally, isn't o32 the ABI that Debian still builds for most of their mips/mipsel targets?
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
Signature · 1 line
markos
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 76 lines · Markos Chandras
Quoted 68 lines · Joshua Kinard
Quoted 58 lines · Arnout Vandecappelle
Quoted 34 lines · Vicente Olivert Riera
Building o32 ELF files for MIPS64 is an exotic configuration that nobody
should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.Signed-off-by Vicente Olivert Riera <[email protected]>--- arch/Config.in.mips | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)arch/Config.in.mips +2
-5@@ -38,15 +38,12 @@ endchoice choice prompt "Target ABI" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - default BR2_MIPS_OABI32 if !BR2_ARCH_IS_64 - default BR2_MIPS_NABI32 if BR2_ARCH_IS_64 + depends on BR2_mips64 || BR2_mips64el + default BR2_MIPS_NABI32 help Application Binary Interface to use -config BR2_MIPS_OABI32 - bool "o32" config BR2_MIPS_NABI32 bool "n32" depends on BR2_ARCH_IS_64arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 89
Quoted 7 lines
arch/Config.in.mips +4
-0@@ -86,6 +83,11 @@ config BR2_GCC_TARGET_ARCH default "mips64" if BR2_mips_64 default "mips64r2" if BR2_mips_64r2 +config BR2_MIPS_OABI32 + bool + default y if BR2_mips || BR2_mipsel + default n if BR2_mips64 || BR2_mips64elThe default n isn't needed - that is the default already in all
other cases.arch/Config.in.mips config BR2_GCC_TARGET_ARCH · line 93
Quoted 5 lines
arch/Config.in.mips +1
-0+ config BR2_GCC_TARGET_ABI default "32" if BR2_MIPS_OABI32 default "n32" if BR2_MIPS_NABI32Normally we should have a Config.in.legacy entry to catch old .configs
that have o32 for a mips64 target. However, that is not possible now. Therefore, it should be captured in the release notes. To make sure that Peter doesn't forget, can you add this to the top of CHANGES?Quoted 8 lines
2014.05, Not yet released:
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be
using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.Quoted 6 lines
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have
a somewhat-working n32 chroot on the same box. Additionally, isn't o32 the
ABI that Debian still builds for most of their mips/mipsel targets?
Quoted 6 lines
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
V3 sent: http://patchwork.ozlabs.org/patch/333959/
Signature · 1 line
Vincent
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
In reply to Markos ChandrasHi Joshua,
Quoted 2 lines · Markos Chandras
Quoted 1 line · Joshua Kinard
On 03/25/2014 16:02, Arnout Vandecappelle wrote:
[snip]
Quoted 10 lines
Quoted 10 lines
Quoted 5 lines
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have
a somewhat-working n32 chroot on the same box. Additionally, isn't o32
So the mips64 n32 userspace created by buildroot doesn't work
completely, just somewhat?
Quoted 2 lines
Quoted 2 lines
the
ABI that Debian still builds for most of their mips/mipsel targets?
What Debian does is really not relevant here...
Quoted 6 lines
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
Joshua, if you agree with this reasoning, could you ack Vicente's patch?
Regards,
Arnout
Signature · 6 lines
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
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 13 lines · Arnout Vandecappelle
Hi Joshua,
Quoted 2 lines · Markos Chandras
Quoted 1 line · Joshua Kinard
On 03/25/2014 16:02, Arnout Vandecappelle wrote:
[snip]
Quoted 6 lines
Quoted 6 lines
Quoted 5 lines
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Quoted 7 lines
Quoted 4 lines
Quoted 4 lines
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have
a somewhat-working n32 chroot on the same box. Additionally, isn't o32So the mips64 n32 userspace created by buildroot doesn't work
completely, just somewhat?
No, "somewhat" means I haven't powered that machine up in a while and updated it. It boots into an o32 install I've had since 2005 (and am loathe to replace just yet, at least as long as the disks stay alive), and I chroot into a separate n32 root. It's got an old 350MHz RM7000 CPU (PMC-Sierra), so updating can take a long time for just the o32 root (gcc is ~17hrs these days. Used to be ~2.5hrs in the gcc-3.4.x days). Once that's updated, I then update the n32 root. Almost had that done until a recent snow storm knocked my power out, and I never resumed the update.
Quoted 7 lines
Quoted 5 lines
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
Joshua, if you agree with this reasoning, could you ack Vicente's patch?
Let me get clarification on what "MIPS64" Vincent was referring to first. It's easy to mix that up. I was assuming he meant o32 userland + mips64 kernel, which I know still works, even though it is very inefficient (using just half of your available CPU registers). If he's referring to the ISA of MIPS64 (or as I read it, mips64r1/mips64r2), then yeah, it's not a problem at all. Though I am not an authority on MIPS' capabilities outside of the SGI hardware lineup, as that's all that I have available to play with.
Signature · 9 lines
Joshua Kinard Gentoo/MIPS kumba at gentoo.org 4096R/D25D95E3 2011-03-28 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
Quoted 40 lines · Joshua Kinard
Quoted 13 lines · Arnout Vandecappelle
Hi Joshua,
Quoted 2 lines · Markos Chandras
Quoted 1 line · Joshua Kinard
On 03/25/2014 16:02, Arnout Vandecappelle wrote:
[snip]
Quoted 6 lines
Quoted 6 lines
Quoted 5 lines
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Quoted 7 lines
Quoted 4 lines
Quoted 4 lines
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have
a somewhat-working n32 chroot on the same box. Additionally, isn't o32So the mips64 n32 userspace created by buildroot doesn't work
completely, just somewhat?No, "somewhat" means I haven't powered that machine up in a while and updated it. It boots into an o32 install I've had since 2005 (and am loathe to replace just yet, at least as long as the disks stay alive), and I chroot into a separate n32 root. It's got an old 350MHz RM7000 CPU (PMC-Sierra), so updating can take a long time for just the o32 root (gcc is ~17hrs these days. Used to be ~2.5hrs in the gcc-3.4.x days). Once that's updated, I then update the n32 root. Almost had that done until a recent snow storm knocked my power out, and I never resumed the update.
Quoted 7 lines
Quoted 5 lines
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
Joshua, if you agree with this reasoning, could you ack Vicente's patch?
Quoted 9 lines
Let me get clarification on what "MIPS64" Vincent was referring to first. It's easy to mix that up. I was assuming he meant o32 userland + mips64 kernel, which I know still works, even though it is very inefficient (using just half of your available CPU registers). If he's referring to the ISA of MIPS64 (or as I read it, mips64r1/mips64r2), then yeah, it's not a problem at all. Though I am not an authority on MIPS' capabilities outside of the SGI hardware lineup, as that's all that I have available to play with.
Yes, maybe the commit message was confusing. We definitely did not mean mips64 kernel + o32 userland. We meant 64-bit userland + o32 ABI.
So I guess we are all good here :)
Signature · 1 line
markos
PATCH v2 1/1 Disable o32 ABI for MIPS64 architectures
In reply to Markos ChandrasQuoted 3 lines · Markos Chandras
Quoted 2 lines · Joshua Kinard
Quoted 1 line · Arnout Vandecappelle
On 25/03/14 18:52, Vicente Olivert Riera wrote:
[snip]
Quoted 11 lines
Quoted 10 lines
Quoted 5 lines
Support for MIPS o32 ABI on MIPS-64 targets has been removed. Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage.
Just to point out, I wouldn't call this "exotic" -- o32 on mips64 kernels (MIPS-IV ISA) is what I run on my SGI O2 under Gentoo. That said, I do have a somewhat-working n32 chroot on the same box. Additionally, isn't o32 the ABI that Debian still builds for most of their mips/mipsel targets?
Quoted 5 lines
We are talking about using 64-bit instructions in *userland* while maintaining the o32 ABI semantics. Well, this is definitely an exotic configuration. We are not talking about 64-bit kernels + o32 userland. An o32 userland usually comes from mips32 and you usually have only 32-bit instructions there.
I think the mixup I am having is the "MIPS64" that Vincent is referring to is the ISA, e.g., mips64r[12], not "MIPS64" as in "64bit MIPS", right?
Signature · 9 lines
Joshua Kinard Gentoo/MIPS kumba at gentoo.org 4096R/D25D95E3 2011-03-28 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic