Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] MIPS n32 shouldn't have SITEINFO_BITS = "64"
@ 2013-02-21 17:40 Peter Seebach
  2013-02-21 17:40 ` [PATCH 1/1] More n32 fixups Peter Seebach
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Seebach @ 2013-02-21 17:40 UTC (permalink / raw)
  To: openembedded-core

MIPS n32 is a mips64 which is 32 bit. This historical quirk is recognized
by insane.bbclass (except for a typo I made in a previous patch, also
fixed here), but siteinfo doesn't know, so various programs fail to build
correctly for it because SITEINFO_BITS is telling them they are 64-bit
builds. (We ran into this with nss, which isn't in oe-core that I know
of.)

So, add "bit-32" to mips-linux-gnun32's feature list (the SITEINFO_BITS
test checks for 32 first, 64 second, so I don't have to remove bit-64),
and remove the nonexistent mips-linux-gnun32 cases. Likewise for
mipsel/mips64el.

The following changes since commit a5362de60c0051f16b88a40bd9cb41915bee0b0f:
  Ross Burton (1):
        rootfs_ipkg: fix BAD_RECOMMENDATIONS handling

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib seebs/gnun32
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/gnun32

Peter Seebach (1):
  More n32 fixups

 meta/classes/insane.bbclass   |    2 +-
 meta/classes/siteinfo.bbclass |    6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)




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

* [PATCH 1/1] More n32 fixups
  2013-02-21 17:40 [PATCH 0/1] MIPS n32 shouldn't have SITEINFO_BITS = "64" Peter Seebach
@ 2013-02-21 17:40 ` Peter Seebach
       [not found]   ` <13cff0cc5c1.2760.0f39ed3bcad52ef2c88c90062b7714dc@gmail.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Seebach @ 2013-02-21 17:40 UTC (permalink / raw)
  To: openembedded-core

For perfectly sound reasons, n32 MIPS is a mips64 subset denoted by an
ABI change, thus, "mips64-vendor-linux-gnun32" rather than
"mips-vendor-linux-gnu". A previous change had fixed up insane.bbclass
to recognize these, which mostly worked, but left SITEINFO_BITS set to
64.

Since bit-32 is processed first, and there are specific checks for
linux-gnun32, modify the mips64-linux-gnun32 lines to specify "bit-32",
so things that check SITEINFO_BITS get the right answer. Also, drop
the mips{,el}-linux-gnun32 lines, because that's not a valid combination;
n32 only makes sense for mips64.

Also, the insane.bbclass change spelled "mips64el" as "mipsel64", which
no one noticed because no one's using little-endian n32, apparently.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
---
 meta/classes/insane.bbclass   |    2 +-
 meta/classes/siteinfo.bbclass |    6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index f52fcea..3eff4df 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -107,7 +107,7 @@ def package_qa_get_machine_dict():
                       },
             "linux-gnun32" :       {
                         "mips64":       ( 8,     0,    0,          False,         32),
-                        "mipsel64":     ( 8,     0,    0,          True,          32),
+                        "mips64el":     ( 8,     0,    0,          True,          32),
                       },
         }
 
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index e09d16a..09f88c6 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -67,10 +67,8 @@ def siteinfo_data(d):
         "arm-linux-uclibceabi": "arm-linux-uclibc",
         "armeb-linux-gnueabi": "armeb-linux",
         "armeb-linux-uclibceabi": "armeb-linux-uclibc",
-        "mips-linux-gnun32": "mips-linux",
-        "mipsel-linux-gnun32": "mipsel-linux",
-        "mips64-linux-gnun32": "mips-linux",
-        "mips64el-linux-gnun32": "mipsel-linux",
+        "mips64-linux-gnun32": "mips-linux bit-32",
+        "mips64el-linux-gnun32": "mipsel-linux bit-32",
         "powerpc-linux": "powerpc32-linux",
         "powerpc-linux-uclibc": "powerpc-linux powerpc32-linux",
         "powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux",
-- 
1.7.0.4




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

* Re: [PATCH 1/1] More n32 fixups
       [not found]   ` <13cff0cc5c1.2760.0f39ed3bcad52ef2c88c90062b7714dc@gmail.com>
@ 2013-02-21 23:23     ` Bernhard Reutner-Fischer
  2013-02-21 23:31       ` Peter Seebach
  0 siblings, 1 reply; 4+ messages in thread
From: Bernhard Reutner-Fischer @ 2013-02-21 23:23 UTC (permalink / raw)
  To: Peter Seebach, openembedded-core

On 21 February 2013 18:40:22 Peter Seebach <peter.seebach@windriver.com> wrote:
> For perfectly sound reasons, n32 MIPS is a mips64 subset denoted by an
> ABI change, thus, "mips64-vendor-linux-gnun32" rather than
> "mips-vendor-linux-gnu". A previous change had fixed up insane.bbclass
> to recognize these, which mostly worked, but left SITEINFO_BITS set to
> 64.
>
> Since bit-32 is processed first, and there are specific checks for
> linux-gnun32, modify the mips64-linux-gnun32 lines to specify "bit-32",
> so things that check SITEINFO_BITS get the right answer. Also, drop
> the mips{,el}-linux-gnun32 lines, because that's not a valid combination;
> n32 only makes sense for mips64.
>
> Also, the insane.bbclass change spelled "mips64el" as "mipsel64", which
> no one noticed because no one's using little-endian n32, apparently.

Would be great if you could have a look at the FIXME in 
meta/recipes-core/uclibc/uclibc-config.inc for the correct setting of 
the respective mips ABI.

Cheers,


Sent with AquaMail for Android
http://www.aqua-mail.com





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

* Re: [PATCH 1/1] More n32 fixups
  2013-02-21 23:23     ` Bernhard Reutner-Fischer
@ 2013-02-21 23:31       ` Peter Seebach
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Seebach @ 2013-02-21 23:31 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: openembedded-core

On Fri, 22 Feb 2013 00:23:48 +0100
Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote:

> > Also, the insane.bbclass change spelled "mips64el" as "mipsel64",
> > which no one noticed because no one's using little-endian n32,
> > apparently.  
> 
> Would be great if you could have a look at the FIXME in 
> meta/recipes-core/uclibc/uclibc-config.inc for the correct setting of 
> the respective mips ABI.

Hmm. I can look, but I don't think I've touched uclibc in a fairly
long time. Untested, but possibly pretty close:

--- a/meta/recipes-core/uclibc/uclibc-config.inc
+++ b/meta/recipes-core/uclibc/uclibc-config.inc
@@ -73,9 +73,11 @@ def map_uclibc_abi(o, d):
             return 'ARM_EABI'
         else:
             return 'ARM_OABI'
-    # FIXME: This is inaccurate! Handle o32, n32, n64
     elif re.match('^mips.*64$', arch):
-        return 'MIPS_N64_ABI'
+       if o.endswith('gnun32'):
+            return 'MIPS_N32_ABI'
+       else:
+            return 'MIPS_N64_ABI'
     elif re.match('^mips.*', arch):
         return 'MIPS_O32_ABI'
     return ""

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.



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

end of thread, other threads:[~2013-02-21 23:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-21 17:40 [PATCH 0/1] MIPS n32 shouldn't have SITEINFO_BITS = "64" Peter Seebach
2013-02-21 17:40 ` [PATCH 1/1] More n32 fixups Peter Seebach
     [not found]   ` <13cff0cc5c1.2760.0f39ed3bcad52ef2c88c90062b7714dc@gmail.com>
2013-02-21 23:23     ` Bernhard Reutner-Fischer
2013-02-21 23:31       ` Peter Seebach

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox