diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2006-10-24 05:10:50 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2006-10-24 05:10:50 +0000 |
commit | ab04516f36b2587423cd05a81953a1a0fb30b20a (patch) | |
tree | f18da65b00689a37de04d59fc7f8e316b7a0197c /contrib/crossrpms/patches | |
parent | Remove (Unused) (diff) | |
download | rtems-ab04516f36b2587423cd05a81953a1a0fb30b20a.tar.bz2 |
Resurrect (Still in use ;)
Diffstat (limited to 'contrib/crossrpms/patches')
-rw-r--r-- | contrib/crossrpms/patches/binutils-2.16.1-rtems-20050708.diff | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/contrib/crossrpms/patches/binutils-2.16.1-rtems-20050708.diff b/contrib/crossrpms/patches/binutils-2.16.1-rtems-20050708.diff new file mode 100644 index 0000000000..37d102c8b9 --- /dev/null +++ b/contrib/crossrpms/patches/binutils-2.16.1-rtems-20050708.diff @@ -0,0 +1,97 @@ +--- binutils-2.16.1/bfd/config.bfd 31 Jan 2005 17:18:47 -0000 1.181 ++++ binutils-2.16.1/bfd/config.bfd 5 Jul 2005 15:32:00 -0000 +@@ -369,7 +369,12 @@ + targ_selvecs=bfd_elf32_frv_vec + ;; + +- h8300*-*-elf) ++ h8300*-*-rtemscoff*) ++ targ_defvec=h8300coff_vec ++ targ_underscore=yes ++ ;; ++ ++ h8300*-*-elf | h8300*-*-rtems*) + targ_defvec=bfd_elf32_h8300_vec + targ_underscore=yes + ;; +--- binutils-2.16.1/gas/configure.tgt 31 Jan 2005 17:18:51 -0000 1.3 ++++ binutils-2.16.1/gas/configure.tgt 5 Jul 2005 15:32:03 -0000 +@@ -163,9 +163,9 @@ + hppa-*-bsd*) fmt=som em=hppa ;; + hppa-*-hiux*) fmt=som em=hppa ;; + +- h8300-*-rtems*) fmt=coff ;; ++ h8300-*-rtemscoff*) fmt=coff ;; + h8300-*-coff) fmt=coff ;; +- h8300-*-elf) fmt=elf ;; ++ h8300-*-elf | h8300-*-rtems*) fmt=elf ;; + h8500-*-rtems*) fmt=coff ;; + h8500-*-coff) fmt=coff ;; + +--- binutils-2.16.1/ld/configure.tgt 8 Feb 2005 19:54:27 -0000 1.165 ++++ binutils-2.16.1/ld/configure.tgt 5 Jul 2005 15:32:18 -0000 +@@ -280,10 +280,10 @@ + targ_extra_ofiles="deffilep.o pe-dll.o" ;; + xscale-*-coff) targ_emul=armcoff ;; + xscale-*-elf) targ_emul=armelf ;; +-h8300-*-hms* | h8300-*-coff* | h8300-*-rtems*) ++h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*) + targ_emul=h8300; targ_extra_emuls="h8300h h8300s h8300hn h8300sn h8300sx h8300sxn" + ;; +-h8300-*-elf*) ++h8300-*-elf* | h8300-*-rtems*) + targ_emul=h8300elf; + targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" + ;; +--- binutils-2.16.1/bfd/archive.c 3 Mar 2005 11:40:56 -0000 1.34 ++++ binutils-2.16.1/bfd/archive.c 8 Jul 2005 06:28:30 -0000 +@@ -1308,6 +1308,13 @@ + #define getgid() 0 + #endif + ++static void print_ar_size( struct ar_hdr* hdr, int val ) ++{ ++ char buffer[sizeof(hdr->ar_size)+1]; ++ sprintf(buffer,"%-10d", val); ++ memcpy(hdr->ar_size,buffer,sizeof(hdr->ar_size)); ++} ++ + /* Takes a filename, returns an arelt_data for it, or NULL if it can't + make one. The filename must refer to a filename in the filesystem. + The filename field of the ar_hdr will NOT be initialized. If member +@@ -1368,7 +1375,7 @@ + #endif + sprintf ((hdr->ar_gid), "%ld", (long) status.st_gid); + sprintf ((hdr->ar_mode), "%-8o", (unsigned int) status.st_mode); +- sprintf ((hdr->ar_size), "%-10ld", (long) status.st_size); ++ print_ar_size(hdr, (long) status.st_size); + /* Correct for a lossage in sprintf whereby it null-terminates. I cannot + understand how these C losers could design such a ramshackle bunch of + IO operations. */ +@@ -1660,7 +1667,7 @@ + memset (&hdr, 0, sizeof (struct ar_hdr)); + strcpy (hdr.ar_name, ename); + /* Round size up to even number in archive header. */ +- sprintf (&(hdr.ar_size[0]), "%-10d", ++ print_ar_size(&hdr, + (int) ((elength + 1) & ~(bfd_size_type) 1)); + strncpy (hdr.ar_fmag, ARFMAG, 2); + for (i = 0; i < sizeof (struct ar_hdr); i++) +@@ -1913,7 +1920,7 @@ + sprintf (hdr.ar_date, "%ld", bfd_ardata (arch)->armap_timestamp); + sprintf (hdr.ar_uid, "%ld", (long) getuid ()); + sprintf (hdr.ar_gid, "%ld", (long) getgid ()); +- sprintf (hdr.ar_size, "%-10d", (int) mapsize); ++ print_ar_size(&hdr, (int) mapsize); + strncpy (hdr.ar_fmag, ARFMAG, 2); + for (i = 0; i < sizeof (struct ar_hdr); i++) + if (((char *) (&hdr))[i] == '\0') +@@ -2068,7 +2075,7 @@ + + memset (&hdr, 0, sizeof (struct ar_hdr)); + hdr.ar_name[0] = '/'; +- sprintf (hdr.ar_size, "%-10d", (int) mapsize); ++ print_ar_size (&hdr, (int) mapsize); + sprintf (hdr.ar_date, "%ld", (long) time (NULL)); + /* This, at least, is what Intel coff sets the values to. */ + sprintf ((hdr.ar_uid), "%d", 0); |