[oe] commit 4d6a63850b4dc7ca2f060aedda26ddf4efa0e5cc

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Wed Jul 7 07:01:56 UTC 2010


2010/7/6 Koen Kooi <k.kooi at student.utwente.nl>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Things like this:
>
> +LIBC = "glibc"
> +ANGSTROMLIBC = "${LIBC}"
>
> +PREFERRED_VERSION_gcc-cross = "4.1.2"
> +PREFERRED_VERSION_gcc-cross-initial = "4.1.2"
> +PREFERRED_VERSION_gcc-cross-intermediate = "4.1.2"
> +PREFERRED_VERSION_binutils = "2.17.50.0.12"
> +PREFERRED_VERSION_binutils-cross = "2.17.50.0.12"
> +PREFERRED_VERSION_glibc = "2.5"
> +PREFERRED_VERSION_glibc-initial = "2.5"
>
> +PREFERRED_VERSION_busybox_nios2 = "1.13.2"
>
> +ASSUME_PROVIDED += "linux-libc-headers-native"
>
> do NOT belong in a machine.conf (or machine include). Those belong in
> the distro (or local.conf), not in the machine.
>
> So please, move the offending bits into a distro include (minus the
> assume provided) to stop this kind of bad example from spreading further.

Being the one who made the commit I'd like to make a few remarks.

First of all I suggest that if you quote text, you also quote the
comments that go with the text you quote:

# for now we pin gcc, glibc and binutils
# as these are the only versions that have
# nios2 support.
PREFERRED_VERSION_gcc-cross = "4.1.2"
PREFERRED_VERSION_gcc-cross-initial = "4.1.2"
PREFERRED_VERSION_gcc-cross-intermediate = "4.1.2"
PREFERRED_VERSION_binutils = "2.17.50.0.12"
PREFERRED_VERSION_binutils-cross = "2.17.50.0.12"
PREFERRED_VERSION_glibc = "2.5"
PREFERRED_VERSION_glibc-initial = "2.5"

# uclibc does not work yet
# PREFERRED_VERSION_uclibc = "0.9.30.3"
# PREFERRED_VERSION_uclibc-initial = "0.9.30.3"

# for now busybox 1.13.2 is the only one
# patched and tested for nios2 so pin this
# one too, until the other versions are updated
# for nios2 too.
PREFERRED_VERSION_busybox_nios2 = "1.13.2"

# there are some issues cross-compiling when
# using linux-libc-headers-native as we get
# some native inc dirs when compiling crt stuff
# ASSUME_PROVIDED fixes this (but breaks compilation
# on old host systems like red hat 4.
ASSUME_PROVIDED += "linux-libc-headers-native"

Secondly, pinning LIBC to glibc in a machine conf or include is indeed
not too desirable but as neither uclibc or eglibc are working for this
architecture I needed a way to indicate this.
If there is a better solution for this, please let me know.

Next wrt the busybox pinning: this is just a temporary as indicated by
the comment. It'll disappear for sure in the near future (after I had
time to look at later busyboxes and fix those).

Wrt the ASSUME_PROVIDED += "linux-libc-headers-native":
I'll happily remove it once the include badness introduced by
linux-libc-headers-native is fixed. (there is a different thread on
this).

And finally the pinning of gcc/binutils/glibc.
I feel the machine (and not the distro) is the one who should be able
to specify which version(s) work for that machine and what the
preferred version is.
That is: for gcc and binutils. glibc might be a different case.
It might be that a distro wants to override this, and I can imagine we
want to support that. I'd say overriding in such a case is done on an
architecture or machine base, not in a generic override.

Note also that the current machine description makes things working
for *all* distros, whereas without it it would probably not be working
for any distro at all!

And lastly I am unaware of any place in the oe manual which states the
above is bad behaviour (and why this is bad).

Frans.

PS: as mentioned before there are currently 100+ pinnings in
conf/machine/* and conf/machine/include/* and at least two other
machines pin gcc

PPS: adding a new architecture to oe is quite some work. Picking on
people does not really encourage to contribute that work. I could have
equally well have kept this local.




More information about the Openembedded-devel mailing list