patches/gcc/4.3.5/200-pr24170.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Fri Jan 27 13:31:16 2012 +0100 (2012-01-27)
changeset 2854 a70abdbfa342
parent 1461 35b30f8fb307
permissions -rw-r--r--
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>
thomas@1461
     1
Original patch from: ../4.3.2/200-pr24170.patch
thomas@1461
     2
thomas@1461
     3
-= BEGIN original header =-
thomas@1461
     4
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc43-pr24170.patch
thomas@1461
     5
http://gcc.gnu.org/PR24170
thomas@1461
     6
thomas@1461
     7
2008-02-20  Tom Tromey  <tromey@redhat.com>
thomas@1461
     8
thomas@1461
     9
	PR libgcj/24170:
thomas@1461
    10
	* java/io/natFilePosix.cc (File::performList): Don't use
thomas@1461
    11
	readdir_r.
thomas@1461
    12
	* configure, include/config.h.in: Rebuilt.
thomas@1461
    13
	* configure.ac: Don't check for readdir_r.
thomas@1461
    14
thomas@1461
    15
-= END original header =-
thomas@1461
    16
thomas@1461
    17
diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
thomas@1461
    18
--- gcc-4.3.3.orig/libjava/configure.ac	2009-01-27 22:19:16.000000000 +0100
thomas@1461
    19
+++ gcc-4.3.3/libjava/configure.ac	2009-01-27 22:19:36.000000000 +0100
thomas@1461
    20
@@ -1030,7 +1030,7 @@
thomas@1461
    21
    PLATFORMNET=NoNet
thomas@1461
    22
 else
thomas@1461
    23
    AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \
thomas@1461
    24
-                   localtime_r readdir_r getpwuid_r getcwd \
thomas@1461
    25
+                   localtime_r getpwuid_r getcwd \
thomas@1461
    26
 		   access stat lstat mkdir rename rmdir unlink utime chmod readlink \
thomas@1461
    27
 		   nl_langinfo setlocale \
thomas@1461
    28
 		   inet_pton uname inet_ntoa \
thomas@1461
    29
diff -durN gcc-4.3.3.orig/libjava/include/config.h.in gcc-4.3.3/libjava/include/config.h.in
thomas@1461
    30
--- gcc-4.3.3.orig/libjava/include/config.h.in	2007-07-31 18:17:21.000000000 +0200
thomas@1461
    31
+++ gcc-4.3.3/libjava/include/config.h.in	2009-01-27 22:19:36.000000000 +0100
thomas@1461
    32
@@ -214,9 +214,6 @@
thomas@1461
    33
 /* Define to 1 if you have the <pwd.h> header file. */
thomas@1461
    34
 #undef HAVE_PWD_H
thomas@1461
    35
 
thomas@1461
    36
-/* Define to 1 if you have the `readdir_r' function. */
thomas@1461
    37
-#undef HAVE_READDIR_R
thomas@1461
    38
-
thomas@1461
    39
 /* Define to 1 if you have the `readlink' function. */
thomas@1461
    40
 #undef HAVE_READLINK
thomas@1461
    41
 
thomas@1461
    42
diff -durN gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc gcc-4.3.3/libjava/java/io/natFilePosix.cc
thomas@1461
    43
--- gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc	2007-08-04 23:50:01.000000000 +0200
thomas@1461
    44
+++ gcc-4.3.3/libjava/java/io/natFilePosix.cc	2009-01-27 22:19:36.000000000 +0100
thomas@1461
    45
@@ -1,6 +1,6 @@
thomas@1461
    46
 // natFile.cc - Native part of File class for POSIX.
thomas@1461
    47
 
thomas@1461
    48
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006
thomas@1461
    49
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2008
thomas@1461
    50
    Free Software Foundation
thomas@1461
    51
 
thomas@1461
    52
    This file is part of libgcj.
thomas@1461
    53
@@ -292,13 +292,7 @@
thomas@1461
    54
 
thomas@1461
    55
   java::util::ArrayList *list = new java::util::ArrayList ();
thomas@1461
    56
   struct dirent *d;
thomas@1461
    57
-#if defined(HAVE_READDIR_R) && defined(_POSIX_PTHREAD_SEMANTICS)
thomas@1461
    58
-  int name_max = pathconf (buf, _PC_NAME_MAX);
thomas@1461
    59
-  char dbuf[sizeof (struct dirent) + name_max + 1];
thomas@1461
    60
-  while (readdir_r (dir, (struct dirent *) dbuf, &d) == 0 && d != NULL)
thomas@1461
    61
-#else /* HAVE_READDIR_R */
thomas@1461
    62
   while ((d = readdir (dir)) != NULL)
thomas@1461
    63
-#endif /* HAVE_READDIR_R */
thomas@1461
    64
     {
thomas@1461
    65
       // Omit "." and "..".
thomas@1461
    66
       if (d->d_name[0] == '.'