[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