patches/gcc/4.4.4/240-libstdc++-pic.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Oct 08 23:37:12 2010 +0200 (2010-10-08)
branch1.8
changeset 2150 f97a8ad2b172
child 2148 ada9128c98b8
permissions -rw-r--r--
cc/gcc: fix C++ headers location

In case we build the C++ compiler, we have to tell gcc where to put the C++
headers, or else it will try to # put it in prefix/tuple/include, which we
make a symlink to sysroot/usr/include during the build, and that we delete
(the symlink!) after the build, but gcc will not look in sysroot/usr/inlcude
for C++ headers by default.

Implements a fix suggested by: Bryan Hundven <bryanhundven@gmail.com>

Reported-by: Anthony Foiani <anthony.foiani@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from a0924619112015bdaa81a0a2313d21ef38607bc2)
yann@1948
     1
diff -durN gcc-4.4.0.orig/libstdc++-v3/src/Makefile.am gcc-4.4.0/libstdc++-v3/src/Makefile.am
yann@1948
     2
yann@1948
     3
diff -durN gcc-4.4.4.orig/libstdc++-v3/src/Makefile.am gcc-4.4.4/libstdc++-v3/src/Makefile.am
yann@1948
     4
--- gcc-4.4.4.orig/libstdc++-v3/src/Makefile.am	2009-08-26 21:04:11.000000000 +0200
yann@1948
     5
+++ gcc-4.4.4/libstdc++-v3/src/Makefile.am	2010-05-16 19:13:50.000000000 +0200
yann@1948
     6
@@ -356,6 +356,13 @@
yann@1948
     7
 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
yann@1948
     8
 
yann@1948
     9
 
yann@1948
    10
+install-exec-local:
yann@1948
    11
+	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
yann@1948
    12
+	if [ x"$$pic_objs" != x ]; then \
yann@1948
    13
+		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
yann@1948
    14
+		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
yann@1948
    15
+	fi
yann@1948
    16
+
yann@1948
    17
 # Added bits to build debug library.
yann@1948
    18
 if GLIBCXX_BUILD_DEBUG
yann@1948
    19
 all-local: build_debug
yann@1948
    20
diff -durN gcc-4.4.4.orig/libstdc++-v3/src/Makefile.in gcc-4.4.4/libstdc++-v3/src/Makefile.in
yann@1948
    21
--- gcc-4.4.4.orig/libstdc++-v3/src/Makefile.in	2009-08-26 21:04:11.000000000 +0200
yann@1948
    22
+++ gcc-4.4.4/libstdc++-v3/src/Makefile.in	2010-05-16 19:13:50.000000000 +0200
yann@1948
    23
@@ -726,7 +726,7 @@
yann@1948
    24
 
yann@1948
    25
 install-data-am: install-data-local
yann@1948
    26
 
yann@1948
    27
-install-exec-am: install-toolexeclibLTLIBRARIES
yann@1948
    28
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
yann@1948
    29
 
yann@1948
    30
 install-info: install-info-am
yann@1948
    31
 
yann@1948
    32
@@ -765,7 +765,7 @@
yann@1948
    33
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
yann@1948
    34
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
yann@1948
    35
 	tags uninstall uninstall-am uninstall-info-am \
yann@1948
    36
-	uninstall-toolexeclibLTLIBRARIES
yann@1948
    37
+	uninstall-toolexeclibLTLIBRARIES install-exec-local
yann@1948
    38
 
yann@1948
    39
 
yann@1948
    40
 # Symbol versioning for shared libraries.
yann@1948
    41
@@ -947,6 +947,14 @@
yann@1948
    42
 install_debug:
yann@1948
    43
 	(cd ${debugdir} && $(MAKE) \
yann@1948
    44
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
yann@1948
    45
+
yann@1948
    46
+install-exec-local:
yann@1948
    47
+	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
yann@1948
    48
+	if [ x"$$pic_objs" != x ]; then \
yann@1948
    49
+		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
yann@1948
    50
+		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
yann@1948
    51
+	fi
yann@1948
    52
+
yann@1948
    53
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
yann@1948
    54
 # Otherwise a system limit (for SysV at least) may be exceeded.
yann@1948
    55
 .NOEXPORT: