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>
|
||||
|
||||
* config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
|
||||
|
@ -312,6 +312,8 @@ unlibsubdir = ../../..
|
||||
dollar = @dollar@
|
||||
# Used in install-cross.
|
||||
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/
|
||||
build_tooldir = $(exec_prefix)/$(target_alias)
|
||||
# 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` \
|
||||
EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
|
||||
SHLIB_LINK='$(SHLIB_LINK)' \
|
||||
SHLIB_INSTALL='$(SHLIB_INSTALL)' \
|
||||
SHLIB_EXT='$(SHLIB_EXT)' \
|
||||
SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
|
||||
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 $(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 $(slibdir) ] ; then true ; else mkdir $(slibdir) ; chmod a+rx $(slibdir) ; fi
|
||||
# We don't use mkdir -p to create the parents of man1dir,
|
||||
# because some systems don't support it.
|
||||
# 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)
|
||||
|
||||
# Install the library.
|
||||
install-libgcc: libgcc.a installdirs
|
||||
-if [ -f libgcc.a ] ; then \
|
||||
rm -f $(libsubdir)/libgcc.a; \
|
||||
$(INSTALL_DATA) libgcc.a $(libsubdir)/libgcc.a; \
|
||||
if $(RANLIB_TEST_FOR_TARGET) ; then \
|
||||
(cd $(libsubdir); $(RANLIB_FOR_TARGET) libgcc.a); else true; fi; \
|
||||
chmod a-x $(libsubdir)/libgcc.a; \
|
||||
else true; fi
|
||||
install-libgcc: libgcc.mk libgcc.a installdirs
|
||||
if $(RANLIB_TEST_FOR_TARGET); then \
|
||||
r_f_t=$(RANLIB_FOR_TARGET); \
|
||||
else \
|
||||
r_f_t=: ; \
|
||||
fi; \
|
||||
$(MAKE) INSTALL_DATA="$(INSTALL_DATA)" \
|
||||
RANLIB_FOR_TARGET="$$r_f_t" \
|
||||
libsubdir="$(libsubdir)" \
|
||||
slibdir="$(slibdir)" \
|
||||
-f libgcc.mk install
|
||||
|
||||
# Install multiple versions of libgcc.a.
|
||||
install-multilib: stmp-multilib installdirs
|
||||
for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
|
||||
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
||||
if [ -d $(libsubdir)/$${dir} ]; then true; else mkdir $(libsubdir)/$${dir}; chmod a+rx $(libsubdir)/$${dir}; fi; \
|
||||
for f in libgcc.a $(EXTRA_MULTILIB_PARTS); do \
|
||||
rm -f $(libsubdir)/$${dir}/$${f}; \
|
||||
$(INSTALL_DATA) $${dir}/$${f} $(libsubdir)/$${dir}/$${f}; \
|
||||
done; \
|
||||
if $(RANLIB_TEST_FOR_TARGET); then \
|
||||
(cd $(libsubdir)/$${dir}; $(RANLIB_FOR_TARGET) libgcc.a); \
|
||||
else true; fi; \
|
||||
chmod a-x $(libsubdir)/$${dir}/libgcc.a; \
|
||||
done
|
||||
if $(RANLIB_TEST_FOR_TARGET); then \
|
||||
r_f_t=$(RANLIB_FOR_TARGET); \
|
||||
else \
|
||||
r_f_t=: ; \
|
||||
fi; \
|
||||
$(MAKE) INSTALL_DATA="$(INSTALL_DATA)" \
|
||||
RANLIB_FOR_TARGET="$$r_f_t" \
|
||||
libsubdir="$(libsubdir)" \
|
||||
slibdir="$(slibdir)" \
|
||||
-f libgcc.mk install
|
||||
|
||||
# Install all the header files built in the include subdirectory.
|
||||
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 \
|
||||
-Wl,-msym -Wl,-set_version,gcc.0 -Wl,-soname,@shlib_base_name@.so.0 \
|
||||
-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
|
||||
# with -exports_file), but fails to actually hide any symbols.
|
||||
# -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_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 ; \
|
||||
mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
|
||||
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_MKMAP = $(srcdir)/mkmap-flat.awk
|
||||
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,--version-script=@shlib_map_file@ \
|
||||
-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_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,-M,@shlib_map_file@ -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_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||
|
@ -13,7 +13,12 @@ SHLIB_EXT = .so
|
||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||
-Wl,--soname=@shlib_base_name@.so.0 \
|
||||
-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_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/libgcc-glibc.ver
|
||||
|
||||
|
523
gcc/configure
vendored
523
gcc/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1802,6 +1802,21 @@ fi
|
||||
AC_SUBST(gcc_tooldir)
|
||||
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.
|
||||
objdir=`pwd`
|
||||
AC_SUBST(objdir)
|
||||
|
@ -29,6 +29,7 @@
|
||||
# SHLIB_MKMAP
|
||||
# SHLIB_MAPFILES
|
||||
# SHLIB_NM_FLAGS
|
||||
# SHLIB_INSTALL
|
||||
|
||||
# Make needs VPATH to be literal.
|
||||
echo 'srcdir = @srcdir@'
|
||||
@ -382,3 +383,46 @@ done
|
||||
|
||||
echo ""
|
||||
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
Block a user