summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-06-29 00:35:02 +0100
committerJoshua Lock <josh@linux.intel.com>2010-06-29 13:35:50 +0100
commitd3b8687ea6604e8d2a6b53fc50f2a319df5625d5 (patch)
tree2a843d88368b90ea34d51891236ac2ec39acfcef
parent93f7d74492abf285dde2f9170409e84d35ce0f75 (diff)
downloadpoky-d3b8687ea6604e8d2a6b53fc50f2a319df5625d5.tar.gz
poky-d3b8687ea6604e8d2a6b53fc50f2a319df5625d5.tar.bz2
poky-d3b8687ea6604e8d2a6b53fc50f2a319df5625d5.zip
gcc: Add patch to allow disabling of libstdc++ linkage and hence fix gcc-runtime which was having broken configure tests due to the linker failures and assuming maths primitives were not in libm
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/packages/gcc/gcc-4.3.3.inc1
-rw-r--r--meta/packages/gcc/gcc-4.3.3/optional_libstdc.patch23
-rw-r--r--meta/packages/gcc/gcc-configure-runtime.inc2
-rw-r--r--meta/packages/gcc/gcc-cross_4.3.3.bb2
-rw-r--r--meta/packages/gcc/gcc-runtime_4.3.3.bb2
5 files changed, 27 insertions, 3 deletions
diff --git a/meta/packages/gcc/gcc-4.3.3.inc b/meta/packages/gcc/gcc-4.3.3.inc
index dcd905ccfe..5cfa0f68d8 100644
--- a/meta/packages/gcc/gcc-4.3.3.inc
+++ b/meta/packages/gcc/gcc-4.3.3.inc
@@ -53,6 +53,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://zecke-xgcc-cpp.patch;patch=1 \
file://gcc-flags-for-build.patch;patch=1 \
file://pr35942.patch;patch=1 \
+ file://optional_libstdc.patch;patch=1 \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
diff --git a/meta/packages/gcc/gcc-4.3.3/optional_libstdc.patch b/meta/packages/gcc/gcc-4.3.3/optional_libstdc.patch
new file mode 100644
index 0000000000..0f74353a1f
--- /dev/null
+++ b/meta/packages/gcc/gcc-4.3.3/optional_libstdc.patch
@@ -0,0 +1,23 @@
+gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++
+will not run correctly since my default the linker will try and link against libstdc++
+which shouldn't exist yet. We need an option to disable the automatically added -lstdc++
+option whilst leaving -lc, -lgcc and other automatic library dependencies. This patch
+adds such an option which only disables the -lstdc++ linkage.
+
+A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to
+do this officially, the likely answer is don't build libstdc++ separately.
+
+RP 29/6/10
+
+Index: gcc-4.3.3/gcc/cp/g++spec.c
+===================================================================
+--- gcc-4.3.3.orig/gcc/cp/g++spec.c 2010-06-29 00:06:03.901695025 +0100
++++ gcc-4.3.3/gcc/cp/g++spec.c 2010-06-29 00:06:58.800325439 +0100
+@@ -131,6 +131,7 @@
+ if (argv[i][0] == '-')
+ {
+ if (strcmp (argv[i], "-nostdlib") == 0
++ || strcmp (argv[i], "-nostdlib++") == 0
+ || strcmp (argv[i], "-nodefaultlibs") == 0)
+ {
+ library = -1;
diff --git a/meta/packages/gcc/gcc-configure-runtime.inc b/meta/packages/gcc/gcc-configure-runtime.inc
index 180ca8d0ee..9719e48ab5 100644
--- a/meta/packages/gcc/gcc-configure-runtime.inc
+++ b/meta/packages/gcc/gcc-configure-runtime.inc
@@ -13,7 +13,7 @@ RUNTIMETARGET = "libssp libstdc++-v3"
# libgfortran
do_configure () {
- export CXX="${CXX} -nostdinc++"
+ export CXX="${CXX} -nostdinc++ -nostdlib++"
for d in ${RUNTIMETARGET}; do
echo "Configuring $d"
mkdir -p ${B}/$d/
diff --git a/meta/packages/gcc/gcc-cross_4.3.3.bb b/meta/packages/gcc/gcc-cross_4.3.3.bb
index 76d32673c1..98573f0c5a 100644
--- a/meta/packages/gcc/gcc-cross_4.3.3.bb
+++ b/meta/packages/gcc/gcc-cross_4.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r14"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/meta/packages/gcc/gcc-runtime_4.3.3.bb b/meta/packages/gcc/gcc-runtime_4.3.3.bb
index f94e07ce2b..6768674c1e 100644
--- a/meta/packages/gcc/gcc-runtime_4.3.3.bb
+++ b/meta/packages/gcc/gcc-runtime_4.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r14"
require gcc-${PV}.inc
require gcc-configure-runtime.inc