Installing headers with 0.9.29 spawns gcc errors

Rob Landley rob at landley.net
Fri Jun 22 05:14:55 UTC 2007


On Thursday 21 June 2007 18:30:26 Yann E. MORIN wrote:
> The error occurs when the target architecture is not the same as the
> build/host one. That is, building a i?86-unknown-linux-uclibc on a
> i?86-unknown-linux-{gnu,uclibc} might not be affected (although it is
> still buggy in an other way, imho).

I've been doing this with my Firmware Linux build thingy for some time, so 
there's obviously more to it than that...

> > How do I reproduce this again?
>
> My setup is:
>  - linux-2.6.21.5's "make ARCH=i586 headers_install"
>  - uClibc configured for arm

You install i586 headers and then build an arm uClibc against that?

How is that supposed to work at _all_?  Your linux/asm directory would be all 
wrong.

>  - no locale support in uClibc
>  - uClibc-0.9.29's "make headers"
> At this point, binutils' and gcc's flavour don't matter, if I'm not misled.

ARCH=i586 plus uClibc's arch of arm: it go boing.

ARCH=arm and uClibc's arch of arm, that might work.

If that was a typo, then disabling locale support is the only potential point 
of weirdness, except that my config hasn't got locale support in it either.

> I just tested this x-compiler:
>  - build/host: x86_64 (AMD)
>  - target:     armv5b (xscale)

I've built for armv4l and armv5l.  Haven't done the big endian ones yet, but 
I've done both endiannesses of mips and they worked.

> You'll see something like:
> [ALL  ]  #
> [ALL  ]  # configuration written to .config
> [ALL  ]  #
> [ALL  ]  ./extra/scripts/conf-header.sh .config >
> include/bits/uClibc_config.h [ERROR]  cc1: error: unrecognized command line
> option "-mbig-endian" [ERROR]  :0: error: bad value (armv5te) for -march=
> switch

In mine it's:

Compile all sources at once into an object (DOMULTI) [N/y/?] n
Manuel's hidden warnings (UCLIBC_MJN3_ONLY) [N/y/?] n
#
# configuration written to .config
#
./extra/scripts/conf-header.sh .config > include/bits/uClibc_config.h
  CC ldso/ldso/ldso.oS
  AS ldso/ldso/arm/resolve.oS

That's building for armv4l with 0.9.29 stock.

The relevant section of my script is:

# Build and install uClibc

setupfor uClibc
make CROSS= allnoconfig KCONFIG_ALLCONFIG="${WORK}"/miniconfig-uClibc &&
make CROSS="${ARCH}-" KERNEL_HEADERS="${CROSS}/include" PREFIX="${CROSS}/" \
        RUNTIME_PREFIX=/ DEVEL_PREFIX=/ all install_runtime install_dev &&
cd .. &&
$CLEANUP uClibc*

> (Tags on the left are my logger's output.)
>
> You have to note that the error messages are not spitted out by the script
> ./extra/scripts/conf-header.sh, but by extra/scripts/gen_bits_syscall_h.sh
> which is called later. The builds were 'silent' and I have no time to
> produce verbose builds: sleep is catching fast... :-(
>
> Once the patch has been applied, both x-compilers don't spit the error any
> more.

They're not doing it for me now.  I'd like to reproduce the problem before 
endorsing a solution.

> Regards,
> Yann E. MORIN.

Rob
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.



More information about the uClibc mailing list