This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: shared libgcc install failure
- To: Matthias Klose <doko at cs dot tu-berlin dot de>
- Subject: Re: shared libgcc install failure
- From: Richard Henderson <rth at redhat dot com>
- Date: Sun, 7 Jan 2001 13:55:24 -0800
- Cc: gcc-patches at gcc dot gnu dot org
- References: <14936.48243.695073.851080@gargle.gargle.HOWL>
On Sun, Jan 07, 2001 at 07:58:59PM +0100, Matthias Klose wrote:
> Your patch hardcodes the installation directory, it's not possible to
> build and temporarily install for packaging with different
> prefixes. The generated libgcc.mk should use $(libsubdir) and
> $(slibdir).
Reasonable. Fixed thus.
r~
* config/t-linux (SHLIB_INSTALL): Double quote slibdir;
fix typo in rm -f.
* config/t-aix43 (SHLIB_INSTALL): Likewise.
* config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
(SHLIB_LINK): Create links for the soname.
* config/mips/t-iris6: Likewise.
* config/sparc/t-slibgcc: Likewise.
* config/sparc/t-slibgcc-sld: Likewise.
Index: t-linux
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/t-linux,v
retrieving revision 1.7
diff -c -p -d -r1.7 t-linux
*** t-linux 2001/01/07 09:27:24 1.7
--- t-linux 2001/01/07 21:51:02
*************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
*** 16,24 ****
-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
--- 16,26 ----
-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
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
! rm -f $$(slibdir)/@shlib_base_name@.so; \
! $(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
Index: alpha/t-osf4
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/alpha/t-osf4,v
retrieving revision 1.3
diff -c -p -d -r1.3 t-osf4
*** t-osf4 2001/01/07 09:27:24 1.3
--- t-osf4 2001/01/07 21:51:02
*************** TARGET_LIBGCC2_CFLAGS = -fPIC
*** 8,14 ****
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
--- 8,18 ----
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 && \
! rm -f @shlib_base_name@.so.0 && \
! $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
! rm -f $$(slibdir)/@shlib_base_name@.so; \
! $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
Index: mips/t-iris6
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/mips/t-iris6,v
retrieving revision 1.7
diff -c -p -d -r1.7 t-iris6
*** t-iris6 2001/01/07 09:27:24 1.7
--- t-iris6 2001/01/07 21:51:02
*************** CRTSTUFF_T_CFLAGS=-g1
*** 23,36 ****
SHLIB_EXT = .so
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-soname,@shlib_base_name@.so.0 \
! -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc
# ??? Irix 6.5 seems to eat the option fine (if we somehow remove the
# -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
--- 23,41 ----
SHLIB_EXT = .so
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-soname,@shlib_base_name@.so.0 \
! -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
# ??? Irix 6.5 seems to eat the option fine (if we somehow remove the
# -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@
!
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
! rm -f $$(slibdir)/@shlib_base_name@.so; \
! $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
Index: rs6000/t-aix43
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/t-aix43,v
retrieving revision 1.11
diff -c -p -d -r1.11 t-aix43
*** t-aix43 2001/01/07 09:27:24 1.11
--- t-aix43 2001/01/07 21:51:03
*************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
*** 60,66 ****
$(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
--- 60,68 ----
$(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
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! 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
Index: sparc/t-slibgcc
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/sparc/t-slibgcc,v
retrieving revision 1.2
diff -c -p -d -r1.2 t-slibgcc
*** t-slibgcc 2001/01/07 09:27:25 1.2
--- t-slibgcc 2001/01/07 21:51:03
*************** SHLIB_EXT = .so
*** 4,12 ****
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
--- 4,16 ----
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 && \
! rm -f @shlib_base_name@.so.0 && \
! $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
! rm -f $$(slibdir)/@shlib_base_name@.so; \
! $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
Index: sparc/t-slibgcc-sld
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/sparc/t-slibgcc-sld,v
retrieving revision 1.2
diff -c -p -d -r1.2 t-slibgcc-sld
*** t-slibgcc-sld 2001/01/07 09:27:25 1.2
--- t-slibgcc-sld 2001/01/07 21:51:03
*************** SHLIB_EXT = .so
*** 4,12 ****
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
--- 4,16 ----
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 && \
! rm -f @shlib_base_name@.so.0 && \
! $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
! # $(slibdir) double quoted to protect it from expansion while building
! # libgcc.mk. We want this delayed until actual install time.
! SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
! rm -f $$(slibdir)/@shlib_base_name@.so; \
! $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver