This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Support aligned common symbols on PE.


Dave Korn wrote:
> Dave Korn wrote:
> 
>> But it's quite a big one, and the tests still have 24 hours or so to run
> 
> The tests completed, and showed up a couple of problems; 

> So, I'm now putting this
> revised version through the full tests again.  Results tomorrow sometime,
> along with an updated changelog.

  The tests completed with no regressions on

 i686-pc-cygwin native and x {i686-pc-mingw32, x86_64-pc-mingw32} and
 i686-pc-linux-gnu x {usual long list of 71 random targets, see footer of post[*]}

  I also temporarily hacked in enough basic support for cegcc targets to give
them a quick cross-test and verify nothing significant broke, although they
don't pass the tests because they have some kind of file-alignment limited to
8 which the compiler warns about:

/gnu/binutils/src/ld/testsuite/ld-pe/aligncomm-1.c:5: warning: alignment of
'r' is greater than maximum object file alignment.  Using 8
/gnu/binutils/src/ld/testsuite/ld-pe/aligncomm-1.c:5: warning: alignment of
'r' is greater than maximum object file alignment.  Using 8

... so they show as UNRESOLVED.  We could XFAIL, skip, or add the required
compiler flags as desired whenever the new cegcc target names get added to
config (not sure what's happening on that front), or potentially the compiler
could be changed to take advantage of the new support.



  Because of this minor potential hiccup, I'll wait 24 hours for comments
before committing the final version of the patch (unchanged since previous
posting at http://sourceware.org/ml/binutils/2009-05/msg00271.html).  (Also in
case anyone wants to say I should separate out the refactoring of the ld-pe
testcases into a separate patch, which I would have done in the first place if
I'd known in advance I was going to end up doing it.... but it's been pretty
thoroughly tested, so I reckon it'll be ok.)


bfd/ChangeLog:

	* cofflink.c (process_embedded_commands):  Ignore "-aligncomm".

gas/ChangeLog:

	* NEWS:  Mention new feature.
	* config/obj-coff.c (obj_coff_common_parse):  New function.
	(obj_coff_comm):  Likewise.
	(coff_pseudo_table):  Override default ".comm" definition on PE.
	* doc/as.texinfo:  Document new feature.

gas/testsuite/ChangeLog

	* gas/pe/:  New directory for PE format-specific tests.
	* gas/pe/aligncomm-a.d:  New test pattern file.
	* gas/pe/aligncomm-a.s:  New test source file.
	* gas/pe/aligncomm-b.d:  New test pattern file.
	* gas/pe/aligncomm-b.s:  New test source file.
	* gas/pe/aligncomm-c.d:  New test pattern file.
	* gas/pe/aligncomm-c.s:  New test source file.
	* gas/pe/aligncomm-d.d:  New test pattern file.
	* gas/pe/aligncomm-d.s:  New test source file.
	* gas/pe/pe.exp:  New test control script.
	* lib/gas-defs.exp (is_pecoff_format):  New function.

ld/ChangeLog:

	* NEWS:  Mention new feature.
	* deffile.h (def_file_aligncomm):  Add new struct definition.
	(def_file):  Add new def_file_aligncomm member.
	* deffilep.y (%token):  Add new ALIGNCOMM token.
	(command):  Add production rule for ALIGNCOMM.
	(def_file_free):  Free any chained def_file_aligncomm structs.
	(diropts[]):  Add entry for '-aligncomm' .drectve command.
	(def_aligncomm):  New grammar function.
	* ld.texinfo:  Document new feature.
	* pe-dll.c (process_def_file):  Rename from this ...
	(process_def_file_and_drectve):  ... to this, updating all callers,
	and process any aligncomms chained to the def file after scanning
	all .drectve sections.
	(generate_edata):  Updated to match.
	(pe_dll_build_sections):  Likewise.

ld/testsuite/ChangeLog:

	* ld-pe/aligncomm-1.c:  New test source file.
	* ld-pe/aligncomm-2.c:  Likewise.
	* ld-pe/aligncomm-3.c:  Likewise.
	* ld-pe/aligncomm-4.c:  Likewise.
	* ld-pe/aligncomm.d:  New test pattern file.

	* ld-pe/direct.exp:  Deleted, and content moved into ...
	* ld-pe/pe-run.exp:  ... New common file for all PE run tests.

	* ld-pe/vers-script.exp:  Deleted, and content merged into ...
	* ld-pe/pe-compile.exp:  ... New common file for PE tests needing
	a compiler, adding aligned common tests.

	* ld-pe/pe.exp:  Update header comment.

    cheers,
      DaveK

-- 
[*] - a29k-unknown-coff, alpha-freebsd, alpha-linuxecoff,
alpha-unknown-linux, alpha-unknown-linuxecoff, arm-epoc-pe, arm-unknown-coff,
arm-unknown-linux, arm-vxworks, arm-wince-pe, h8300-unknown-rtems,
h8500-unknown-rtems, hppa-unknown-linux, hppa64-unknown-linux,
i370-unknown-linux, i386-coff, i386-msdos, i386-pc-netbsdpe, i386-pc-pe,
i586-linux, i586-pc-interix, i586-pc-msdosdjgpp, i586-unknown-beospe,
i586-unknown-coff, i686-pc-cygwin, i686-pc-linux-gnu, i686-pc-mingw32,
i960-intel-nindy, i960-unknown-coff, ia64-unknown-linux, m68k-coff,
m68k-unknown-coff, m68k-unknown-linux, m68k-unknown-netbsd, m88k-unknown-coff,
mcore-unknown-pe, mips-dec-bsd, mips-unknown-ecoff, mips-unknown-linux,
mips-unknown-pe, ns32k-unknown-netbsd, or32-unknown-coff,
powerpc-unknown-aix5, powerpc-unknown-linux, powerpc64-unknown-linux,
powerpcle-unknown-pe, ppc-eabi, s390-unknown-linux, s390x-unknown-linux,
sh-coff, sh-unknown-linux, sh-unknown-pe, sh-unknown-rtems,
sparc-unknown-coff, sparc-unknown-linux, sparc64-unknown-linux, thumb-epoc-pe,
tic30-unknown-coff, tic54x-unknown-coff, tic80-unknown-coff,
vax-unknown-netbsd, vax-unknown-vms, vms-vax, w65-unknown-coff,
x86_64-pc-freebsd, x86_64-pc-linux-gnu, x86_64-pc-mingw32,
x86_64-unknown-linux, z8k-coff, z8k-unknown-coff.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]