From 0b07e526611dc0e1867caa3eb6e4372855488026 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Tue, 15 Jan 2008 22:58:54 +0000 Subject: 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. --- .../fortran-libs-rpath-to-staging-hack.patch | 48 ++++++++++++++++++++++ packages/gcc/gcc-cross_4.2.2.bb | 1 + 2 files changed, 49 insertions(+) create mode 100644 packages/gcc/gcc-4.2.2/fortran-libs-rpath-to-staging-hack.patch (limited to 'packages') 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 \ -- cgit v1.2.3