This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Patch]: complete coff/rs6000.h
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 {