Skip to content
Snippets Groups Projects
Commit 19bf83a9 authored by Iain Sandoe's avatar Iain Sandoe
Browse files

Darwin: Update rules for handling alignment of globals.


The current rule was too strict and has not been required since Darwin11.

This relaxes the constraint to allow up to 2^28 alignment for non-common
entities.  Common is still restricted to a maximum aligment of 2^15.

When the host is an older version of Darwin ( earlier that 11 ) then the
existing constraint is still applied.  Note that this is a host constraint
not a target one (so that a compilation on 10.7 targeting 10.6 is allowed
to use a greater alignment than the tools on 10.6 support).  This matches
the behaviour of clang.

Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>

gcc/ChangeLog:

	* config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable
	values for the host.
	* config/darwin.c (darwin_emit_common): Error for alignment
	values > 32768.
	* config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the
	configured L2_MAX_OFILE_ALIGNMENT.

gcc/testsuite/ChangeLog:

	* gcc.dg/darwin-aligned-globals.c: New test.
	* gcc.dg/darwin-comm-1.c: New test.
	* gcc.dg/attr-aligned.c: Amend for new alignment values on
	Darwin.
	* gcc.target/i386/pr89261.c: Likewise.
parent 8381075f
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment