* [Patch]: complete coff/rs6000.h @ 2011-04-28 13:43 Tristan Gingold 2011-05-03 8:35 ` Richard Sandiford 0 siblings, 1 reply; 7+ messages in thread From: Tristan Gingold @ 2011-04-28 13:43 UTC (permalink / raw) To: binutils Development Hi, this patch adds a couple of fields that are in the AIX doc but not in rs6000.h Ok for trunk ? Tristan. include/coff: 2011-04-28 Tristan Gingold <gingold@adacore.com> * rs6000.h (union external_auxent): Add x_ftype field. (struct external_exceptab): New struct. (EXCEPTSZ): New macro. diff --git a/include/coff/rs6000.h b/include/coff/rs6000.h index 960dd32..f530a46 100644 --- a/include/coff/rs6000.h +++ b/include/coff/rs6000.h @@ -173,6 +173,8 @@ union external_auxent { struct { char x_zeroes[4]; char x_offset[4]; + char x_pad[E_FILNMLEN - 8]; + char x_ftype[1]; } x_n; } x_file; @@ -276,3 +278,12 @@ struct external_ldrel }; #define LDRELSZ (2 * 4 + 2 * 2) + +struct external_exceptab +{ + bfd_byte e_addr[4]; + bfd_byte e_lang[1]; + bfd_byte e_reason[1]; +}; + +#define EXCEPTSZ (4 + 2) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-04-28 13:43 [Patch]: complete coff/rs6000.h Tristan Gingold @ 2011-05-03 8:35 ` Richard Sandiford 2011-05-03 9:45 ` Tristan Gingold 0 siblings, 1 reply; 7+ messages in thread From: Richard Sandiford @ 2011-05-03 8:35 UTC (permalink / raw) To: Tristan Gingold; +Cc: binutils Development Tristan Gingold <gingold@adacore.com> writes: > @@ -173,6 +173,8 @@ union external_auxent { > struct { > char x_zeroes[4]; > char x_offset[4]; > + char x_pad[E_FILNMLEN - 8]; > + char x_ftype[1]; > } x_n; > } x_file; > x_ftype applies to both name encodings, so something like the syment definition would seem better. (That'd mean changing the bfd code too, of course.) > @@ -276,3 +278,12 @@ struct external_ldrel > }; > > #define LDRELSZ (2 * 4 + 2 * 2) > + > +struct external_exceptab > +{ > + bfd_byte e_addr[4]; > + bfd_byte e_lang[1]; > + bfd_byte e_reason[1]; > +}; > + > +#define EXCEPTSZ (4 + 2) This part's OK though. Please add the corresponding 64-bit definition to rs6k64.h while you're there, to keep the two in sync. Richard ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-05-03 8:35 ` Richard Sandiford @ 2011-05-03 9:45 ` Tristan Gingold 2011-05-03 13:07 ` Richard Sandiford 0 siblings, 1 reply; 7+ messages in thread From: Tristan Gingold @ 2011-05-03 9:45 UTC (permalink / raw) To: Richard Sandiford; +Cc: binutils Development On May 3, 2011, at 10:35 AM, Richard Sandiford wrote: > x_ftype applies to both name encodings, so something like the syment > definition would seem better. (That'd mean changing the bfd code too, > of course.) [...] > This part's OK though. Please add the corresponding 64-bit definition > to rs6k64.h while you're there, to keep the two in sync. Thank you for the review. Here is the updated version. Simply checked by rebuilding binutils. Ok for trunk ? Tristan. include/coff: 2011-04-28 Tristan Gingold <gingold@adacore.com> * rs6000.h (union external_auxent): Add x_ftype field. (struct external_exceptab): New struct. (EXCEPTSZ): New macro. * rs6k64.h: (struct external_exceptab): New struct. (EXCEPTSZ): New macro. bfd/ 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. 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/include/coff/rs6000.h b/include/coff/rs6000.h index 960dd32..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 */ @@ -276,3 +279,15 @@ struct external_ldrel }; #define LDRELSZ (2 * 4 + 2 * 2) + +struct external_exceptab +{ + union { + bfd_byte e_symndx[4]; + bfd_byte e_paddr[4]; + } e_addr; + bfd_byte e_lang[1]; + bfd_byte e_reason[1]; +}; + +#define EXCEPTSZ (4 + 2) diff --git a/include/coff/rs6k64.h b/include/coff/rs6k64.h index 516758b..ef91db4 100644 --- a/include/coff/rs6k64.h +++ b/include/coff/rs6k64.h @@ -259,3 +259,15 @@ struct external_ldrel }; #define LDRELSZ (16) + +struct external_exceptab +{ + union { + bfd_byte e_symndx[4]; + bfd_byte e_paddr[8]; + } e_addr; + bfd_byte e_lang[1]; + bfd_byte e_reason[1]; +}; + +#define EXCEPTSZ (10) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-05-03 9:45 ` Tristan Gingold @ 2011-05-03 13:07 ` Richard Sandiford 2011-05-04 7:17 ` Tristan Gingold 0 siblings, 1 reply; 7+ messages in thread From: Richard Sandiford @ 2011-05-03 13:07 UTC (permalink / raw) To: Tristan Gingold; +Cc: binutils Development Tristan Gingold <gingold@adacore.com> writes: > 2011-04-28 Tristan Gingold <gingold@adacore.com> > > * rs6000.h (union external_auxent): Add x_ftype field. Please make r6k64.h match here too. > (struct external_exceptab): New struct. > (EXCEPTSZ): New macro. > * rs6k64.h: (struct external_exceptab): New struct. > (EXCEPTSZ): New macro. This part's OK. Please install separately. Richard ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-05-03 13:07 ` Richard Sandiford @ 2011-05-04 7:17 ` Tristan Gingold 2011-05-04 9:40 ` Richard Sandiford 0 siblings, 1 reply; 7+ messages in thread From: Tristan Gingold @ 2011-05-04 7:17 UTC (permalink / raw) To: Richard Sandiford; +Cc: binutils Development On May 3, 2011, at 3:07 PM, Richard Sandiford wrote: > Tristan Gingold <gingold@adacore.com> writes: >> 2011-04-28 Tristan Gingold <gingold@adacore.com> >> >> * rs6000.h (union external_auxent): Add x_ftype field. > > Please make r6k64.h match here too. Done, see patch below. Checked by rebuilding for powerpc64-ibm-aix6.1 >> (struct external_exceptab): New struct. >> (EXCEPTSZ): New macro. >> * rs6k64.h: (struct external_exceptab): New struct. >> (EXCEPTSZ): New macro. > > This part's OK. Please install separately. I have just installed it. Tristan. include/coff: 2011-04-28 Tristan Gingold <gingold@adacore.com> * rs6000.h (union external_auxent): Add x_ftype field. * rs6k64.h: (struct external_auxent): Remap x_file field. bfd/ 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. 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/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 { ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-05-04 7:17 ` Tristan Gingold @ 2011-05-04 9:40 ` Richard Sandiford 2011-05-04 11:05 ` Tristan Gingold 0 siblings, 1 reply; 7+ messages in thread From: Richard Sandiford @ 2011-05-04 9:40 UTC (permalink / raw) To: Tristan Gingold; +Cc: binutils Development Tristan Gingold <gingold@adacore.com> writes: > include/coff: > 2011-04-28 Tristan Gingold <gingold@adacore.com> > > * rs6000.h (union external_auxent): Add x_ftype field. > * rs6k64.h: (struct external_auxent): Remap x_file field. > > bfd/ > 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. OK, thanks. (Please add the missing '*'s to the changelog though.) Richard ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Patch]: complete coff/rs6000.h 2011-05-04 9:40 ` Richard Sandiford @ 2011-05-04 11:05 ` Tristan Gingold 0 siblings, 0 replies; 7+ messages in thread From: Tristan Gingold @ 2011-05-04 11:05 UTC (permalink / raw) To: Richard Sandiford; +Cc: binutils Development On May 4, 2011, at 11:39 AM, Richard Sandiford wrote: > Tristan Gingold <gingold@adacore.com> writes: >> include/coff: >> 2011-04-28 Tristan Gingold <gingold@adacore.com> >> >> * rs6000.h (union external_auxent): Add x_ftype field. >> * rs6k64.h: (struct external_auxent): Remap x_file field. >> >> bfd/ >> 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. > > OK, thanks. (Please add the missing '*'s to the changelog though.) Done. Thank you for your patience. Tristan. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-05-04 11:05 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-04-28 13:43 [Patch]: complete coff/rs6000.h Tristan Gingold 2011-05-03 8:35 ` Richard Sandiford 2011-05-03 9:45 ` Tristan Gingold 2011-05-03 13:07 ` Richard Sandiford 2011-05-04 7:17 ` Tristan Gingold 2011-05-04 9:40 ` Richard Sandiford 2011-05-04 11:05 ` Tristan Gingold
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).