This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
--- Steven Newbury <s_j_newbury@yahoo.co.uk> wrote:
>
> --- Steven Newbury <s_j_newbury@yahoo.co.uk> wrote:
>
> >
> > --- Steven Newbury <s_j_newbury@yahoo.co.uk> wrote:
> >
> > >
> > > --- Khem Raj <khem@mvista.com> wrote:
> > >
> > > > Steven Newbury wrote:
> > > > > OK this is now confirmed. I tried turning on oldabi support and
> > booting
> > > > into
> > > > > another rootfs. That worked. Chrooting into my EABI environment gave
> > the
> > > > error
> > > > > below.
> > > > >
> > > > thats expected. EABI changes structure alignments and some structure
> > > > passing that happens between kernel and glibc
> > > > will not match and you will have problems. Especially when kernel tried
>
> > > > to compare the size of the structures for sanity
> > > > while catering system calls.
> > > >
> > > >
> > > Except the exact same thing happens when I try booting directly into my
> > pure
> > > EABI environment with no old ABI anywhere.
> > Above was with the 2.6.16 Linux kernel + patches
> >
> > I have now tested 2.6.17 + (a lot less!) patches:
> > Same thing happens, so I'm inclined to think something has gone wrong with
> my
> > glibc build??? Perhaps missing a "when EABI build do something different"
> > case?
> > I'll have a closer look. Any help would be most welcome! :-)
> >
> Statically linked "sash", built with the same toolchain; works fine if it
> makes
> any difference. I do find that a little odd...
>
I'm sorry that I keep replying to myself!
I don't know if it's relevant, but I had to manually define SSIZE_MAX when
cross compiling the native target gcc. On the other hand glibc compiled
cleanly. I am using portage to manage my cross compilation, the resultant
environment was used to compile glibc:
* ABI: default
* CBUILD: i686-pc-linux-gnu
* CHOST: arm-iwmmxt-linux-gnueabi
* CTARGET: arm-iwmmxt-linux-gnueabi
* CBUILD_OPT:
* CTARGET_OPT:
* CC:
* CFLAGS: -march=iwmmxt -mcpu=iwmmxt -pipe -O2 -march=iwmmxt
-mcpu=iwmmxt -mabi=aapcs
* Configuring GLIBC for nptl with:
--disable-dev-erandom
--with-abi=aapcs
--with-arch=iwmmxt
--with-tls
--with-__thread
--enable-add-ons=nptl,ports,c_stubs,libidn
--enable-kernel=2.6.16
--with-sysroot=/usr/arm-iwmmxt-linux-gnueabi/
--without-selinux
--without-cvs
--enable-bind-now
--build=i686-pc-linux-gnu
--host=arm-iwmmxt-linux-gnueabi
--disable-profile
--without-gd
--with-headers=/usr/arm-iwmmxt-linux-gnueabi//usr/include
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--libexecdir=/usr/lib/misc/glibc
The resulting binaries look like this:
arm-iwmmxt-linux-gnueabi-objdump /usr/arm-iwmmxt-linux-gnueabi/lib/libc-2.4.so
--all | grep ^private
private flags = 4000002: [Version4 EABI] [has entry point]
So it would seem to have used EABI.
I've crossposted to arm-linux-kernel in case it's a kernel problem.
Since it has been snipped from the above the error I'm getting is:
Inconsistency detected by ld.so: dl-minimal.c: 84: __libc_memalign: Assertion
`page != ((void *) -1)' failed!
This is when booting into a prepared pure EABI userspace attempting to run init
or (dynamically linked) bash. It's the first and only thing shown from
userspace following the kernel messages.
Steve
___________________________________________________________
Switch an email account to Yahoo! Mail, you could win FIFA World Cup tickets. http://uk.mail.yahoo.com
--
For unsubscribe information see http://sourceware.org/lists.html#faq
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |