mirror of git://gcc.gnu.org/git/gcc.git
Makefile.in (slibdir): New variable.
* Makefile.in (slibdir): New variable.
(libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
(installdirs): Create slibdir.
(install-libgcc, install-multilib): Defer to libgcc.mk.
* configure.in (slibdir): Substitute.
* mklibgcc.in (install): New target.
* config/t-linux (SHLIB_LINK): Create links for the soname.
(SHLIB_INSTALL): New.
* config/alpha/t-osf4 (SHLIB_INSTALL): New.
* config/mips/t-iris6 (SHLIB_INSTALL): New.
* config/rs6000/t-aix43 (SHLIB_INSTALL): New.
* config/sparc/t-slibgcc (SHLIB_INSTALL): New.
* config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
From-SVN: r38761
This commit is contained in:
parent
fc51424cc9
commit
2bbea3a6c7
|
|
@ -1,3 +1,20 @@
|
||||||
|
2001-01-07 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.in (slibdir): New variable.
|
||||||
|
(libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
|
||||||
|
(installdirs): Create slibdir.
|
||||||
|
(install-libgcc, install-multilib): Defer to libgcc.mk.
|
||||||
|
* configure.in (slibdir): Substitute.
|
||||||
|
* mklibgcc.in (install): New target.
|
||||||
|
|
||||||
|
* config/t-linux (SHLIB_LINK): Create links for the soname.
|
||||||
|
(SHLIB_INSTALL): New.
|
||||||
|
* config/alpha/t-osf4 (SHLIB_INSTALL): New.
|
||||||
|
* config/mips/t-iris6 (SHLIB_INSTALL): New.
|
||||||
|
* config/rs6000/t-aix43 (SHLIB_INSTALL): New.
|
||||||
|
* config/sparc/t-slibgcc (SHLIB_INSTALL): New.
|
||||||
|
* config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
|
||||||
|
|
||||||
2001-01-07 Richard Henderson <rth@redhat.com>
|
2001-01-07 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
|
* config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,8 @@ unlibsubdir = ../../..
|
||||||
dollar = @dollar@
|
dollar = @dollar@
|
||||||
# Used in install-cross.
|
# Used in install-cross.
|
||||||
gcc_tooldir = @gcc_tooldir@
|
gcc_tooldir = @gcc_tooldir@
|
||||||
|
# Used to install the shared libgcc.
|
||||||
|
slibdir = @slibdir@
|
||||||
# Since tooldir does not exist at build-time, use -B$(build_tooldir)/bin/
|
# Since tooldir does not exist at build-time, use -B$(build_tooldir)/bin/
|
||||||
build_tooldir = $(exec_prefix)/$(target_alias)
|
build_tooldir = $(exec_prefix)/$(target_alias)
|
||||||
# Directory in which the compiler finds target-independent g++ includes.
|
# Directory in which the compiler finds target-independent g++ includes.
|
||||||
|
|
@ -1023,6 +1025,7 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) xgcc$(exeext)
|
||||||
MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
|
MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
|
||||||
EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
|
EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
|
||||||
SHLIB_LINK='$(SHLIB_LINK)' \
|
SHLIB_LINK='$(SHLIB_LINK)' \
|
||||||
|
SHLIB_INSTALL='$(SHLIB_INSTALL)' \
|
||||||
SHLIB_EXT='$(SHLIB_EXT)' \
|
SHLIB_EXT='$(SHLIB_EXT)' \
|
||||||
SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
|
SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
|
||||||
SHLIB_MKMAP='$(SHLIB_MKMAP)' \
|
SHLIB_MKMAP='$(SHLIB_MKMAP)' \
|
||||||
|
|
@ -2429,6 +2432,7 @@ installdirs:
|
||||||
-if [ -d $(gcc_tooldir) ] ; then true ; else mkdir $(gcc_tooldir) ; chmod a+rx $(gcc_tooldir) ; fi
|
-if [ -d $(gcc_tooldir) ] ; then true ; else mkdir $(gcc_tooldir) ; chmod a+rx $(gcc_tooldir) ; fi
|
||||||
-if [ -d $(assertdir) ] ; then true ; else mkdir $(assertdir) ; chmod a+rx $(assertdir) ; fi
|
-if [ -d $(assertdir) ] ; then true ; else mkdir $(assertdir) ; chmod a+rx $(assertdir) ; fi
|
||||||
-if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi
|
-if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi
|
||||||
|
-if [ -d $(slibdir) ] ; then true ; else mkdir $(slibdir) ; chmod a+rx $(slibdir) ; fi
|
||||||
# We don't use mkdir -p to create the parents of man1dir,
|
# We don't use mkdir -p to create the parents of man1dir,
|
||||||
# because some systems don't support it.
|
# because some systems don't support it.
|
||||||
# Instead, we use this technique to create the immediate parent of man1dir.
|
# Instead, we use this technique to create the immediate parent of man1dir.
|
||||||
|
|
@ -2553,29 +2557,30 @@ install-man: installdirs $(srcdir)/gcc.1 $(GENERATED_MANPAGES) lang.install-man
|
||||||
-chmod a-x $(man1dir)/gcov$(manext)
|
-chmod a-x $(man1dir)/gcov$(manext)
|
||||||
|
|
||||||
# Install the library.
|
# Install the library.
|
||||||
install-libgcc: libgcc.a installdirs
|
install-libgcc: libgcc.mk libgcc.a installdirs
|
||||||
-if [ -f libgcc.a ] ; then \
|
if $(RANLIB_TEST_FOR_TARGET); then \
|
||||||
rm -f $(libsubdir)/libgcc.a; \
|
r_f_t=$(RANLIB_FOR_TARGET); \
|
||||||
$(INSTALL_DATA) libgcc.a $(libsubdir)/libgcc.a; \
|
else \
|
||||||
if $(RANLIB_TEST_FOR_TARGET) ; then \
|
r_f_t=: ; \
|
||||||
(cd $(libsubdir); $(RANLIB_FOR_TARGET) libgcc.a); else true; fi; \
|
fi; \
|
||||||
chmod a-x $(libsubdir)/libgcc.a; \
|
$(MAKE) INSTALL_DATA="$(INSTALL_DATA)" \
|
||||||
else true; fi
|
RANLIB_FOR_TARGET="$$r_f_t" \
|
||||||
|
libsubdir="$(libsubdir)" \
|
||||||
|
slibdir="$(slibdir)" \
|
||||||
|
-f libgcc.mk install
|
||||||
|
|
||||||
# Install multiple versions of libgcc.a.
|
# Install multiple versions of libgcc.a.
|
||||||
install-multilib: stmp-multilib installdirs
|
install-multilib: stmp-multilib installdirs
|
||||||
for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
|
if $(RANLIB_TEST_FOR_TARGET); then \
|
||||||
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
r_f_t=$(RANLIB_FOR_TARGET); \
|
||||||
if [ -d $(libsubdir)/$${dir} ]; then true; else mkdir $(libsubdir)/$${dir}; chmod a+rx $(libsubdir)/$${dir}; fi; \
|
else \
|
||||||
for f in libgcc.a $(EXTRA_MULTILIB_PARTS); do \
|
r_f_t=: ; \
|
||||||
rm -f $(libsubdir)/$${dir}/$${f}; \
|
fi; \
|
||||||
$(INSTALL_DATA) $${dir}/$${f} $(libsubdir)/$${dir}/$${f}; \
|
$(MAKE) INSTALL_DATA="$(INSTALL_DATA)" \
|
||||||
done; \
|
RANLIB_FOR_TARGET="$$r_f_t" \
|
||||||
if $(RANLIB_TEST_FOR_TARGET); then \
|
libsubdir="$(libsubdir)" \
|
||||||
(cd $(libsubdir)/$${dir}; $(RANLIB_FOR_TARGET) libgcc.a); \
|
slibdir="$(slibdir)" \
|
||||||
else true; fi; \
|
-f libgcc.mk install
|
||||||
chmod a-x $(libsubdir)/$${dir}/libgcc.a; \
|
|
||||||
done
|
|
||||||
|
|
||||||
# Install all the header files built in the include subdirectory.
|
# Install all the header files built in the include subdirectory.
|
||||||
install-headers: install-include-dir $(INSTALL_HEADERS_DIR) $(INSTALL_ASSERT_H)
|
install-headers: install-include-dir $(INSTALL_HEADERS_DIR) $(INSTALL_ASSERT_H)
|
||||||
|
|
|
||||||
|
|
@ -9,3 +9,6 @@ SHLIB_EXT = .so
|
||||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
-Wl,-msym -Wl,-set_version,gcc.0 -Wl,-soname,@shlib_base_name@.so.0 \
|
-Wl,-msym -Wl,-set_version,gcc.0 -Wl,-soname,@shlib_base_name@.so.0 \
|
||||||
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
|
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $(slibdir)/@shlib_base_name@.so.0; \
|
||||||
|
rm -f $(slibdir)/@shlib_base_name@; \
|
||||||
|
$(LN_S) @shlib_base_name@.so.0 $(slibdir)/@shlib_base_name@.so
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
# -hidden_symbol option, which is documented to be ignored in conjunction
|
# -hidden_symbol option, which is documented to be ignored in conjunction
|
||||||
# with -exports_file), but fails to actually hide any symbols.
|
# with -exports_file), but fails to actually hide any symbols.
|
||||||
# -Wl,-exports_file,@shlib_map_file@
|
# -Wl,-exports_file,@shlib_map_file@
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $(slibdir)/@shlib_base_name@.so.0; \
|
||||||
|
rm -f $(slibdir)/@shlib_base_name@; \
|
||||||
|
$(LN_S) @shlib_base_name@.so.0 $(slibdir)/@shlib_base_name@.so
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
$(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
|
$(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
|
||||||
mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
|
mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
|
||||||
rm -f @multilib_dir@/shr.o
|
rm -f @multilib_dir@/shr.o
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $(slibdir)/
|
||||||
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
|
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,8 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
-Wl,--soname=@shlib_base_name@.so.0 \
|
-Wl,--soname=@shlib_base_name@.so.0 \
|
||||||
-Wl,--version-script=@shlib_map_file@ \
|
-Wl,--version-script=@shlib_map_file@ \
|
||||||
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
|
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $(slibdir)/@shlib_base_name@.so.0; \
|
||||||
|
rm -f $(slibdir)/@shlib_base_name@; \
|
||||||
|
$(LN_S) @shlib_base_name@.so.0 $(slibdir)/@shlib_base_name@.so
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,8 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
-Wl,-h,@shlib_base_name@.so.0 -Wl,-z,text -Wl,-z,defs \
|
-Wl,-h,@shlib_base_name@.so.0 -Wl,-z,text -Wl,-z,defs \
|
||||||
-Wl,-M,@shlib_map_file@ -o @shlib_base_name@.so \
|
-Wl,-M,@shlib_map_file@ -o @shlib_base_name@.so \
|
||||||
@multilib_flags@ @shlib_objs@ -lc
|
@multilib_flags@ @shlib_objs@ -lc
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $(slibdir)/@shlib_base_name@.so.0; \
|
||||||
|
rm -f $(slibdir)/@shlib_base_name@; \
|
||||||
|
$(LN_S) @shlib_base_name@.so.0 $(slibdir)/@shlib_base_name@.so
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,12 @@ SHLIB_EXT = .so
|
||||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
-Wl,--soname=@shlib_base_name@.so.0 \
|
-Wl,--soname=@shlib_base_name@.so.0 \
|
||||||
-Wl,--version-script=@shlib_map_file@ \
|
-Wl,--version-script=@shlib_map_file@ \
|
||||||
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
|
-o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc && \
|
||||||
|
rm -f @shlib_base_name@.so.0 && \
|
||||||
|
$(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
|
||||||
|
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $(slibdir)/@shlib_base_name@.so.0; \
|
||||||
|
rm -f $(slibdir)/@shlib_base_name@; \
|
||||||
|
$(LN_S) @shlib_base_name@.so.0 $(slibdir)/@shlib_base_name@.so
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/libgcc-glibc.ver
|
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/libgcc-glibc.ver
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1802,6 +1802,21 @@ fi
|
||||||
AC_SUBST(gcc_tooldir)
|
AC_SUBST(gcc_tooldir)
|
||||||
AC_SUBST(dollar)
|
AC_SUBST(dollar)
|
||||||
|
|
||||||
|
# Find a directory in which to install a shared libgcc.
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(version-specific-runtime-libs,
|
||||||
|
[ --enable-version-specific-runtime-libs Specify that runtime libraries shou
|
||||||
|
ld be installed in a compiler-specific directory ])
|
||||||
|
|
||||||
|
if [ "${enable_version_specific_runtime_libs-no}" = "yes" ]; then
|
||||||
|
slibdir='$(libsubdir)'
|
||||||
|
elif [ "$host" != "$target" ]; then
|
||||||
|
slibdir='$(build_tooldir)/lib'
|
||||||
|
else
|
||||||
|
slibdir='$(prefix)/lib'
|
||||||
|
fi
|
||||||
|
AC_SUBST(slibdir)
|
||||||
|
|
||||||
# Nothing to do for FLOAT_H, float_format already handled.
|
# Nothing to do for FLOAT_H, float_format already handled.
|
||||||
objdir=`pwd`
|
objdir=`pwd`
|
||||||
AC_SUBST(objdir)
|
AC_SUBST(objdir)
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
# SHLIB_MKMAP
|
# SHLIB_MKMAP
|
||||||
# SHLIB_MAPFILES
|
# SHLIB_MAPFILES
|
||||||
# SHLIB_NM_FLAGS
|
# SHLIB_NM_FLAGS
|
||||||
|
# SHLIB_INSTALL
|
||||||
|
|
||||||
# Make needs VPATH to be literal.
|
# Make needs VPATH to be literal.
|
||||||
echo 'srcdir = @srcdir@'
|
echo 'srcdir = @srcdir@'
|
||||||
|
|
@ -382,3 +383,46 @@ done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "all: $all"
|
echo "all: $all"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "install: $all"
|
||||||
|
for ml in $MULTILIBS; do
|
||||||
|
dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
|
||||||
|
if [ $dir != . ]; then
|
||||||
|
ldir='$(libsubdir)'/$dir
|
||||||
|
echo " if [ -d $ldir ]; then true; else mkdir $ldir; chmod a+rx $ldir; fi;"
|
||||||
|
else
|
||||||
|
ldir='$(libsubdir)'
|
||||||
|
fi
|
||||||
|
echo ' $(INSTALL_DATA)' ${dir}/libgcc.a ${ldir}/
|
||||||
|
echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc.a
|
||||||
|
|
||||||
|
if [ "$SHLIB_LINK" ]; then
|
||||||
|
if [ -z "$SHLIB_MULTILIB" ]; then
|
||||||
|
if [ "$dir" = "." ]; then
|
||||||
|
shlib_base_name="libgcc_s";
|
||||||
|
else
|
||||||
|
shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g`
|
||||||
|
fi
|
||||||
|
echo " $SHLIB_INSTALL" \
|
||||||
|
| sed -e "s%@shlib_base_name@%$shlib_base_name%g"
|
||||||
|
elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
|
||||||
|
shlib_base_name="libgcc_s";
|
||||||
|
echo " $SHLIB_INSTALL" \
|
||||||
|
| sed -e "s%@shlib_base_name@%$shlib_base_name%g"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for f in $EXTRA_MULTILIB_PARTS; do
|
||||||
|
for ml in $MULTILIBS; do
|
||||||
|
dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
|
||||||
|
if [ $dir != . ]; then
|
||||||
|
out=${dir}/$f
|
||||||
|
ldir='$(libsubdir)'/$dir
|
||||||
|
else
|
||||||
|
out=$f
|
||||||
|
ldir='$(libsubdir)'
|
||||||
|
fi
|
||||||
|
echo ' $(INSTALL_DATA)' $out $ldir/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue