Fix wrong auxtype for storage class warning in AIX.
Fixes a warning in BFD when processing AIX 64-bit binaries with exception table symbols.
Aditya Vidyadhar Kamath submits a patch to resolve a spurious warning in BFD when debugging 64-bit AIX binaries. The warning, ‘wrong auxtype … for storage class’, occurred because BFD’s _bfd_xcoff64_swap_aux_in() function did not properly handle the _AUX_EXCEPT auxiliary entry, which is used for functions with exception tables. The fix modifies the function to silently skip _AUX_EXCEPT entries, as BFD does not need to parse their payload, thus eliminating the warning.
- proposer
Submits a patch to fix a warning in BFD related to AIX 64-bit binaries by correctly handling `_AUX_EXCEPT` auxiliary entries.
“The openXL compiled binary or library in AIX emits _AUX_EXCEPT (auxtype 0xff) auxillary entry for C_EXT and C_HIDEXT symbols which are functions that have exception tables. BFD's _bfd_xcoff64_swap_aux_in() only accepted _AUX_FCN for non-last aux entries and jumped to error: for anything else triggering the spurious warning.”
In Details
This patch addresses a warning in the BFD library's XCOFF64 parser when encountering _AUX_EXCEPT entries on AIX. These entries are generated by the OpenXL compiler for functions with exception tables. The existing BFD code mishandled these, leading to a 'wrong auxtype' warning. The fix correctly identifies and skips _AUX_EXCEPT entries, preventing the spurious warning during debugging of 64-bit AIX binaries.
- BFD
- Binary File Descriptor library, part of GNU Binutils, which provides a common interface to various object file formats.
- AIX
- A server operating system developed by IBM.
- auxtype
- Auxiliary type, a field in the XCOFF object file format that provides additional information about a symbol.
- storage class
- A term in object file formats (like XCOFF) that describes the storage properties of a symbol, such as whether it's a code or data symbol.
- XCOFF
- Extended Common Object File Format, the standard object file format for AIX.
- 64-bit binary
- An executable program compiled for a 64-bit architecture, capable of addressing more memory than 32-bit binaries.
- exception tables
- Data structures that describe how to handle runtime exceptions in a program, particularly relevant for languages and ABIs that support structured exception handling.