diff options
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/coff-rs6000.c | 15 | ||||
-rw-r--r-- | bfd/coff64-rs6000.c | 14 | ||||
-rw-r--r-- | include/coff/ChangeLog | 5 | ||||
-rw-r--r-- | include/coff/rs6000.h | 17 | ||||
-rw-r--r-- | include/coff/rs6k64.h | 20 |
6 files changed, 49 insertions, 29 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9437475..7af29f0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2011-04-28 Tristan Gingold <gingold@adacore.com> + + * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Adjust for x_file. + (bfd_xcoff_swap_aux_out): Ditto. + * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Ditto. + (bfd_xcoff64_swap_aux_out): Ditto. + 2011-05-04 Alan Modra <amodra@gmail.com> PR ld/12727 diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 41bec09..21da658 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -463,23 +463,23 @@ _bfd_xcoff_swap_aux_in (bfd *abfd, PTR ext1, int type, int in_class, switch (in_class) { case C_FILE: - if (ext->x_file.x_fname[0] == 0) + if (ext->x_file.x_n.x_fname[0] == 0) { in->x_file.x_n.x_zeroes = 0; in->x_file.x_n.x_offset = - H_GET_32 (abfd, ext->x_file.x_n.x_offset); + H_GET_32 (abfd, ext->x_file.x_n.x_n.x_offset); } else { if (numaux > 1) { if (indx == 0) - memcpy (in->x_file.x_fname, ext->x_file.x_fname, + memcpy (in->x_file.x_fname, ext->x_file.x_n.x_fname, numaux * sizeof (AUXENT)); } else { - memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN); + memcpy (in->x_file.x_fname, ext->x_file.x_n.x_fname, FILNMLEN); } } goto end; @@ -578,12 +578,13 @@ _bfd_xcoff_swap_aux_out (bfd *abfd, PTR inp, int type, int in_class, case C_FILE: if (in->x_file.x_fname[0] == 0) { - H_PUT_32 (abfd, 0, ext->x_file.x_n.x_zeroes); - H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset); + H_PUT_32 (abfd, 0, ext->x_file.x_n.x_n.x_zeroes); + H_PUT_32 (abfd, in->x_file.x_n.x_offset, + ext->x_file.x_n.x_n.x_offset); } else { - memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN); + memcpy (ext->x_file.x_n.x_fname, in->x_file.x_fname, FILNMLEN); } goto end; diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index cb2f1cc..1887bb9 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -353,14 +353,15 @@ _bfd_xcoff64_swap_aux_in (bfd *abfd, void *ext1, int type, int in_class, switch (in_class) { case C_FILE: - if (ext->x_file.x_n.x_zeroes[0] == 0) + if (ext->x_file.x_n.x_n.x_zeroes[0] == 0) { in->x_file.x_n.x_zeroes = 0; - in->x_file.x_n.x_offset = H_GET_32 (abfd, ext->x_file.x_n.x_offset); + in->x_file.x_n.x_offset = + H_GET_32 (abfd, ext->x_file.x_n.x_n.x_offset); } else { - memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN); + memcpy (in->x_file.x_fname, ext->x_file.x_n.x_fname, FILNMLEN); } goto end; @@ -444,12 +445,13 @@ _bfd_xcoff64_swap_aux_out (bfd *abfd, void *inp, int type, int in_class, case C_FILE: if (in->x_file.x_n.x_zeroes == 0) { - H_PUT_32 (abfd, 0, ext->x_file.x_n.x_zeroes); - H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset); + H_PUT_32 (abfd, 0, ext->x_file.x_n.x_n.x_zeroes); + H_PUT_32 (abfd, in->x_file.x_n.x_offset, + ext->x_file.x_n.x_n.x_offset); } else { - memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN); + memcpy (ext->x_file.x_n.x_fname, in->x_file.x_fname, FILNMLEN); } H_PUT_8 (abfd, _AUX_FILE, ext->x_auxtype.x_auxtype); goto end; diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog index 744d7e2..b2fe5af 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,5 +1,10 @@ 2011-05-04 Tristan Gingold <gingold@adacore.com> + * rs6000.h (union external_auxent): Add x_ftype field. + * rs6k64.h: (struct external_auxent): Remap x_file field. + +2011-05-04 Tristan Gingold <gingold@adacore.com> + * rs6000.h (struct external_exceptab): New struct. (EXCEPTSZ): New macro. * rs6k64.h: (struct external_exceptab): New struct. diff --git a/include/coff/rs6000.h b/include/coff/rs6000.h index c72e6e9..d5b2af2 100644 --- a/include/coff/rs6000.h +++ b/include/coff/rs6000.h @@ -168,13 +168,16 @@ union external_auxent { char x_tvndx[2]; /* tv index */ } x_sym; - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - } x_n; - } x_file; + struct { + union { + char x_fname[E_FILNMLEN]; + struct { + char x_zeroes[4]; + char x_offset[4]; + } x_n; + } x_n; + char x_ftype[1]; + } x_file; struct { char x_scnlen[4]; /* section length */ diff --git a/include/coff/rs6k64.h b/include/coff/rs6k64.h index ef91db4..453198a 100644 --- a/include/coff/rs6k64.h +++ b/include/coff/rs6k64.h @@ -152,15 +152,17 @@ union external_auxent } x_fcnary; } x_sym; - union { - char x_fname[E_FILNMLEN]; - struct { - char x_zeroes[4]; - char x_offset[4]; - char x_pad[6]; - unsigned char x_ftype[1]; - unsigned char x_resv[2]; - } x_n; + struct { + union { + char x_fname[E_FILNMLEN]; + struct { + char x_zeroes[4]; + char x_offset[4]; + char x_pad[6]; + } x_n; + } x_n; + unsigned char x_ftype[1]; + unsigned char x_resv[2]; } x_file; struct { |