[e9edcbd] | 1 | Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
|
---|
[493c7be] | 2 | Date: 10-29-2007
|
---|
[e9edcbd] | 3 | Initial Package Version: 2.18
|
---|
| 4 | Origin: Upstream
|
---|
| 5 | Upstream Status: Applied
|
---|
| 6 | Description: This is a branch update for binutils-2.18, and should be
|
---|
| 7 | rechecked periodically.
|
---|
| 8 |
|
---|
| 9 | diff -Naur binutils-2.18.orig/bfd/ChangeLog binutils-2.18/bfd/ChangeLog
|
---|
| 10 | --- binutils-2.18.orig/bfd/ChangeLog 2007-08-28 13:20:54.000000000 -0700
|
---|
[493c7be] | 11 | +++ binutils-2.18/bfd/ChangeLog 2007-10-27 01:57:02.000000000 -0700
|
---|
| 12 | @@ -1,3 +1,45 @@
|
---|
| 13 | +2007-10-27 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 14 | +
|
---|
| 15 | + * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced
|
---|
| 16 | + local symbols specially.
|
---|
| 17 | + (mips_elf_set_global_got_offset): Skip forced local symbols.
|
---|
| 18 | +
|
---|
[e9edcbd] | 19 | +2007-10-25 Joseph Myers <joseph@codesourcery.com>
|
---|
| 20 | +
|
---|
| 21 | + * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not add
|
---|
| 22 | + PT_NULL header when not linking.
|
---|
| 23 | +
|
---|
| 24 | +2007-10-25 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 25 | +
|
---|
| 26 | + * elf.c (assign_file_positions_for_load_sections): Trust
|
---|
| 27 | + p_align_valid.
|
---|
| 28 | + (copy_elf_program_header): Copy PT_NULL segments.
|
---|
| 29 | +
|
---|
[493c7be] | 30 | +2007-10-12 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 31 | +
|
---|
| 32 | + * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced
|
---|
| 33 | + local symbols specially.
|
---|
| 34 | + (mips_elf_set_global_got_offset): Skip forced local symbols.
|
---|
| 35 | +
|
---|
[e9edcbd] | 36 | +2007-09-14 Alan Modra <amodra@bigpond.net.au>
|
---|
| 37 | +
|
---|
| 38 | + * opncls.c (find_separate_debug_file): Ensure bfd_set_error has
|
---|
| 39 | + been called on all error return paths.
|
---|
| 40 | + (bfd_fill_in_gnu_debuglink_section): Use bfd_malloc, not malloc.
|
---|
| 41 | + Clear padding after filename
|
---|
| 42 | +
|
---|
| 43 | +2007-09-14 Alan Modra <amodra@bigpond.net.au>
|
---|
| 44 | +
|
---|
| 45 | + * format.c (bfd_check_format_matches): Record matching targets even
|
---|
| 46 | + when "matching" is NULL to allow bfd_associated_vector matches.
|
---|
| 47 | + Consolidate error return code. Consolidate ok return code. Always
|
---|
| 48 | + restore original target and format on error.
|
---|
| 49 | +
|
---|
| 50 | +2007-08-28 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 51 | +
|
---|
| 52 | + * Makefile.am (RELEASE): Unset.
|
---|
| 53 | + * Makefile.in: Regenerated.
|
---|
| 54 | +
|
---|
| 55 | 2007-08-28 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 56 |
|
---|
| 57 | * configure.in (VERSION): Update.
|
---|
| 58 | diff -Naur binutils-2.18.orig/bfd/elf.c binutils-2.18/bfd/elf.c
|
---|
| 59 | --- binutils-2.18.orig/bfd/elf.c 2007-08-28 10:19:33.000000000 -0700
|
---|
| 60 | +++ binutils-2.18/bfd/elf.c 2007-10-25 08:31:26.000000000 -0700
|
---|
| 61 | @@ -4082,10 +4082,10 @@
|
---|
| 62 |
|
---|
| 63 | p->p_align = maxpagesize;
|
---|
| 64 | }
|
---|
| 65 | - else if (m->count == 0)
|
---|
| 66 | - p->p_align = 1 << bed->s->log_file_align;
|
---|
| 67 | else if (m->p_align_valid)
|
---|
| 68 | p->p_align = m->p_align;
|
---|
| 69 | + else if (m->count == 0)
|
---|
| 70 | + p->p_align = 1 << bed->s->log_file_align;
|
---|
| 71 | else
|
---|
| 72 | p->p_align = 0;
|
---|
| 73 |
|
---|
| 74 | @@ -5563,10 +5563,6 @@
|
---|
| 75 | asection *first_section = NULL;
|
---|
| 76 | asection *lowest_section = NULL;
|
---|
| 77 |
|
---|
| 78 | - /* FIXME: Do we need to copy PT_NULL segment? */
|
---|
| 79 | - if (segment->p_type == PT_NULL)
|
---|
| 80 | - continue;
|
---|
| 81 | -
|
---|
| 82 | /* Compute how many sections are in this segment. */
|
---|
| 83 | for (section = ibfd->sections, section_count = 0;
|
---|
| 84 | section != NULL;
|
---|
| 85 | diff -Naur binutils-2.18.orig/bfd/elfxx-mips.c binutils-2.18/bfd/elfxx-mips.c
|
---|
| 86 | --- binutils-2.18.orig/bfd/elfxx-mips.c 2007-08-24 07:01:08.000000000 -0700
|
---|
[493c7be] | 87 | +++ binutils-2.18/bfd/elfxx-mips.c 2007-10-26 10:58:52.000000000 -0700
|
---|
| 88 | @@ -2797,7 +2797,8 @@
|
---|
| 89 | /* Global symbols that need GOT entries that are not explicitly
|
---|
| 90 | referenced are marked with got offset 2. Those that are
|
---|
| 91 | referenced get a 1, and those that don't need GOT entries get
|
---|
| 92 | - -1. */
|
---|
| 93 | + -1. Forced local symbols may also be marked with got offset 1,
|
---|
| 94 | + but are never given global GOT entries. */
|
---|
| 95 | if (h->root.got.offset == 2)
|
---|
| 96 | {
|
---|
| 97 | BFD_ASSERT (h->tls_type == GOT_NORMAL);
|
---|
| 98 | @@ -2806,7 +2807,7 @@
|
---|
| 99 | hsd->low = (struct elf_link_hash_entry *) h;
|
---|
| 100 | h->root.dynindx = hsd->max_unref_got_dynindx++;
|
---|
| 101 | }
|
---|
| 102 | - else if (h->root.got.offset != 1)
|
---|
| 103 | + else if (h->root.got.offset != 1 || h->forced_local)
|
---|
| 104 | h->root.dynindx = hsd->max_non_got_dynindx++;
|
---|
| 105 | else
|
---|
| 106 | {
|
---|
| 107 | @@ -3269,6 +3270,7 @@
|
---|
| 108 |
|
---|
| 109 | if (entry->abfd != NULL && entry->symndx == -1
|
---|
| 110 | && entry->d.h->root.dynindx != -1
|
---|
| 111 | + && !entry->d.h->forced_local
|
---|
| 112 | && entry->d.h->tls_type == GOT_NORMAL)
|
---|
| 113 | {
|
---|
| 114 | if (g)
|
---|
| 115 | @@ -9325,7 +9327,7 @@
|
---|
[e9edcbd] | 116 |
|
---|
| 117 | bfd_boolean
|
---|
| 118 | _bfd_mips_elf_modify_segment_map (bfd *abfd,
|
---|
| 119 | - struct bfd_link_info *info ATTRIBUTE_UNUSED)
|
---|
| 120 | + struct bfd_link_info *info)
|
---|
| 121 | {
|
---|
| 122 | asection *s;
|
---|
| 123 | struct elf_segment_map *m, **pm;
|
---|
[493c7be] | 124 | @@ -9550,8 +9552,12 @@
|
---|
[e9edcbd] | 125 | header instead, and avoid the need to move any sections.
|
---|
| 126 | There is a long tradition of allocating spare dynamic tags,
|
---|
| 127 | so allocating a spare program header seems like a natural
|
---|
| 128 | - extension. */
|
---|
| 129 | - if (!SGI_COMPAT (abfd)
|
---|
| 130 | + extension.
|
---|
| 131 | +
|
---|
| 132 | + If INFO is NULL, we may be copying an already prelinked binary
|
---|
| 133 | + with objcopy or strip, so do not add this header. */
|
---|
| 134 | + if (info != NULL
|
---|
| 135 | + && !SGI_COMPAT (abfd)
|
---|
| 136 | && bfd_get_section_by_name (abfd, ".dynamic"))
|
---|
| 137 | {
|
---|
| 138 | for (pm = &elf_tdata (abfd)->segment_map; *pm != NULL; pm = &(*pm)->next)
|
---|
| 139 | diff -Naur binutils-2.18.orig/bfd/format.c binutils-2.18/bfd/format.c
|
---|
| 140 | --- binutils-2.18.orig/bfd/format.c 2007-08-06 12:59:36.000000000 -0700
|
---|
| 141 | +++ binutils-2.18/bfd/format.c 2007-10-12 07:09:21.000000000 -0700
|
---|
| 142 | @@ -125,6 +125,9 @@
|
---|
| 143 | int match_count;
|
---|
| 144 | int ar_match_index;
|
---|
| 145 |
|
---|
| 146 | + if (matching != NULL)
|
---|
| 147 | + *matching = NULL;
|
---|
| 148 | +
|
---|
| 149 | if (!bfd_read_p (abfd)
|
---|
| 150 | || (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
|
---|
| 151 | {
|
---|
| 152 | @@ -141,11 +144,10 @@
|
---|
| 153 | match_count = 0;
|
---|
| 154 | ar_match_index = _bfd_target_vector_entries;
|
---|
| 155 |
|
---|
| 156 | - if (matching)
|
---|
| 157 | + if (matching != NULL || *bfd_associated_vector != NULL)
|
---|
| 158 | {
|
---|
| 159 | bfd_size_type amt;
|
---|
| 160 |
|
---|
| 161 | - *matching = NULL;
|
---|
| 162 | amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries;
|
---|
| 163 | matching_vector = bfd_malloc (amt);
|
---|
| 164 | if (!matching_vector)
|
---|
| 165 | @@ -162,31 +164,12 @@
|
---|
| 166 | if (!abfd->target_defaulted)
|
---|
| 167 | {
|
---|
| 168 | if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) /* rewind! */
|
---|
| 169 | - {
|
---|
| 170 | - if (matching)
|
---|
| 171 | - free (matching_vector);
|
---|
| 172 | - return FALSE;
|
---|
| 173 | - }
|
---|
| 174 | + goto err_ret;
|
---|
| 175 |
|
---|
| 176 | right_targ = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
|
---|
| 177 |
|
---|
| 178 | if (right_targ)
|
---|
| 179 | - {
|
---|
| 180 | - abfd->xvec = right_targ; /* Set the target as returned. */
|
---|
| 181 | -
|
---|
| 182 | - if (matching)
|
---|
| 183 | - free (matching_vector);
|
---|
| 184 | -
|
---|
| 185 | - /* If the file was opened for update, then `output_has_begun'
|
---|
| 186 | - some time ago when the file was created. Do not recompute
|
---|
| 187 | - sections sizes or alignments in _bfd_set_section_contents.
|
---|
| 188 | - We can not set this flag until after checking the format,
|
---|
| 189 | - because it will interfere with creation of BFD sections. */
|
---|
| 190 | - if (abfd->direction == both_direction)
|
---|
| 191 | - abfd->output_has_begun = TRUE;
|
---|
| 192 | -
|
---|
| 193 | - return TRUE; /* File position has moved, BTW. */
|
---|
| 194 | - }
|
---|
| 195 | + goto ok_ret;
|
---|
| 196 |
|
---|
| 197 | /* For a long time the code has dropped through to check all
|
---|
| 198 | targets if the specified target was wrong. I don't know why,
|
---|
| 199 | @@ -201,17 +184,7 @@
|
---|
| 200 | this sort, I changed this test to check only for the binary
|
---|
| 201 | target. */
|
---|
| 202 | if (format == bfd_archive && save_targ == &binary_vec)
|
---|
| 203 | - {
|
---|
| 204 | - abfd->xvec = save_targ;
|
---|
| 205 | - abfd->format = bfd_unknown;
|
---|
| 206 | -
|
---|
| 207 | - if (matching)
|
---|
| 208 | - free (matching_vector);
|
---|
| 209 | -
|
---|
| 210 | - bfd_set_error (bfd_error_file_not_recognized);
|
---|
| 211 | -
|
---|
| 212 | - return FALSE;
|
---|
| 213 | - }
|
---|
| 214 | + goto err_unrecog;
|
---|
| 215 | }
|
---|
| 216 |
|
---|
| 217 | for (target = bfd_target_vector; *target != NULL; target++)
|
---|
| 218 | @@ -227,11 +200,7 @@
|
---|
| 219 | abfd->xvec = *target; /* Change BFD's target temporarily. */
|
---|
| 220 |
|
---|
| 221 | if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
|
---|
| 222 | - {
|
---|
| 223 | - if (matching)
|
---|
| 224 | - free (matching_vector);
|
---|
| 225 | - return FALSE;
|
---|
| 226 | - }
|
---|
| 227 | + goto err_ret;
|
---|
| 228 |
|
---|
| 229 | /* If _bfd_check_format neglects to set bfd_error, assume
|
---|
| 230 | bfd_error_wrong_format. We didn't used to even pay any
|
---|
| 231 | @@ -255,9 +224,8 @@
|
---|
| 232 | break;
|
---|
| 233 | }
|
---|
| 234 |
|
---|
| 235 | - if (matching)
|
---|
| 236 | + if (matching_vector)
|
---|
| 237 | matching_vector[match_count] = temp;
|
---|
| 238 | -
|
---|
| 239 | match_count++;
|
---|
| 240 | }
|
---|
| 241 | else if ((err = bfd_get_error ()) == bfd_error_wrong_object_format
|
---|
| 242 | @@ -268,20 +236,12 @@
|
---|
| 243 | no better matches. */
|
---|
| 244 | if (ar_right_targ != bfd_default_vector[0])
|
---|
| 245 | ar_right_targ = *target;
|
---|
| 246 | - if (matching)
|
---|
| 247 | + if (matching_vector)
|
---|
| 248 | matching_vector[ar_match_index] = *target;
|
---|
| 249 | ar_match_index++;
|
---|
| 250 | }
|
---|
| 251 | else if (err != bfd_error_wrong_format)
|
---|
| 252 | - {
|
---|
| 253 | - abfd->xvec = save_targ;
|
---|
| 254 | - abfd->format = bfd_unknown;
|
---|
| 255 | -
|
---|
| 256 | - if (matching)
|
---|
| 257 | - free (matching_vector);
|
---|
| 258 | -
|
---|
| 259 | - return FALSE;
|
---|
| 260 | - }
|
---|
| 261 | + goto err_ret;
|
---|
| 262 | }
|
---|
| 263 |
|
---|
| 264 | if (match_count == 0)
|
---|
| 265 | @@ -297,16 +257,14 @@
|
---|
| 266 | {
|
---|
| 267 | match_count = ar_match_index - _bfd_target_vector_entries;
|
---|
| 268 |
|
---|
| 269 | - if (matching && match_count > 1)
|
---|
| 270 | + if (matching_vector && match_count > 1)
|
---|
| 271 | memcpy (matching_vector,
|
---|
| 272 | matching_vector + _bfd_target_vector_entries,
|
---|
| 273 | sizeof (*matching_vector) * match_count);
|
---|
| 274 | }
|
---|
| 275 | }
|
---|
| 276 |
|
---|
| 277 | - if (match_count > 1
|
---|
| 278 | - && bfd_associated_vector != NULL
|
---|
| 279 | - && matching)
|
---|
| 280 | + if (match_count > 1)
|
---|
| 281 | {
|
---|
| 282 | const bfd_target * const *assoc = bfd_associated_vector;
|
---|
| 283 |
|
---|
| 284 | @@ -328,11 +286,9 @@
|
---|
| 285 |
|
---|
| 286 | if (match_count == 1)
|
---|
| 287 | {
|
---|
| 288 | + ok_ret:
|
---|
| 289 | abfd->xvec = right_targ; /* Change BFD's target permanently. */
|
---|
| 290 |
|
---|
| 291 | - if (matching)
|
---|
| 292 | - free (matching_vector);
|
---|
| 293 | -
|
---|
| 294 | /* If the file was opened for update, then `output_has_begun'
|
---|
| 295 | some time ago when the file was created. Do not recompute
|
---|
| 296 | sections sizes or alignments in _bfd_set_section_contents.
|
---|
| 297 | @@ -341,37 +297,39 @@
|
---|
| 298 | if (abfd->direction == both_direction)
|
---|
| 299 | abfd->output_has_begun = TRUE;
|
---|
| 300 |
|
---|
| 301 | + if (matching_vector)
|
---|
| 302 | + free (matching_vector);
|
---|
| 303 | return TRUE; /* File position has moved, BTW. */
|
---|
| 304 | }
|
---|
| 305 |
|
---|
| 306 | - abfd->xvec = save_targ; /* Restore original target type. */
|
---|
| 307 | - abfd->format = bfd_unknown; /* Restore original format. */
|
---|
| 308 | -
|
---|
| 309 | if (match_count == 0)
|
---|
| 310 | {
|
---|
| 311 | + err_unrecog:
|
---|
| 312 | bfd_set_error (bfd_error_file_not_recognized);
|
---|
| 313 | -
|
---|
| 314 | - if (matching)
|
---|
| 315 | + err_ret:
|
---|
| 316 | + abfd->xvec = save_targ;
|
---|
| 317 | + abfd->format = bfd_unknown;
|
---|
| 318 | + if (matching_vector)
|
---|
| 319 | free (matching_vector);
|
---|
| 320 | + return FALSE;
|
---|
| 321 | }
|
---|
| 322 | - else
|
---|
| 323 | - {
|
---|
| 324 | - bfd_set_error (bfd_error_file_ambiguously_recognized);
|
---|
| 325 |
|
---|
| 326 | - if (matching)
|
---|
| 327 | + abfd->xvec = save_targ; /* Restore original target type. */
|
---|
| 328 | + abfd->format = bfd_unknown; /* Restore original format. */
|
---|
| 329 | + bfd_set_error (bfd_error_file_ambiguously_recognized);
|
---|
| 330 | +
|
---|
| 331 | + if (matching)
|
---|
| 332 | + {
|
---|
| 333 | + *matching = (char **) matching_vector;
|
---|
| 334 | + matching_vector[match_count] = NULL;
|
---|
| 335 | + /* Return target names. This is a little nasty. Maybe we
|
---|
| 336 | + should do another bfd_malloc? */
|
---|
| 337 | + while (--match_count >= 0)
|
---|
| 338 | {
|
---|
| 339 | - *matching = (char **) matching_vector;
|
---|
| 340 | - matching_vector[match_count] = NULL;
|
---|
| 341 | - /* Return target names. This is a little nasty. Maybe we
|
---|
| 342 | - should do another bfd_malloc? */
|
---|
| 343 | - while (--match_count >= 0)
|
---|
| 344 | - {
|
---|
| 345 | - const char *name = matching_vector[match_count]->name;
|
---|
| 346 | - *(const char **) &matching_vector[match_count] = name;
|
---|
| 347 | - }
|
---|
| 348 | + const char *name = matching_vector[match_count]->name;
|
---|
| 349 | + *(const char **) &matching_vector[match_count] = name;
|
---|
| 350 | }
|
---|
| 351 | }
|
---|
| 352 | -
|
---|
| 353 | return FALSE;
|
---|
| 354 | }
|
---|
| 355 |
|
---|
| 356 | diff -Naur binutils-2.18.orig/bfd/opncls.c binutils-2.18/bfd/opncls.c
|
---|
| 357 | --- binutils-2.18.orig/bfd/opncls.c 2007-08-06 12:59:39.000000000 -0700
|
---|
| 358 | +++ binutils-2.18/bfd/opncls.c 2007-10-12 07:10:28.000000000 -0700
|
---|
| 359 | @@ -1216,46 +1216,48 @@
|
---|
| 360 | char *debugfile;
|
---|
| 361 | unsigned long crc32;
|
---|
| 362 | int i;
|
---|
| 363 | + size_t dirlen;
|
---|
| 364 |
|
---|
| 365 | BFD_ASSERT (abfd);
|
---|
| 366 | if (debug_file_directory == NULL)
|
---|
| 367 | debug_file_directory = ".";
|
---|
| 368 |
|
---|
| 369 | /* BFD may have been opened from a stream. */
|
---|
| 370 | - if (! abfd->filename)
|
---|
| 371 | - return NULL;
|
---|
| 372 | + if (abfd->filename == NULL)
|
---|
| 373 | + {
|
---|
| 374 | + bfd_set_error (bfd_error_invalid_operation);
|
---|
| 375 | + return NULL;
|
---|
| 376 | + }
|
---|
| 377 |
|
---|
| 378 | basename = get_debug_link_info (abfd, & crc32);
|
---|
| 379 | if (basename == NULL)
|
---|
| 380 | return NULL;
|
---|
| 381 |
|
---|
| 382 | - if (strlen (basename) < 1)
|
---|
| 383 | + if (basename[0] == '\0')
|
---|
| 384 | {
|
---|
| 385 | free (basename);
|
---|
| 386 | + bfd_set_error (bfd_error_no_debug_section);
|
---|
| 387 | return NULL;
|
---|
| 388 | }
|
---|
| 389 |
|
---|
| 390 | - dir = strdup (abfd->filename);
|
---|
| 391 | + for (dirlen = strlen (abfd->filename); dirlen > 0; dirlen--)
|
---|
| 392 | + if (IS_DIR_SEPARATOR (abfd->filename[dirlen - 1]))
|
---|
| 393 | + break;
|
---|
| 394 | +
|
---|
| 395 | + dir = bfd_malloc (dirlen + 1);
|
---|
| 396 | if (dir == NULL)
|
---|
| 397 | {
|
---|
| 398 | free (basename);
|
---|
| 399 | return NULL;
|
---|
| 400 | }
|
---|
| 401 | - BFD_ASSERT (strlen (dir) != 0);
|
---|
| 402 | -
|
---|
| 403 | - /* Strip off filename part. */
|
---|
| 404 | - for (i = strlen (dir) - 1; i >= 0; i--)
|
---|
| 405 | - if (IS_DIR_SEPARATOR (dir[i]))
|
---|
| 406 | - break;
|
---|
| 407 | + memcpy (dir, abfd->filename, dirlen);
|
---|
| 408 | + dir[dirlen] = '\0';
|
---|
| 409 |
|
---|
| 410 | - dir[i + 1] = '\0';
|
---|
| 411 | - BFD_ASSERT (dir[i] == '/' || dir[0] == '\0');
|
---|
| 412 | -
|
---|
| 413 | - debugfile = malloc (strlen (debug_file_directory) + 1
|
---|
| 414 | - + strlen (dir)
|
---|
| 415 | - + strlen (".debug/")
|
---|
| 416 | - + strlen (basename)
|
---|
| 417 | - + 1);
|
---|
| 418 | + debugfile = bfd_malloc (strlen (debug_file_directory) + 1
|
---|
| 419 | + + dirlen
|
---|
| 420 | + + strlen (".debug/")
|
---|
| 421 | + + strlen (basename)
|
---|
| 422 | + + 1);
|
---|
| 423 | if (debugfile == NULL)
|
---|
| 424 | {
|
---|
| 425 | free (basename);
|
---|
| 426 | @@ -1434,6 +1436,7 @@
|
---|
| 427 | FILE * handle;
|
---|
| 428 | static unsigned char buffer[8 * 1024];
|
---|
| 429 | size_t count;
|
---|
| 430 | + size_t filelen;
|
---|
| 431 |
|
---|
| 432 | if (abfd == NULL || sect == NULL || filename == NULL)
|
---|
| 433 | {
|
---|
| 434 | @@ -1463,21 +1466,22 @@
|
---|
| 435 | now that we no longer need them. */
|
---|
| 436 | filename = lbasename (filename);
|
---|
| 437 |
|
---|
| 438 | - debuglink_size = strlen (filename) + 1;
|
---|
| 439 | + filelen = strlen (filename);
|
---|
| 440 | + debuglink_size = filelen + 1;
|
---|
| 441 | debuglink_size += 3;
|
---|
| 442 | debuglink_size &= ~3;
|
---|
| 443 | debuglink_size += 4;
|
---|
| 444 |
|
---|
| 445 | - contents = malloc (debuglink_size);
|
---|
| 446 | + contents = bfd_malloc (debuglink_size);
|
---|
| 447 | if (contents == NULL)
|
---|
| 448 | {
|
---|
| 449 | /* XXX Should we delete the section from the bfd ? */
|
---|
| 450 | - bfd_set_error (bfd_error_no_memory);
|
---|
| 451 | return FALSE;
|
---|
| 452 | }
|
---|
| 453 |
|
---|
| 454 | - strcpy (contents, filename);
|
---|
| 455 | crc_offset = debuglink_size - 4;
|
---|
| 456 | + memcpy (contents, filename, filelen);
|
---|
| 457 | + memset (contents + filelen, 0, crc_offset - filelen);
|
---|
| 458 |
|
---|
| 459 | bfd_put_32 (abfd, crc32, contents + crc_offset);
|
---|
| 460 |
|
---|
| 461 | diff -Naur binutils-2.18.orig/bfd/version.h binutils-2.18/bfd/version.h
|
---|
| 462 | --- binutils-2.18.orig/bfd/version.h 2007-08-28 10:19:33.000000000 -0700
|
---|
[493c7be] | 463 | +++ binutils-2.18/bfd/version.h 2007-10-28 16:00:10.000000000 -0700
|
---|
[e9edcbd] | 464 | @@ -1,4 +1,4 @@
|
---|
| 465 | -#define BFD_VERSION_DATE 20070828
|
---|
[493c7be] | 466 | +#define BFD_VERSION_DATE 20071029
|
---|
[e9edcbd] | 467 | #define BFD_VERSION @bfd_version@
|
---|
| 468 | #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
|
---|
| 469 | #define REPORT_BUGS_TO @report_bugs_to@
|
---|
| 470 | diff -Naur binutils-2.18.orig/config.sub binutils-2.18/config.sub
|
---|
| 471 | --- binutils-2.18.orig/config.sub 2007-08-06 13:00:30.000000000 -0700
|
---|
| 472 | +++ binutils-2.18/config.sub 2007-08-29 01:58:58.000000000 -0700
|
---|
| 473 | @@ -4,7 +4,7 @@
|
---|
| 474 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
---|
| 475 | # Inc.
|
---|
| 476 |
|
---|
| 477 | -timestamp='2007-04-29'
|
---|
| 478 | +timestamp='2007-08-29'
|
---|
| 479 |
|
---|
| 480 | # This file is (in principle) common to ALL GNU software.
|
---|
| 481 | # The presence of a machine in this file suggests that SOME GNU software
|
---|
| 482 | @@ -479,6 +479,10 @@
|
---|
| 483 | basic_machine=cr16c-unknown
|
---|
| 484 | os=-elf
|
---|
| 485 | ;;
|
---|
| 486 | + cr16)
|
---|
| 487 | + basic_machine=cr16-unknown
|
---|
| 488 | + os=-elf
|
---|
| 489 | + ;;
|
---|
| 490 | crds | unos)
|
---|
| 491 | basic_machine=m68k-crds
|
---|
| 492 | ;;
|
---|
| 493 | diff -Naur binutils-2.18.orig/configure binutils-2.18/configure
|
---|
| 494 | --- binutils-2.18.orig/configure 2007-08-06 13:29:40.000000000 -0700
|
---|
| 495 | +++ binutils-2.18/configure 2007-10-12 07:03:20.000000000 -0700
|
---|
| 496 | @@ -6128,7 +6128,7 @@
|
---|
| 497 | # For an installed makeinfo, we require it to be from texinfo 4.4 or
|
---|
| 498 | # higher, else we use the "missing" dummy.
|
---|
| 499 | if ${MAKEINFO} --version \
|
---|
| 500 | - | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
|
---|
| 501 | + | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
|
---|
| 502 | :
|
---|
| 503 | else
|
---|
| 504 | MAKEINFO="$MISSING makeinfo"
|
---|
| 505 | diff -Naur binutils-2.18.orig/configure.ac binutils-2.18/configure.ac
|
---|
| 506 | --- binutils-2.18.orig/configure.ac 2007-08-28 13:24:26.000000000 -0700
|
---|
| 507 | +++ binutils-2.18/configure.ac 2007-10-12 07:03:20.000000000 -0700
|
---|
| 508 | @@ -158,7 +158,7 @@
|
---|
| 509 | # know that we are building the simulator.
|
---|
| 510 | # binutils, gas and ld appear in that order because it makes sense to run
|
---|
| 511 | # "make check" in that particular order.
|
---|
| 512 | -host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
|
---|
| 513 | +host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
|
---|
| 514 |
|
---|
| 515 | # libgcj represents the runtime libraries only used by gcj.
|
---|
| 516 | libgcj="target-libffi \
|
---|
| 517 | @@ -2403,7 +2403,7 @@
|
---|
| 518 | # For an installed makeinfo, we require it to be from texinfo 4.4 or
|
---|
| 519 | # higher, else we use the "missing" dummy.
|
---|
| 520 | if ${MAKEINFO} --version \
|
---|
| 521 | - | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
|
---|
| 522 | + | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
|
---|
| 523 | :
|
---|
| 524 | else
|
---|
| 525 | MAKEINFO="$MISSING makeinfo"
|
---|
| 526 | diff -Naur binutils-2.18.orig/gprof/ChangeLog binutils-2.18/gprof/ChangeLog
|
---|
| 527 | --- binutils-2.18.orig/gprof/ChangeLog 2007-08-24 07:04:53.000000000 -0700
|
---|
| 528 | +++ binutils-2.18/gprof/ChangeLog 2007-08-30 06:31:50.000000000 -0700
|
---|
| 529 | @@ -1,3 +1,7 @@
|
---|
| 530 | +2007-08-30 Nick Clifton <nickc@redhat.com>
|
---|
| 531 | +
|
---|
| 532 | + * po/fi.po: Updated Finnish translation.
|
---|
| 533 | +
|
---|
| 534 | 2007-08-24 Daniel Jacobowitz <dan@codesourcery.com>
|
---|
| 535 |
|
---|
| 536 | * po/sv.po: Updated Swedish translation.
|
---|
| 537 | diff -Naur binutils-2.18.orig/gprof/po/fi.po binutils-2.18/gprof/po/fi.po
|
---|
| 538 | --- binutils-2.18.orig/gprof/po/fi.po 2007-08-11 06:17:01.000000000 -0700
|
---|
| 539 | +++ binutils-2.18/gprof/po/fi.po 2007-08-30 06:31:50.000000000 -0700
|
---|
| 540 | @@ -8,7 +8,7 @@
|
---|
| 541 | "Project-Id-Version: gprof 2.17.90\n"
|
---|
| 542 | "Report-Msgid-Bugs-To: \n"
|
---|
| 543 | "POT-Creation-Date: 2007-05-15 16:49+0930\n"
|
---|
| 544 | -"PO-Revision-Date: 2007-08-10 16:17+0300\n"
|
---|
| 545 | +"PO-Revision-Date: 2007-08-29 20:12+0300\n"
|
---|
| 546 | "Last-Translator: Jorma Karvonen <karvjorm@users.sf.net>\n"
|
---|
| 547 | "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
|
---|
| 548 | "MIME-Version: 1.0\n"
|
---|
| 549 | @@ -23,17 +23,17 @@
|
---|
| 550 | #: alpha.c:107 mips.c:59
|
---|
| 551 | #, c-format
|
---|
| 552 | msgid "[find_call] %s: 0x%lx to 0x%lx\n"
|
---|
| 553 | -msgstr "[find_call] %s: 0x%lx to 0x%lx\n"
|
---|
| 554 | +msgstr "[etsi_kutsu] %s: 0x%lx arvoon 0x%lx\n"
|
---|
| 555 |
|
---|
| 556 | #: alpha.c:129
|
---|
| 557 | #, c-format
|
---|
| 558 | msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
|
---|
| 559 | -msgstr "[find_call] 0x%lx: jsr%s <indirect_child>\n"
|
---|
| 560 | +msgstr "[etsi_kutsu] 0x%lx: jsr%s-kÀsky <epÀsuora_lapsi>\n"
|
---|
| 561 |
|
---|
| 562 | #: alpha.c:139
|
---|
| 563 | #, c-format
|
---|
| 564 | msgid "[find_call] 0x%lx: bsr"
|
---|
| 565 | -msgstr "[find_call] 0x%lx: bsr"
|
---|
| 566 | +msgstr "[etsi_kutsu] 0x%lx: bsr-kÀsky"
|
---|
| 567 |
|
---|
| 568 | # ensimmÀinen %s whoami, toinen %s filename
|
---|
| 569 | #: basic_blocks.c:128 call_graph.c:89 hist.c:105
|
---|
| 570 | @@ -51,7 +51,7 @@
|
---|
| 571 | #: basic_blocks.c:289 basic_blocks.c:299
|
---|
| 572 | #, c-format
|
---|
| 573 | msgid "%s:%d: (%s:0x%lx) %lu executions\n"
|
---|
| 574 | -msgstr "%s:%d: (%s:0x%lx) %lu suorituksia\n"
|
---|
| 575 | +msgstr "%s:%d: (%s:0x%lx) %lu suoritusta\n"
|
---|
| 576 |
|
---|
| 577 | #: basic_blocks.c:290 basic_blocks.c:300
|
---|
| 578 | msgid "<unknown>"
|
---|
| 579 | @@ -125,7 +125,7 @@
|
---|
| 580 | "\t\t Call graph (explanation follows)\n"
|
---|
| 581 | "\n"
|
---|
| 582 | msgstr ""
|
---|
| 583 | -"\t\t Kutsugrafiikka (selitys seuraa)\n"
|
---|
| 584 | +"\t\t Kutsugraafi (selitys seuraa)\n"
|
---|
| 585 | "\n"
|
---|
| 586 |
|
---|
| 587 | #: cg_print.c:75
|
---|
| 588 | @@ -134,7 +134,7 @@
|
---|
| 589 | "\t\t\tCall graph\n"
|
---|
| 590 | "\n"
|
---|
| 591 | msgstr ""
|
---|
| 592 | -"\t\t\tKutsugrafiikka\n"
|
---|
| 593 | +"\t\t\tKutsugraafi\n"
|
---|
| 594 | "\n"
|
---|
| 595 |
|
---|
| 596 | #: cg_print.c:78 hist.c:466
|
---|
| 597 | @@ -256,7 +256,7 @@
|
---|
| 598 | #: corefile.c:177
|
---|
| 599 | #, c-format
|
---|
| 600 | msgid "%s: can't find .text section in %s\n"
|
---|
| 601 | -msgstr "%s: ei löydy \".text\"-lohkoa kohteesta %s\n"
|
---|
| 602 | +msgstr "%s: ei löydy â.textâ-lohkoa kohteesta %s\n"
|
---|
| 603 |
|
---|
| 604 | #: corefile.c:252
|
---|
| 605 | #, c-format
|
---|
| 606 | @@ -276,7 +276,7 @@
|
---|
| 607 | #: corefile.c:470
|
---|
| 608 | #, c-format
|
---|
| 609 | msgid "%s: file `%s' has no symbols\n"
|
---|
| 610 | -msgstr "%s: tiedostossa \"%s\" ei ole symboleja\n"
|
---|
| 611 | +msgstr "%s: tiedostossa â%sâ ei ole symboleja\n"
|
---|
| 612 |
|
---|
| 613 | #: corefile.c:772
|
---|
| 614 | #, c-format
|
---|
| 615 | @@ -296,12 +296,12 @@
|
---|
| 616 | #: gmon_io.c:330 gmon_io.c:459
|
---|
| 617 | #, c-format
|
---|
| 618 | msgid "%s: file `%s' has bad magic cookie\n"
|
---|
| 619 | -msgstr "%s: tiedostossa \"%s\" on virheellinen maaginen pipari\n"
|
---|
| 620 | +msgstr "%s: tiedostossa â%sâ on virheellinen maaginen pipari\n"
|
---|
| 621 |
|
---|
| 622 | #: gmon_io.c:341
|
---|
| 623 | #, c-format
|
---|
| 624 | msgid "%s: file `%s' has unsupported version %d\n"
|
---|
| 625 | -msgstr "%s: tiedostossa \"%s\" on tukematon versio %d\n"
|
---|
| 626 | +msgstr "%s: tiedostossa â%sâ on tukematon versio %d\n"
|
---|
| 627 |
|
---|
| 628 | #: gmon_io.c:371
|
---|
| 629 | #, c-format
|
---|
| 630 | @@ -321,12 +321,12 @@
|
---|
| 631 | #: gmon_io.c:516
|
---|
| 632 | #, c-format
|
---|
| 633 | msgid "%s: file '%s' does not appear to be in gmon.out format\n"
|
---|
| 634 | -msgstr "%s: tiedosto \"%s\" ei vaikuta olevan \"gmon.out\"-muotoinen\n"
|
---|
| 635 | +msgstr "%s: tiedosto â%sâ ei vaikuta olevan âgmon.outâ-muotoinen\n"
|
---|
| 636 |
|
---|
| 637 | #: gmon_io.c:529
|
---|
| 638 | #, c-format
|
---|
| 639 | msgid "%s: unexpected EOF after reading %d/%d bins\n"
|
---|
| 640 | -msgstr "%s: odottamaton tiedoston loppumerkki \"%d/%d bins\"-lukemisen jÀlkeen\n"
|
---|
| 641 | +msgstr "%s: odottamaton tiedoston loppumerkki â%d/%d binsâ-lukemisen jÀlkeen\n"
|
---|
| 642 |
|
---|
| 643 | #: gmon_io.c:563
|
---|
| 644 | #, c-format
|
---|
| 645 | @@ -341,7 +341,7 @@
|
---|
| 646 | #: gmon_io.c:576
|
---|
| 647 | #, c-format
|
---|
| 648 | msgid "File `%s' (version %d) contains:\n"
|
---|
| 649 | -msgstr "Tiedosto \"%s\" (versio %d) sisÀltÀÀ:\n"
|
---|
| 650 | +msgstr "Tiedosto â%sâ (versio %d) sisÀltÀÀ:\n"
|
---|
| 651 |
|
---|
| 652 | #: gmon_io.c:579
|
---|
| 653 | #, c-format
|
---|
| 654 | @@ -356,12 +356,12 @@
|
---|
| 655 | #: gmon_io.c:582
|
---|
| 656 | #, c-format
|
---|
| 657 | msgid "\t%d call-graph record\n"
|
---|
| 658 | -msgstr "\t%d kutsugrafiikkatietue\n"
|
---|
| 659 | +msgstr "\t%d kutsugraafitietue\n"
|
---|
| 660 |
|
---|
| 661 | #: gmon_io.c:583
|
---|
| 662 | #, c-format
|
---|
| 663 | msgid "\t%d call-graph records\n"
|
---|
| 664 | -msgstr "\t%d kutsugrafiikkatietueet\n"
|
---|
| 665 | +msgstr "\t%d kutsugraafitietueet\n"
|
---|
| 666 |
|
---|
| 667 | #: gmon_io.c:585
|
---|
| 668 | #, c-format
|
---|
| 669 | @@ -407,12 +407,12 @@
|
---|
| 670 | #: gprof.c:174
|
---|
| 671 | #, c-format
|
---|
| 672 | msgid "Report bugs to %s\n"
|
---|
| 673 | -msgstr "Raportoi virheestÀ osoitteeseen %s\n"
|
---|
| 674 | +msgstr "LÀhetÀ raportit ohjelmistovioista (englanniksi) osoitteeseen %s\n"
|
---|
| 675 |
|
---|
| 676 | #: gprof.c:250
|
---|
| 677 | #, c-format
|
---|
| 678 | msgid "%s: debugging not supported; -d ignored\n"
|
---|
| 679 | -msgstr "%s: debuggausta ei tueta; -d ei oteta huomioon\n"
|
---|
| 680 | +msgstr "%s: debuggausta ei tueta; -d:tÀ ei oteta huomioon\n"
|
---|
| 681 |
|
---|
| 682 | #: gprof.c:330
|
---|
| 683 | #, c-format
|
---|
| 684 | @@ -428,7 +428,7 @@
|
---|
| 685 | #: gprof.c:415
|
---|
| 686 | #, c-format
|
---|
| 687 | msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
|
---|
| 688 | -msgstr "Perustuu BSD gprof, copyright 1983 Regents of the University of California.\n"
|
---|
| 689 | +msgstr "Perustuu BSD:n gprofiin, copyright 1983 Regents of the University of California.\n"
|
---|
| 690 |
|
---|
| 691 | #: gprof.c:416
|
---|
| 692 | #, c-format
|
---|
| 693 | @@ -438,27 +438,27 @@
|
---|
| 694 | #: gprof.c:457
|
---|
| 695 | #, c-format
|
---|
| 696 | msgid "%s: unknown demangling style `%s'\n"
|
---|
| 697 | -msgstr "%s: tuntematon eheytystyyli \"%s\"\n"
|
---|
| 698 | +msgstr "%s: tuntematon eheytystyyli â%sâ\n"
|
---|
| 699 |
|
---|
| 700 | #: gprof.c:477
|
---|
| 701 | #, c-format
|
---|
| 702 | msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
|
---|
| 703 | -msgstr "%s: Vain joko \"--function-ordering\" tai \"--file-ordering\" saadaan mÀÀritellÀ.\n"
|
---|
| 704 | +msgstr "%s: Vain joko â--function-orderingâ tai â--file-orderingâ saadaan mÀÀritellÀ.\n"
|
---|
| 705 |
|
---|
| 706 | #: gprof.c:527
|
---|
| 707 | #, c-format
|
---|
| 708 | msgid "%s: sorry, file format `prof' is not yet supported\n"
|
---|
| 709 | -msgstr "%s: valitettavasti tiedostomuotoa \"prof\" ei vielÀ tueta\n"
|
---|
| 710 | +msgstr "%s: valitettavasti tiedostomuotoa âprofâ ei vielÀ tueta\n"
|
---|
| 711 |
|
---|
| 712 | #: gprof.c:581
|
---|
| 713 | #, c-format
|
---|
| 714 | msgid "%s: gmon.out file is missing histogram\n"
|
---|
| 715 | -msgstr "%s: \"gmon.out\"-tiedosto puuttuu histogrammista\n"
|
---|
| 716 | +msgstr "%s: âgmon.outâ-tiedosto puuttuu histogrammista\n"
|
---|
| 717 |
|
---|
| 718 | #: gprof.c:588
|
---|
| 719 | #, c-format
|
---|
| 720 | msgid "%s: gmon.out file is missing call-graph data\n"
|
---|
| 721 | -msgstr "%s: \"gmon.out\"-tiedosto puuttuu kutsugrafiikkadatasta\n"
|
---|
| 722 | +msgstr "%s: âgmon.outâ-tiedosto puuttuu kutsugraafidatasta\n"
|
---|
| 723 |
|
---|
| 724 | #: hist.c:133
|
---|
| 725 | #, c-format
|
---|
| 726 | @@ -468,8 +468,8 @@
|
---|
| 727 | "%s: to '%s'\n"
|
---|
| 728 | msgstr ""
|
---|
| 729 | "%s: mittasuhdeyksikkö muuttui histogrammitietueiden vÀlillÀ\n"
|
---|
| 730 | -"%s: arvosta \"%s\"\n"
|
---|
| 731 | -"%s: arvoon \"%s\"\n"
|
---|
| 732 | +"%s: arvosta â%sâ\n"
|
---|
| 733 | +"%s: arvoon â%sâ\n"
|
---|
| 734 |
|
---|
| 735 | #: hist.c:143
|
---|
| 736 | #, c-format
|
---|
| 737 | @@ -479,8 +479,8 @@
|
---|
| 738 | "%s: to '%c'\n"
|
---|
| 739 | msgstr ""
|
---|
| 740 | "%s: mittasuhdelyhenne muuttui histogrammitietueiden vÀlillÀ\n"
|
---|
| 741 | -"%s: arvosta \"%c\"\n"
|
---|
| 742 | -"%s: arvoon \"%c\"\n"
|
---|
| 743 | +"%s: arvosta â%câ\n"
|
---|
| 744 | +"%s: arvoon â%câ\n"
|
---|
| 745 |
|
---|
| 746 | #: hist.c:157
|
---|
| 747 | #, c-format
|
---|
| 748 | @@ -508,7 +508,7 @@
|
---|
| 749 | " for %.2f%% of %.2f %s\n"
|
---|
| 750 | "\n"
|
---|
| 751 | msgstr ""
|
---|
| 752 | -" kohteelle %.2f%% of %.2f %s\n"
|
---|
| 753 | +" kohteelle %.2f%% / %.2f %s\n"
|
---|
| 754 | "\n"
|
---|
| 755 |
|
---|
| 756 | #: hist.c:476
|
---|
| 757 | @@ -526,7 +526,7 @@
|
---|
| 758 | " no time accumulated\n"
|
---|
| 759 | "\n"
|
---|
| 760 | msgstr ""
|
---|
| 761 | -" ei akkumuloitunutta aikaa\n"
|
---|
| 762 | +" ei kerÀÀntynyttÀ aikaa\n"
|
---|
| 763 | "\n"
|
---|
| 764 |
|
---|
| 765 | #: hist.c:488
|
---|
| 766 | @@ -575,17 +575,17 @@
|
---|
| 767 | #: mips.c:71
|
---|
| 768 | #, c-format
|
---|
| 769 | msgid "[find_call] 0x%lx: jal"
|
---|
| 770 | -msgstr "[find_call] 0x%lx: jal-kÀsky"
|
---|
| 771 | +msgstr "[etsi_kutsu] 0x%lx: jal-kÀsky"
|
---|
| 772 |
|
---|
| 773 | #: mips.c:96
|
---|
| 774 | #, c-format
|
---|
| 775 | msgid "[find_call] 0x%lx: jalr\n"
|
---|
| 776 | -msgstr "[find_call] 0x%lx: jalr-kÀsky (epÀsuora kutsu)\n"
|
---|
| 777 | +msgstr "[etsi_kutsu] 0x%lx: jalr-kÀsky (epÀsuora kutsu)\n"
|
---|
| 778 |
|
---|
| 779 | #: source.c:162
|
---|
| 780 | #, c-format
|
---|
| 781 | msgid "%s: could not locate `%s'\n"
|
---|
| 782 | -msgstr "%s: ei voitu paikantaa \"%s\"\n"
|
---|
| 783 | +msgstr "%s: ei voitu paikantaa â%sâ\n"
|
---|
| 784 |
|
---|
| 785 | #: source.c:237
|
---|
| 786 | #, c-format
|
---|