patches/binutils/2.20/270-better_file_error.patch
author Joachim Nilsson <jocke@vmlinux.org>
Thu Jan 07 01:08:08 2010 +0100 (2010-01-07)
changeset 1700 eccc37dd1a25
permissions -rw-r--r--
binutils/binultils: import binutils-2.20 patches from OE

This is a set of patches for binutils-2.20 that have been "ported", or rather
shamelessly stolen, from the OpenEmbedded project:

http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/binutils/binutils-2.20

Tried and tested on Arm (big-endian Xscale, and little-endian i.MX27) with GCC 4.4.2

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