[Fedora-packaging] Namespace for cross-compilation tools?

Ralf Corsepius rc040203 at freenet.de
Fri Jun 16 06:26:16 UTC 2006

On Fri, 2006-06-16 at 17:04 +1200, Michael J. Knox wrote:
> Ralf Corsepius wrote:
> > On Thu, 2006-06-15 at 23:19 -0500, Jason L Tibbitts III wrote:
> >>>>>>> "RC" == Ralf Corsepius <rc040203 at freenet.de> writes:
> >> RC> Why?
> >>
> >> What is "i386" and why does it have a subpackage of "rtems4.7"?
> >>
> >> RC> This name is the name being used for GNU crosstool toolchains for
> >> RC> many years (> a decade). It corresponds to the target
> >> RC> canonicalization tuple internally being used by binutils/gcc/gdb,
> >> RC> and the autotools.
> >>
> >> So?
> > Yes. Target canonicalization tuples are standardized (In particular in
> > binutils, GCC and gdb) and shared between *all* projects using
> > config.guess and config.sub (I.e. all package using the autotools).
> > 
> >>   We are free to make decisions for ourselves instead of blindly
> >> using someone else's naming convention.
> > Yes, it's our freedom to waste time on re- and over engineering parts
> > others have spend decades on.
> > 
> > A gcc cross compiler's components are called 
> > <target>-<component>
> > 
> > You can even find traces of this in Fedora:
> > e.g.
> > /usr/bin/i386-redhat-linux-gcc
> > /usr/bin/i386-redhat-linux-c++
> > 
> > I.e. people will be looking for <target>-<tool>
> > 
> >>   If the name is completely
> >> confusing (as it is to me) then surely we should talk about it before
> >> just stuffing it into the repository.
> > Would packages be called 
> > i386-cygwin-gcc
> > or
> > i386-redhat-gcc
> > i586-suse-gcc
> > sparc-sun-solaris2.8-gcc
> > 
> > be confusing to you?
> > 
> > IMO, they are self-explanatory.
> Why is the binary target name being used for the package name? That's 
> not intuitive to an end user at all IMHO.
> I think confusing the binary target name with the actual package name is 
> a mistake.
> gcc is gcc, not i386-redhat-linux-gcc
Wrong. What you have installed is an i386-redhat-linux-gcc rsp. a
x86-68-redhat-linux-gcc (more precisely, a GCC having been configured
for host=<arch>-redhat-linux). As this gcc also is the native gcc, it
also is being installed as "gcc", which justifies the package to be
called gcc.

> OpenSUSE uses cross-<arch>-gcc/binutils/whatever-version
> debian looks like it uses gcc/binutils/whatever-<arch>-version

What is the <whatever>? That's the essential part of it.

A "cross-i386-gcc" would be complete non-sense, because a cross tool
chain depends on the OS and several components more. An
i386-rtems4.7-gcc is something very different from a i386-cygwin-gcc or
a i386-redhat-gcc or a i386-suse-gcc.

I presume they are abbreviating and using <arch> as a synonym for

... Debian ..., their packaging is the worst of all possible choices.
It's neither browsable, nor complete nor correct, nor current.
Basically looks like rotten packages to me.

> Personally I like the cross-prefix, its a lot more obvious to an end 
> user what the package is and is for, but thats just me.

Everybody being used to cross tool chains, knows that the tools insided
are called <target>-<tools>.

Finally a different view on this issue:
A GNU cross toolchain consists of several packages which comes in
different, multiple incarnations.

Packaging-wise, this situation is not any different from packages which
can be built against different base infrastructures, say:

xorg-mydriver vs. xfree-mydriver
gnome-coolguitool vs. kde-coolguitool
perl-XXXX perl7-XXXX
or (Real world example)
Coin2-* vs. Inventor-*


More information about the Fedora-packaging mailing list