patches/binutils/2.20/270-better_file_error.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:51:25 2010 +0200 (2010-09-12)
changeset 2123 ff2181adbd28
permissions -rw-r--r--
cc/gcc: disable complibs if not selected

Force gcc to not link with some companion libraries when
there are not needed (because selected-out).

There is no option to tell gcc *not* to build the Graphite and/or
LTO stuff. They *will* be built if gcc finds the suitable companion
libraries. If we do not provide them, but the host has them, then
gcc *will* find them, and link with them.

Consider the following:
- host has suitable PPL and CLooG (eg. Debian Squeeze)
- user wants to build gcc>=4.4
- user de-selects GRAPHITE
- gcc will find the hosts PPL and CLooG, and will use them
- the user moves the toolchain to an older host that does
not have them (eg. Debian Lenny)
- the toolchain fails, when it was properly setup not to

So, explicitly tell gcc *not* to use unneeded companion libs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
jocke@1700
     1
#!/bin/sh -e
jocke@1700
     2
## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
jocke@1700
     3
##
jocke@1700
     4
## All lines beginning with `## DP:' are a description of the patch.
jocke@1700
     5
## DP: Specify which filename is causing an error if the filename is a
jocke@1700
     6
## DP: directory. (#45832)
jocke@1700
     7
jocke@1700
     8
if [ $# -ne 1 ]; then
jocke@1700
     9
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
jocke@1700
    10
    exit 1
jocke@1700
    11
fi
jocke@1700
    12
jocke@1700
    13
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
jocke@1700
    14
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
jocke@1700
    15
jocke@1700
    16
case "$1" in
jocke@1700
    17
       -patch) patch $patch_opts -p1 < $0;;
jocke@1700
    18
       -unpatch) patch $patch_opts -p1 -R < $0;;
jocke@1700
    19
        *)
jocke@1700
    20
                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
jocke@1700
    21
                exit 1;;
jocke@1700
    22
esac
jocke@1700
    23
jocke@1700
    24
exit 0
jocke@1700
    25
jocke@1700
    26
@DPATCH@
jocke@1700
    27
diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
jocke@1700
    28
--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c	2003-07-23 16:08:09.000000000 +0100
jocke@1700
    29
+++ binutils-2.14.90.0.6/bfd/opncls.c	2003-09-10 22:35:00.000000000 +0100
jocke@1700
    30
@@ -150,6 +150,13 @@
jocke@1700
    31
 {
jocke@1700
    32
   bfd *nbfd;
jocke@1700
    33
   const bfd_target *target_vec;
jocke@1700
    34
+  struct stat s;
jocke@1700
    35
+
jocke@1700
    36
+  if (stat (filename, &s) == 0)
jocke@1700
    37
+    if (S_ISDIR(s.st_mode)) {
jocke@1700
    38
+      bfd_set_error (bfd_error_file_not_recognized);
jocke@1700
    39
+      return NULL;
jocke@1700
    40
+    }
jocke@1700
    41
 
jocke@1700
    42
   nbfd = _bfd_new_bfd ();
jocke@1700
    43
   if (nbfd == NULL)