patches/gcc/4.3.3/190-libstdc++-pic.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1162
     1
Original patch from: ../4.3.2/190-libstdc++-pic.patch
yann@1162
     2
yann@1162
     3
-= BEGIN original header =-
yann@1162
     4
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/54_all_300-libstdc++-pic.patch
yann@1162
     5
install libstdc++_pic.a if we have pic objs
yann@1162
     6
yann@1162
     7
-= END original header =-
yann@1162
     8
yann@1162
     9
diff -durN gcc-4.3.3.orig/libstdc++-v3/src/Makefile.am gcc-4.3.3/libstdc++-v3/src/Makefile.am
yann@1162
    10
--- gcc-4.3.3.orig/libstdc++-v3/src/Makefile.am	2008-02-29 19:26:50.000000000 +0100
yann@1162
    11
+++ gcc-4.3.3/libstdc++-v3/src/Makefile.am	2009-01-27 22:19:34.000000000 +0100
yann@1162
    12
@@ -289,6 +289,13 @@
yann@1162
    13
 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
yann@1162
    14
 
yann@1162
    15
 
yann@1162
    16
+install-exec-local:
yann@1162
    17
+	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
yann@1162
    18
+	if [ x"$$pic_objs" != x ]; then \
yann@1162
    19
+		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
yann@1162
    20
+		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
yann@1162
    21
+	fi
yann@1162
    22
+
yann@1162
    23
 # Added bits to build debug library.
yann@1162
    24
 if GLIBCXX_BUILD_DEBUG
yann@1162
    25
 all-local: build_debug
yann@1162
    26
diff -durN gcc-4.3.3.orig/libstdc++-v3/src/Makefile.in gcc-4.3.3/libstdc++-v3/src/Makefile.in
yann@1162
    27
--- gcc-4.3.3.orig/libstdc++-v3/src/Makefile.in	2008-02-29 19:26:50.000000000 +0100
yann@1162
    28
+++ gcc-4.3.3/libstdc++-v3/src/Makefile.in	2009-01-27 22:19:34.000000000 +0100
yann@1162
    29
@@ -693,7 +693,7 @@
yann@1162
    30
 
yann@1162
    31
 install-data-am: install-data-local
yann@1162
    32
 
yann@1162
    33
-install-exec-am: install-toolexeclibLTLIBRARIES
yann@1162
    34
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
yann@1162
    35
 
yann@1162
    36
 install-info: install-info-am
yann@1162
    37
 
yann@1162
    38
@@ -732,7 +732,7 @@
yann@1162
    39
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
yann@1162
    40
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
yann@1162
    41
 	tags uninstall uninstall-am uninstall-info-am \
yann@1162
    42
-	uninstall-toolexeclibLTLIBRARIES
yann@1162
    43
+	uninstall-toolexeclibLTLIBRARIES install-exec-local
yann@1162
    44
 
yann@1162
    45
 
yann@1162
    46
 # Symbol versioning for shared libraries.
yann@1162
    47
@@ -858,6 +858,14 @@
yann@1162
    48
 install_debug:
yann@1162
    49
 	(cd ${debugdir} && $(MAKE) \
yann@1162
    50
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
yann@1162
    51
+
yann@1162
    52
+install-exec-local:
yann@1162
    53
+	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
yann@1162
    54
+	if [ x"$$pic_objs" != x ]; then \
yann@1162
    55
+		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
yann@1162
    56
+		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
yann@1162
    57
+	fi
yann@1162
    58
+
yann@1162
    59
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
yann@1162
    60
 # Otherwise a system limit (for SysV at least) may be exceeded.
yann@1162
    61
 .NOEXPORT: