patches/gcc/4.4.1/240-libstdc++-pic.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Dec 27 12:45:22 2012 +0100 (2012-12-27)
changeset 3152 b286c7993be5
parent 1393 b432bd628b10
permissions -rw-r--r--
scripts/addToolsVersion: properly handle .in vs. .in.2

While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).

Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.

So, for each tool, we need to explicitly know what file to munge.

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