gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
SVN-Revision: 18086
This commit is contained in:
parent
6f52504a97
commit
c96312958c
5 changed files with 180 additions and 0 deletions
36
toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch
Normal file
36
toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--- a/libgcc/Makefile.in
|
||||||
|
+++ b/libgcc/Makefile.in
|
||||||
|
@@ -686,11 +686,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
|
||||||
|
|
||||||
|
# Static libraries.
|
||||||
|
libgcc.a: $(libgcc-objects)
|
||||||
|
+libgcc_pic.a: $(libgcc-s-objects)
|
||||||
|
libgcov.a: $(libgcov-objects)
|
||||||
|
libunwind.a: $(libunwind-objects)
|
||||||
|
libgcc_eh.a: $(libgcc-eh-objects)
|
||||||
|
|
||||||
|
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||||
|
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||||
|
-rm -f $@
|
||||||
|
|
||||||
|
objects="$(objects)"; \
|
||||||
|
@@ -712,7 +713,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(enable_shared),yes)
|
||||||
|
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||||
|
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||||
|
ifneq ($(LIBUNWIND),)
|
||||||
|
all: libunwind$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
@@ -885,6 +886,10 @@ install-shared:
|
||||||
|
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
|
||||||
|
+ $(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
|
||||||
|
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+
|
||||||
|
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||||
|
@shlib_base_name@,libgcc_s,$(subst \
|
||||||
|
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
36
toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch
Normal file
36
toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--- a/libgcc/Makefile.in
|
||||||
|
+++ b/libgcc/Makefile.in
|
||||||
|
@@ -680,11 +680,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
|
||||||
|
|
||||||
|
# Static libraries.
|
||||||
|
libgcc.a: $(libgcc-objects)
|
||||||
|
+libgcc_pic.a: $(libgcc-s-objects)
|
||||||
|
libgcov.a: $(libgcov-objects)
|
||||||
|
libunwind.a: $(libunwind-objects)
|
||||||
|
libgcc_eh.a: $(libgcc-eh-objects)
|
||||||
|
|
||||||
|
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||||
|
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||||
|
-rm -f $@
|
||||||
|
|
||||||
|
objects="$(objects)"; \
|
||||||
|
@@ -706,7 +707,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(enable_shared),yes)
|
||||||
|
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||||
|
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||||
|
ifneq ($(LIBUNWIND),)
|
||||||
|
all: libunwind$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
@@ -879,6 +880,10 @@ install-shared:
|
||||||
|
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
|
||||||
|
+ $(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
|
||||||
|
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+
|
||||||
|
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||||
|
@shlib_base_name@,libgcc_s,$(subst \
|
||||||
|
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
36
toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch
Normal file
36
toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--- a/libgcc/Makefile.in
|
||||||
|
+++ b/libgcc/Makefile.in
|
||||||
|
@@ -680,11 +680,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
|
||||||
|
|
||||||
|
# Static libraries.
|
||||||
|
libgcc.a: $(libgcc-objects)
|
||||||
|
+libgcc_pic.a: $(libgcc-s-objects)
|
||||||
|
libgcov.a: $(libgcov-objects)
|
||||||
|
libunwind.a: $(libunwind-objects)
|
||||||
|
libgcc_eh.a: $(libgcc-eh-objects)
|
||||||
|
|
||||||
|
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||||
|
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||||
|
-rm -f $@
|
||||||
|
|
||||||
|
objects="$(objects)"; \
|
||||||
|
@@ -706,7 +707,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(enable_shared),yes)
|
||||||
|
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||||
|
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||||
|
ifneq ($(LIBUNWIND),)
|
||||||
|
all: libunwind$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
@@ -879,6 +880,10 @@ install-shared:
|
||||||
|
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
|
||||||
|
+ $(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
|
||||||
|
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+
|
||||||
|
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||||
|
@shlib_base_name@,libgcc_s,$(subst \
|
||||||
|
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
36
toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch
Normal file
36
toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--- a/libgcc/Makefile.in
|
||||||
|
+++ b/libgcc/Makefile.in
|
||||||
|
@@ -729,11 +729,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
|
||||||
|
|
||||||
|
# Static libraries.
|
||||||
|
libgcc.a: $(libgcc-objects)
|
||||||
|
+libgcc_pic.a: $(libgcc-s-objects)
|
||||||
|
libgcov.a: $(libgcov-objects)
|
||||||
|
libunwind.a: $(libunwind-objects)
|
||||||
|
libgcc_eh.a: $(libgcc-eh-objects)
|
||||||
|
|
||||||
|
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||||
|
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||||
|
-rm -f $@
|
||||||
|
|
||||||
|
objects="$(objects)"; \
|
||||||
|
@@ -755,7 +756,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(enable_shared),yes)
|
||||||
|
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||||
|
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||||
|
ifneq ($(LIBUNWIND),)
|
||||||
|
all: libunwind$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
@@ -928,6 +929,10 @@ install-shared:
|
||||||
|
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
|
||||||
|
+ $(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
|
||||||
|
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+
|
||||||
|
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||||
|
@shlib_base_name@,libgcc_s,$(subst \
|
||||||
|
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
36
toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch
Normal file
36
toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--- a/libgcc/Makefile.in
|
||||||
|
+++ b/libgcc/Makefile.in
|
||||||
|
@@ -729,11 +729,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
|
||||||
|
|
||||||
|
# Static libraries.
|
||||||
|
libgcc.a: $(libgcc-objects)
|
||||||
|
+libgcc_pic.a: $(libgcc-s-objects)
|
||||||
|
libgcov.a: $(libgcov-objects)
|
||||||
|
libunwind.a: $(libunwind-objects)
|
||||||
|
libgcc_eh.a: $(libgcc-eh-objects)
|
||||||
|
|
||||||
|
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||||
|
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||||
|
-rm -f $@
|
||||||
|
|
||||||
|
objects="$(objects)"; \
|
||||||
|
@@ -755,7 +756,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(enable_shared),yes)
|
||||||
|
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||||
|
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||||
|
ifneq ($(LIBUNWIND),)
|
||||||
|
all: libunwind$(SHLIB_EXT)
|
||||||
|
endif
|
||||||
|
@@ -928,6 +929,10 @@ install-shared:
|
||||||
|
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||||
|
|
||||||
|
+ $(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
|
||||||
|
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||||
|
+
|
||||||
|
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||||
|
@shlib_base_name@,libgcc_s,$(subst \
|
||||||
|
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
Loading…
Reference in a new issue