diff options
author | Dave Korn <dave.korn.cygwin@gmail.com> | 2009-05-28 10:48:35 +0000 |
---|---|---|
committer | Dave Korn <davek@gcc.gnu.org> | 2009-05-28 10:48:35 +0000 |
commit | 233215fe7cedf3cfa908f11c9543e1f7f10e3283 (patch) | |
tree | 2b465942c117a52260a5dba92c2e0be1abe405aa /gcc/configure.ac | |
parent | b10ca522327a88f62bdbf6b0ee587498d2bab8a1 (diff) | |
download | gcc-233215fe7cedf3cfa908f11c9543e1f7f10e3283.zip gcc-233215fe7cedf3cfa908f11c9543e1f7f10e3283.tar.gz gcc-233215fe7cedf3cfa908f11c9543e1f7f10e3283.tar.bz2 |
re PR target/37216 ([cygming] Invalid alignment for SSE store to .comm data generated with -O3)
gcc/ChangeLog:
2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
PR target/37216
* configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
macro definition for support of three-operand format aligned
.comm directive in assembler on cygwin/pe/mingw target OS.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
aligned form of .comm directive if -mpe-aligned-commons is in effect.
* config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
* doc/invoke.texi (-mpe-aligned-commons): Document new target option.
* doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
gcc/testsuite/ChangeLog:
2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
Uros Bizjak <ubizjak@gmail.com>
Danny Smith <dansmister@gmail.com>
PR target/37216
* lib/target-supports.exp (check_effective_target_pe_aligned_commons):
New function.
* gcc.target/i386/pr37216.c: New test source file.
* gcc.dg/compat/struct-layout-1_generate.c (dg_options[]): No longer
use -fno-common for testing Cygwin and MinGW targets.
Co-Authored-By: Danny Smith <dansmister@gmail.com>
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r147950
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r-- | gcc/configure.ac | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac index 80f9422..b5a1f7e 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2954,6 +2954,15 @@ changequote(,)dnl changequote([,])dnl case $target_os in cygwin* | pe | mingw32*) + # Recent binutils allows the three-operand form of ".comm" on PE. This + # definition is used unconditionally to initialise the default state of + # the target option variable that governs usage of the feature. + gcc_GAS_CHECK_FEATURE([.comm with alignment], gcc_cv_as_comm_has_align, + [2,19,52],,[.comm foo,1,32]) + AC_DEFINE_UNQUOTED(HAVE_GAS_ALIGNED_COMM, + [`if test $gcc_cv_as_comm_has_align = yes; then echo 1; else echo 0; fi`], + [Define if your assembler supports specifying the alignment + of objects allocated using the GAS .comm command.]) # Used for DWARF 2 in PE gcc_GAS_CHECK_FEATURE([.secrel32 relocs], gcc_cv_as_ix86_pe_secrel32, |