[PATCH][Binutils][x86][PE][MingW] Add i386 PE big-object support
Tamar Christina
Tamar.Christina@arm.com
Mon Apr 27 10:36:31 GMT 2020
Ping.
> -----Original Message-----
> From: Binutils <binutils-bounces@sourceware.org> On Behalf Of Tamar
> Christina
> Sent: Tuesday, April 21, 2020 5:44 PM
> To: binutils@sourceware.org
> Cc: me+binutils@cgf.cx; nd <nd@arm.com>; dave.korn.cygwin@gmail.com
> Subject: [PATCH][Binutils][x86][PE][MingW] Add i386 PE big-object
> support
>
> Hi All,
>
> The 64-bit version of binutils got support for the PE COFF BIG OBJ format a
> couple of years ago. The BIG OBJ format is a slightly different COFF format
> which extends the size of the number of section field in the header
> from a uint16_t to a uint32_t and so greatly increases the number of
> sections allowed.
>
> However the 32-bit version of bfd never got support for this. The GHC
> Haskell compiler generates a great deal of symbols due to it's use of
> - ffunction-sections and -fdata-sections.
>
> This meant that we could not build the 32-bit version of the GHC
> Compiler for many releases now as binutils didn't have this support.
>
> This patch adds the support to the 32-bit port of binutils as well and
> also does come cleanup in the code.
>
> build on native hardware and regtested on
> i386-w64-mingw32 and x86_64-w64-mingw64
>
> and no issues.
>
> Ok for master?
>
> Thanks,
> Tamar
>
> bfd/ChangeLog:
>
> 2020-04-21 Tamar Christina <tamar.christina@arm.com>
>
> PR binutils/XXXX
> * coff-i386.c (COFF_WITH_PE_BIGOBJ): New.
> * coff-x86_64.c (COFF_WITH_PE_BIGOBJ): New.
> * config.bfd (targ_selvecs): Rename x86_64_pe_be_vec
> to x86_64_pe_big_vec as it not a big-endian format.
> (vec i386_pe_big_vec): New.
> * configure.ac: Likewise.
> * targets.c: Likewise.
> * configure: Regenerate.
> * pe-i386.c (TARGET_SYM_BIG, TARGET_NAME_BIG,
> COFF_WITH_PE_BIGOBJ): New.
> * pe-x86_64.c (TARGET_SYM_BIG, TARGET_NAME_BIG):
> New.
> (x86_64_pe_be_vec): Moved.
>
> gas/ChangeLog:
>
> 2020-04-21 Tamar Christina <tamar.christina@arm.com>
>
> PR binutils/XXXX
> * NEWS: Add news entry for big-obj.
> * config/tc-i386.c (i386_target_format): Support new format.
> * doc/c-i386.texi: Add i386 support.
> * testsuite/gas/pe/big-obj.d: Rename test to not be x64 specific.
> * testsuite/gas/pe/pe.exp (big-obj): Make test run on i386 as well.
>
> ld/ChangeLog:
>
> 2020-04-21 Tamar Christina <tamar.christina@arm.com>
>
> PR binutils/XXXX
> * pe-dll.c (pe_detail_list): Add pe-bigobj-i386.
>
> --
More information about the Binutils
mailing list