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