This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Definitions of INSTALL
- To: <gcc at gcc dot gnu dot org>
- Subject: Definitions of INSTALL
- From: "Joseph S. Myers" <jsm28 at cam dot ac dot uk>
- Date: Sat, 31 Mar 2001 01:08:06 +0100 (BST)
The toplevel Makefile.in hardcodes INSTALL to be the install-sh shell
script, whereas gcc/Makefile.in uses @INSTALL@ detected by configure.
Why the difference?
Most of the time, gcc/Makefile.in's INSTALL then gets overridden by that
passed down from the toplevel Makefile - except when used from within the
stage submakes, to which INSTALL isn't passed. These stage submakes build
libgcc.mk, and hardcode the value of SHLIB_INSTALL in it. This means that
SHLIB_INSTALL - used to install the shared libgcc - uses the system
install binary. Whereas the shell script isn't safe for installing
libgcc_s.so.0 (since it removes the target, then tries to use an mv binary
that might be dynamically linked, possibly against libgcc), the install
binary is more likely to be safe.
Is this a deliberate clever design for arranging for the shared libgcc to
be installed safely, or an accidental and fragile side effect of
implementation that should be replaced by a safer mechanism for installing
the shared libgcc while keeping its soname pointing to a valid library at
all times?
--
Joseph S. Myers
jsm28@cam.ac.uk