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

Re: [MiNT] Wrong placement of cross binaries



Miro Kropacek wrote :
it's only my feeling gcc/binutils binaries are wrongly placed in
/usr/m68k-atari-mint/bin

I assume you are speaking of a cross-compiler.
The prefix above is good, it is the the standard one. But it looks strange.

The standard rules:

1) The cross-tools are stored in /usr/bin, prefixed with the target prefix.
For example /usr/bin/m68k-atari-mint-as

2) The target development files are stored in /usr/<target>.
For example, /usr/m68k-atari-mint/include, /usr/m68k-atari-mint/lib.

3) There is an additional oddity. GCC requires that /usr/bin/m68k-atari-mint-as should be also available as /usr/m68k-atari-mint/bin/as as well as some other tools. It is probably because GCC always look at an executable named "as" in a directory relative to its own executable. So /usr/m68k-atari-mint/bin contains some cross tools, without prefix. They are usually hard links to the prefixed versions.

My Ubuntu binaries use the these standard directories.
My Cygwin packages use /opt/cross-mint instead of /usr to put everything related to the cross-compiler into a single directory in order to ease uninstallation.

I've
noticed this when I installed some libraries which produce executable
files and if I configure them with install prefix /usr/m68k-atari-mint,
they are placed in /usr/m68k-atari-mint/bin what is OK.

A host library (or executable) which produce target executable files is a cross-tool, it should be configured with a /usr prefix. It is the case for the binutils and GCC.

However, target libraries intended to be installed on a cross-host should be configured with a /usr/m68k-atari-mint prefix. It is the case for the MiNTLib, GemLib, etc.

And finally, target executables (by opposition to target libraries) should not be installed on a host cross-environment, it is a nonsense since they can't be run on the host.

--
Vincent Rivière