[PATCH] complibs/cloog: fix linking with libm
Benoît Thébaudeau
benoit.thebaudeau@advansee.com
Fri Jan 27 11:54:00 GMT 2012
# HG changeset patch
# User "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
# Date 1327664995 -3600
# Node ID b7b1540e401cc9eb61e7a46692796e96377f3089
# Parent 188d58cfe7cfc11317e2605bda33e83b1aa3dddd
complibs/cloog: fix linking with libm
In Ubuntu 11.04 and 11.10, the default options for ld have changed.
--no-copy-dt-needed-entries and --as-needed are now enabled by default, which
causes errors like:
[EXTRA] Checking CLooG/ppl
[DEBUG] ==> Executing: 'make' '-j3' '-s' 'check'
[ALL ] Making check in .
[ALL ] config.status: creating include/cloog/cloog-config.h
[ALL ] config.status: include/cloog/cloog-config.h is unchanged
[ALL ] libtool: link: i686-build_pc-linux-gnu-gcc -Wall -fomit-frame-pointer
-pipe -o cloog cloog.o -L/<snip>/build/static/lib ./.libs/libcloog.a -lm
/<snip>/build/static/lib/libppl_c.a /<snip>/build/static/lib/libpwl.a
/<snip>/build/static/lib/libppl.a /<snip>/build/static/lib/libgmpxx.a
/<snip>/build/static/lib/libgmp.a -lstdc++
[ALL ] /usr/bin/ld: /<snip>/build/static/lib/libppl.a(MIP_Problem.o):
undefined reference to symbol 'sqrt@@GLIBC_2.0'
[ALL ] /usr/bin/ld: note: 'sqrt@@GLIBC_2.0' is defined in DSO
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libm.so so try adding
it to the linker command line
[ALL ] /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libm.so:
could not read symbols: Invalid operation
[ALL ] collect2: ld returned 1 exit status
[ERROR] make[2]: *** [cloog] Error 1
[ERROR] make[1]: *** [check-recursive] Error 1
See:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition
This patch fixes these errors by placing '-lm' at the right place on the command
line as libppl requires libm when linking cloog.
Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
diff --git a/patches/cloog-ppl/0.15.11/100-add_on_libs_position.patch b/patches/cloog-ppl/0.15.11/100-add_on_libs_position.patch
new file mode 100644
--- /dev/null
+++ b/patches/cloog-ppl/0.15.11/100-add_on_libs_position.patch
@@ -0,0 +1,24 @@
+diff -Naurd cloog-ppl-0.15.11-a/configure cloog-ppl-0.15.11-b/configure
+--- cloog-ppl-0.15.11-a/configure 2011-04-01 06:22:53.000000000 +0200
++++ cloog-ppl-0.15.11-b/configure 2011-12-13 20:31:14.101586671 +0100
+@@ -11238,7 +11238,7 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
++ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
+
+ $as_echo "#define CLOOG_PPL_BACKEND 1" >>confdefs.h
+
+diff -Naurd cloog-ppl-0.15.11-a/configure.in cloog-ppl-0.15.11-b/configure.in
+--- cloog-ppl-0.15.11-a/configure.in 2010-08-27 21:13:48.000000000 +0200
++++ cloog-ppl-0.15.11-b/configure.in 2011-12-13 20:30:59.885586623 +0100
+@@ -343,7 +343,7 @@
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
+
+- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
++ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
+ AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
+
+ else
diff --git a/scripts/build/companion_libs/cloog.sh b/scripts/build/companion_libs/cloog.sh
--- a/scripts/build/companion_libs/cloog.sh
+++ b/scripts/build/companion_libs/cloog.sh
@@ -45,7 +45,7 @@
CT_DoExecLog CFG \
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
- LDFLAGS="-lm" \
+ LIBS="-lm" \
"${cloog_src_dir}/configure" \
--build=${CT_BUILD} \
--host=${CT_HOST} \
More information about the crossgcc
mailing list