diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2005-02-19 11:44:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2005-02-19 11:44:10 +0000 |
commit | 4e8d0554ef223d2158e45b5831b9623a355d1d08 (patch) | |
tree | ac558f936697e52cc362b3bdf22989d4fba3c2c3 /gcc/mklibgcc.in | |
parent | a74b85d0a4d58604e99cefa057df9353c5fb9ea6 (diff) | |
download | gcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.zip gcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.tar.gz gcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.tar.bz2 |
re PR other/19525 (In-build-directory multilib testing broken)
PR other/19525
* doc/invoke.texi: Remove documentation of %M spec.
* gcc.c: Likewise.
(init_spec): Remove %M suffix from -lgcc_s.
(do_spec_1): Remove 'M' case.
* mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
to put shared libraries in the multilib directory. Remove the
shlib_so_soname substitution variable. Don't add a multilib encoding
to shlib_base_name. Set shlib_slibdir_qual to the full pathname
reported by -print-multi-os-directory. Pass @multilib_dir@ to
SHLIB_INSTALL as well as SHLIB_LINK.
* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
(SHLIB_NAME): Delete.
(SHLIB_DIR): New macro.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly.
* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
* config/t-slibgcc-sld: Likewise.
* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
in $(SHLIB_DIR).
(SHLIBUNWIND_INSTALL): Adjust accordingly.
* config/i386/t-nwld (SHLIB_SONAME): Delete.
(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
Use @shlib_base_name@ instead of @shlib_so_name@.
* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
and @shlib_base_name@.so in @multilib_dir@.
(SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
to the install path.
* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
(SHLIB_LINK): Remove previous workaround.
* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
the install path.
* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
@multilib_dir@. Use @multilib_dir@ to check for threading libraries.
(SHLIB_INSTALL): Adjust accordingly.
(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
config/t-slibgcc-elf-ver.
From-SVN: r95277
Diffstat (limited to 'gcc/mklibgcc.in')
-rw-r--r-- | gcc/mklibgcc.in | 170 |
1 files changed, 34 insertions, 136 deletions
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index 3a78935..91e5640 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -33,7 +33,6 @@ # EXTRA_MULTILIB_PARTS # SHLIB_EXT # SHLIB_LINK -# SHLIB_MULTILIB # SHLIB_MKMAP # SHLIB_MKMAP_OPTS # SHLIB_MAPFILES @@ -158,79 +157,29 @@ for ml in $MULTILIBS; do # Work out relevant parameters that depend only on the multilib. dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; - shlib_dir= - shlib_dir_qual= + shlib_slibdir_qual= libgcc_a=$dir/libgcc.a libgcov_a=$dir/libgcov.a libgcc_eh_a= libgcc_s_so= libunwind_a= libunwind_so= - if [ "$dir" = . ]; then - suffix= - else - suffix=`echo $dir | sed s,/,_,g` - fi if [ "$LIBUNWIND" ]; then libunwind_a=$dir/libunwind.a fi if [ "$SHLIB_LINK" ]; then - if [ -z "$SHLIB_MULTILIB" ]; then - if [ "$dir" = . ]; then - libgcc_eh_a=$dir/libgcc_eh.a - libgcc_s_so_base=libgcc_s - libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT} - libgcc_s_soname=libgcc_s - if [ "$LIBUNWIND" ]; then - libunwind_so_base=libunwind - libunwind_so=${libunwind_so_base}${SHLIB_EXT} - libunwind_soname=libunwind - fi - else - libgcc_eh_a=$dir/libgcc_eh.a - libgcc_s_so_base=libgcc_s_${suffix} - libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT} - libgcc_s_soname=libgcc_s_${suffix} - if [ "$LIBUNWIND" ]; then - libunwind_so_base=libunwind_${suffix} - libunwind_so=${libunwind_so_base}${SHLIB_EXT} - fi - fi - - if [ -n "$MULTILIB_OSDIRNAMES" ]; then - if [ "$dir" != . ]; then - gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory` - os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` - shlib_dir="$dir"/ - gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'` - os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"` - if [ -z "$os_multilib_base" ]; then - libgcc_s_soname=libgcc_s - libunwind_soname=libunwind - if [ "$os_multilib_dir" != "." ]; then - shlib_dir_qual="/$os_multilib_dir" - fi - else - libgcc_s_soname=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g` - libunwind_soname=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g` - shlib_dir_qual="/$os_multilib_base" - fi - fi - fi - - elif [ "$SHLIB_MULTILIB" = "$dir" ]; then - libgcc_eh_a=$dir/libgcc_eh.a - libgcc_s_so_base=libgcc_s - libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT} - libgcc_s_soname=libgcc_s - if [ "$LIBUNWIND" ]; then - libunwind_so_base=libunwind - libunwind_so=${libunwind_so_base}${SHLIB_EXT} - libunwind_soname=libunwind - fi + libgcc_eh_a=$dir/libgcc_eh.a + libgcc_s_so=$dir/libgcc_s${SHLIB_EXT} + if [ "$LIBUNWIND" ]; then + libunwind_so=$dir/libunwind${SHLIB_EXT} + fi + os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` + if [ "$os_multilib_dir" != . ]; then + shlib_slibdir_qual="/$os_multilib_dir" fi fi + libgcc_s_so_extra= libunwind_so_extra= @@ -244,20 +193,9 @@ for ml in $MULTILIBS; do echo \# libgcc_eh_a: $libgcc_eh_a echo \# libunwind_a: $libunwind_a echo \# - echo \# gcc_multilib_dir: $gcc_multilib_dir - echo \# gcc_multilib_sup: $gcc_multilib_sup - echo \# os_multilib_dir: $os_multilib_dir - echo \# os_multilib_base: $os_multilib_base - echo \# shlib_dir: $shlib_dir - echo \# shlib_dir_qual: $shlib_dir_qual - echo \# + echo \# shlib_slibdir_qual: $shlib_slibdir_qual echo \# libgcc_s_so: $libgcc_s_so - echo \# libgcc_s_so_base: $libgcc_s_so_base - echo \# libgcc_s_soname: $libgcc_s_soname - echo \# echo \# libunwind_so: $libunwind_so - echo \# libunwind_so_base: $libunwind_so_base - echo \# libunwind_soname: $libunwind_soname echo \# echo @@ -687,6 +625,11 @@ for ml in $MULTILIBS; do extra="$extra $targ" done + if [ "$dir" = . ]; then + suffix= + else + suffix=`echo $dir | sed s,/,_,g` + fi echo extra$suffix: stmp-dirs echo " $make_compile" \\ echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\ @@ -777,8 +720,7 @@ EOF | sed -e "s%@multilib_flags@%$flags%g" \ -e "s%@multilib_dir@%$dir%g" \ -e "s%@shlib_objs@%\$(objects)%g" \ - -e "s%@shlib_base_name@%$libgcc_s_so_base%g" \ - -e "s%@shlib_so_name@%$libgcc_s_soname%g" \ + -e "s%@shlib_base_name@%libgcc_s%g" \ -e "s%@shlib_map_file@%$mapfile%g" \ -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g" echo "all: $libgcc_s_so" @@ -791,8 +733,7 @@ EOF | sed -e "s%@multilib_flags@%$flags%g" \ -e "s%@multilib_dir@%$dir%g" \ -e "s%@shlib_objs@%\$(objects)%g" \ - -e "s%@shlib_base_name@%$libunwind_so_base%g" \ - -e "s%@shlib_so_name@%$libunwind_soname%g" \ + -e "s%@shlib_base_name@%libunwind%g" \ -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g" echo "all: $libunwind_so" fi @@ -839,66 +780,23 @@ for ml in $MULTILIBS; do echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/ echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a - if [ -z "$SHLIB_MULTILIB" ]; then - if [ "$dir" = . ]; then - shlib_base_name=libgcc_s - shlibunwind_base_name=libunwind - else - shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g` - shlibunwind_base_name=libunwind_`echo $dir | sed s,/,_,g` - fi - shlib_so_name="$shlib_base_name" - shlibunwind_so_name="$shlibunwind_base_name" - shlib_dir= - shlib_slibdir_qual= - if [ -n "$MULTILIB_OSDIRNAMES" ]; then - gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory` - os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` - if [ "$dir" != . ]; then - shlib_dir="$dir"/ - fi - gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'` - os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"` - if [ -z "$os_multilib_base" ]; then - shlib_so_name=libgcc_s - shlibunwind_so_name=libunwind - if [ "$os_multilib_dir" != "." ]; then - shlib_slibdir_qual="/$os_multilib_dir" - fi - else - shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g` - shlibunwind_so_name=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g` - shlib_slibdir_qual="/$os_multilib_base" - fi - fi - echo " $SHLIB_INSTALL" \ - | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \ - -e "s%@shlib_so_name@%$shlib_so_name%g" \ + shlib_slibdir_qual= + os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` + if [ "$os_multilib_dir" != . ]; then + shlib_slibdir_qual="/$os_multilib_dir" + fi + echo " $SHLIB_INSTALL" \ + | sed -e "s%@multilib_dir@%$dir%g" \ + -e "s%@shlib_base_name@%libgcc_s%g" \ + -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g" + if [ "$LIBUNWIND" ]; then + echo " $SHLIBUNWIND_INSTALL" \ + | sed -e "s%@multilib_dir@%$dir%g" \ + -e "s%@shlib_base_name@%libunwind%g" \ -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g" - if [ "$LIBUNWIND" ]; then - echo " $SHLIBUNWIND_INSTALL" \ - | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \ - -e "s%@shlib_so_name@%$shlibunwind_so_name%g" \ - -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g" - libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)' - echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/ - echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a - fi - elif [ "$SHLIB_MULTILIB" = "$dir" ]; then - shlib_base_name="libgcc_s"; - echo " $SHLIB_INSTALL" \ - | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \ - -e "s%@shlib_so_name@%$shlib_base_name%g" \ - -e "s%@shlib_slibdir_qual@%%g" - if [ "$LIBUNWIND" ]; then - echo " $SHLIBUNWIND_INSTALL" \ - | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \ - -e "s%@shlib_so_name@%$shlibunwind_base_name%g" \ - -e "s%@shlib_slibdir_qual@%%g" - libunwinddir='$(DESTDIR)$(slibdir)' - echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/ - echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a - fi + libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)' + echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/ + echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a fi fi done |