Patchwork [0/1] Make n32 survive insane.bbclass and multilib_header

login
register
mail settings
Submitter Peter Seebach
Date Oct. 23, 2012, 8:32 p.m.
Message ID <cover.1351024134.git.peter.seebach@windriver.com>
Download mbox
Permalink /patch/38485/
State New
Headers show

Pull-request

git://git.yoctoproject.org/poky-contrib seebs/mips64

Comments

Peter Seebach - Oct. 23, 2012, 8:32 p.m.
The multilib_header fixup has code in the generated header to handle
n32, but doesn't detect n32 headers. Meanwhile, insane.bclass rejects
n32 binaries for being 32-bit binaries in a mips64 build. Solution: Use
an ABI suffix, and check for it in appropriate places.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>

The following changes since commit 754ddbf1c57e6b9d0650498538840effebe4f7a2:
  Ross Burton (1):
        libical: remove

are available in the git repository at:

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

Peter Seebach (1):
  insane.bbclass and friends: Fix sanity checks and multlib headers for
    n32

 meta/classes/insane.bbclass                  |    4 +++
 meta/classes/multilib_header.bbclass         |   32 +++++++++++++++++--------
 meta/conf/machine/include/mips/arch-mips.inc |    1 +
 3 files changed, 27 insertions(+), 10 deletions(-)
Saul Wold - Oct. 23, 2012, 8:49 p.m.
On 10/23/2012 01:32 PM, Peter Seebach wrote:
> The multilib_header fixup has code in the generated header to handle
> n32, but doesn't detect n32 headers. Meanwhile, insane.bclass rejects
> n32 binaries for being 32-bit binaries in a mips64 build. Solution: Use
> an ABI suffix, and check for it in appropriate places.
>

How can I build test this, the same way as x32?

Sau!

> Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
>
> The following changes since commit 754ddbf1c57e6b9d0650498538840effebe4f7a2:
>    Ross Burton (1):
>          libical: remove
>
> are available in the git repository at:
>
>    git://git.yoctoproject.org/poky-contrib seebs/mips64
>    http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/mips64
>
> Peter Seebach (1):
>    insane.bbclass and friends: Fix sanity checks and multlib headers for
>      n32
>
>   meta/classes/insane.bbclass                  |    4 +++
>   meta/classes/multilib_header.bbclass         |   32 +++++++++++++++++--------
>   meta/conf/machine/include/mips/arch-mips.inc |    1 +
>   3 files changed, 27 insertions(+), 10 deletions(-)
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
Peter Seebach - Oct. 23, 2012, 8:53 p.m.
On Tue, 23 Oct 2012 13:49:46 -0700
Saul Wold <sgw@linux.intel.com> wrote:

> How can I build test this, the same way as x32?

I am ... not entirely sure how you'd do it in the absence of an
n32 target. Our binary prebuilt toolchain uses n32 for one of the
Octeon parts.

I think any tuning that uses n32 should illustrate the failure modes in
the previous setup, which are:

1. First thing you build that has target binaries errors out with QA
checks because you're making 32-bit binaries for mips64.
2. Anything that wants ncurses ends up thinking that ncurses.h doesn't
exist because ncurses.h is a symlink to curses.h, and curses.h is
renamed to curses-64.h, but the #include magic in the wrapper looks for
curses-n32.h.

-s
Peter Seebach - Oct. 23, 2012, 9:47 p.m.
On Tue, 23 Oct 2012 13:49:46 -0700
Saul Wold <sgw@linux.intel.com> wrote:

> On 10/23/2012 01:32 PM, Peter Seebach wrote:
> > The multilib_header fixup has code in the generated header to handle
> > n32, but doesn't detect n32 headers. Meanwhile, insane.bclass
> > rejects n32 binaries for being 32-bit binaries in a mips64 build.
> > Solution: Use an ABI suffix, and check for it in appropriate places.
> >
> 
> How can I build test this, the same way as x32?

And to save you trouble, I don't know how it passed my first test build,
because it obviously fails now on glib. Solution seems to be:

+++ b/meta/classes/siteinfo.bbclass
@@ -50,6 +50,7 @@ def siteinfo_data(d):
         "linux": "common-linux common-glibc",
         "linux-gnu": "common-linux common-glibc",
         "linux-gnux32": "common-linux common-glibc",
+        "linux-gnun32": "common-linux common-glibc",

so I'll retest with that and resubmit.

-s