[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gcc-2.6.3



Christian Lynbech wrote:

> I have nothing against standard-locations. It is only that GNU tools
> has a common (for recent versions at least), coherent and rather rich
> directory layout. It just isn't very standard, in terms of things like
> SYSV or BSD.

You have to be a little patient with the FSF guys, GNU is not a full
OS yet. But lately they seem to have adopted the 4.4 BSD filesystem
layout.

> One of the really nice things about GNU tools, however, is that you
> can root this layout anywhere you want, by means of the --prefix option
> to configure.
> 
> What I really has been trying to say is: use the GNU diretcory layout
> for GNU tools. It will mean something to some tools, where configure
> actually checks for the presence of other tools, and it will make it
> easier to pull raw GNU sources from ftp and install them on your
> system, without having to dig through tons of makefiles and readme
> files in order to find how the previous version was set up. And you
> will avoid having tools jumping around in the system, depending on who
> compiled the version you are installing now. 
> 
> All of this can remedied by defining a standard saying:
> 
> 	Thou shalt configure GNU tools with a prefix of XXX
> 
> What XXX should is of course not obvious. I prefer /usr/gnu to
> separate the two hierarchies (atari/mint/lattice/sozobon/whatever
> vs. gnu) on grounds that GNU is working itself towards a single,
> complete system. But one could argue for /usr (GNU is the defacto
> standard for us) or /usr/local (non-vendor supplied systems go in
> /usr/local).

I suppose the most appropriate prefix for a distribution based on
MiNT would be /usr. AFAIK we don't have any vendor supplied tools,
so any freely distributable distribution will contain either GNU
or BSD tools in /usr/bin. If a distribution build around the GNU
tools were to install those tools in /usr/gnu/bin, what would be
lying around in /usr/bin?

I believe the most appropriate locations for distributions primarily
build around GNU software are /usr/bin for the GNU stuff, and possibly
/usr/ucb for any additional BSD software. For distributions primarily
based on BSD tools, I would suggest /usr/bin for the BSD stuff and
/usr/gnu for the GNU binaries (if any).

Following the regular gcc installation, in both type of distributions
the frontend (gcc) would go to /usr/bin, while cc1, cpp, libgcc.a etc.
would end up in /usr/lib/gcc-lib/mint-m68k/VERSION/ (where /usr/lib
is likely to become /usr/libexec in the next gcc release). I believe
that is good enough to keep all gcc related files in one location.
Adding another path component `gnu' (/usr/gnu/lib/gcc-lib) doesn't
seem to make a lot of difference. However if gcc is not going to
be part of the distribution, then /usr/local/gnu/lib/gcc-lib/ might
be a more appropriate path (any path in /usr/local will do).

> Waldi> It already does (--prefix=XXX). If you use gcc as the sytem C-compiler
> Waldi> the most appropriate prefix is /usr, otherwise /usr/local.
> 
> I know. But I am guessing from the original posting (Frank Bartels
> response to Michael Plonus) that Michael is not just using the
> prefix. At least, what Frank proposed would not be a standard GCC
> installation, even though it might be perfectly sensible BSD style.

I suspect Frank will use (approximately) the following scheme in his
distribution (KGMD):

/usr/libexec/lib-gcc/mint-68k/{2.3.3,2.5.8,2.6.3}/cc1
/usr/libexec/lib-gcc/mint-68k/{2.3.3,2.5.8,2.6.3}/cpp
/usr/libexec/lib-gcc/mint-68k/{2.3.3,2.5.8,2.6.3}/<etc.>
/usr/libexec/lib-gcc/cc1 -> lib-gcc/mint-68k/.../cc1
/usr/libexec/lib-gcc/cpp -> lib-gcc/mint-68k/.../cpp
...


Regards,
Waldi