summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2008-01-15 22:58:54 +0000
committerHolger Freyther <zecke@selfish.org>2008-01-15 22:58:54 +0000
commit0b07e526611dc0e1867caa3eb6e4372855488026 (patch)
treef44ea0a03c807ac60c4765a91732be8ddab75d87
parent5630386777914cd4a48811f077951c09e4fe18c4 (diff)
packages/gcc/gcc-cross_4.2.2: Attempt to fix the fortran issue
f951 was not executable because libmpfr and libgmp which were build by OpenEmbedded were not found. They resist in the staging lib directory and we do not have the LD_LIBRARY_PATH set. --enable-rpath for gcc was not an option, as we would have difficulties to say which path would be checked (we install to cross and not staging). Attempt to set an rpath when linking to mpfr/gmp. We pass --with-mpfr to the gcc-cross, patch the configure to add an -Wl,-rpath, to gmplibs, this gets set to GMPLIBS, which gets replaced to HOST_GMPLIBS in the Makefile inside the builddir, which will be used when linking the f951 utility.
-rw-r--r--packages/gcc/gcc-4.2.2/fortran-libs-rpath-to-staging-hack.patch48
-rw-r--r--packages/gcc/gcc-cross_4.2.2.bb1
2 files changed, 49 insertions, 0 deletions
diff --git a/packages/gcc/gcc-4.2.2/fortran-libs-rpath-to-staging-hack.patch b/packages/gcc/gcc-4.2.2/fortran-libs-rpath-to-staging-hack.patch
new file mode 100644
index 0000000000..bf319f8b0a
--- /dev/null
+++ b/packages/gcc/gcc-4.2.2/fortran-libs-rpath-to-staging-hack.patch
@@ -0,0 +1,48 @@
+f951 (fortran) links to MPFR and GMP of our staging area but when executing
+the command the libs can not be found. Use rpath like all the other apps in
+our staging bin/ directory.
+
+Patch the configure to avoid the regeneration...
+
+Index: gcc-4.2.2/configure
+===================================================================
+--- gcc-4.2.2.orig/configure 2008-01-15 23:23:41.000000000 +0100
++++ gcc-4.2.2/configure 2008-01-15 23:25:20.000000000 +0100
+@@ -2278,14 +2278,14 @@
+
+
+ if test "x$with_mpfr" != x; then
+- gmplibs="-L$with_mpfr/lib $gmplibs"
++ gmplibs="-Wl,-rpath,$with_mpfr/lib -L$with_mpfr/lib $gmplibs"
+ gmpinc="-I$with_mpfr/include"
+ fi
+ if test "x$with_mpfr_include" != x; then
+ gmpinc="-I$with_mpfr_include"
+ fi
+ if test "x$with_mpfr_lib" != x; then
+- gmplibs="-L$with_mpfr_lib $gmplibs"
++ gmplibs="-Wl,-rpath,$with_mpfr_lib -L$with_mpfr_lib $gmplibs"
+ fi
+
+ # Specify a location for gmp
+Index: gcc-4.2.2/configure.in
+===================================================================
+--- gcc-4.2.2.orig/configure.in 2008-01-15 23:23:41.000000000 +0100
++++ gcc-4.2.2/configure.in 2008-01-15 23:24:36.000000000 +0100
+@@ -1066,14 +1066,14 @@
+ AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=PATH Specify the directory for the installed MPFR library])
+
+ if test "x$with_mpfr" != x; then
+- gmplibs="-L$with_mpfr/lib $gmplibs"
++ gmplibs="-Wl,-rpath,$with_mpfr/lib -L$with_mpfr/lib $gmplibs"
+ gmpinc="-I$with_mpfr/include"
+ fi
+ if test "x$with_mpfr_include" != x; then
+ gmpinc="-I$with_mpfr_include"
+ fi
+ if test "x$with_mpfr_lib" != x; then
+- gmplibs="-L$with_mpfr_lib $gmplibs"
++ gmplibs="-Wl,-rpath,$with_mpfr_lib -L$with_mpfr_lib $gmplibs"
+ fi
+
+ # Specify a location for gmp
diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb
index ec169072af..3984147eae 100644
--- a/packages/gcc/gcc-cross_4.2.2.bb
+++ b/packages/gcc/gcc-cross_4.2.2.bb
@@ -15,6 +15,7 @@ require gcc3-build-cross.inc
# cross packaging
require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
+SRC_URI_append = " file://fortran-libs-rpath-to-staging-hack.patch;patch=1 "
# Do not build libssp libmudflap and libgomp
# We might need them for some beefy targets
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \