aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure
diff options
context:
space:
mode:
authorDave Korn <dave.korn.cygwin@gmail.com>2009-05-28 10:48:35 +0000
committerDave Korn <davek@gcc.gnu.org>2009-05-28 10:48:35 +0000
commit233215fe7cedf3cfa908f11c9543e1f7f10e3283 (patch)
tree2b465942c117a52260a5dba92c2e0be1abe405aa /gcc/configure
parentb10ca522327a88f62bdbf6b0ee587498d2bab8a1 (diff)
downloadgcc-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')
-rwxr-xr-xgcc/configure38
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/configure b/gcc/configure
index 4bab41d..8a4f2c9 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -22631,6 +22631,44 @@ fi
i[34567]86-*-* | x86_64-*-*)
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.
+ echo "$as_me:$LINENO: checking assembler for .comm with alignment" >&5
+echo $ECHO_N "checking assembler for .comm with alignment... $ECHO_C" >&6
+if test "${gcc_cv_as_comm_has_align+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ gcc_cv_as_comm_has_align=no
+ if test $in_tree_gas = yes; then
+ if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 19 \) \* 1000 + 52`
+ then gcc_cv_as_comm_has_align=yes
+fi
+ elif test x$gcc_cv_as != x; then
+ echo '.comm foo,1,32' > conftest.s
+ if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }
+ then
+ gcc_cv_as_comm_has_align=yes
+ else
+ echo "configure: failed program was" >&5
+ cat conftest.s >&5
+ fi
+ rm -f conftest.o conftest.s
+ fi
+fi
+echo "$as_me:$LINENO: result: $gcc_cv_as_comm_has_align" >&5
+echo "${ECHO_T}$gcc_cv_as_comm_has_align" >&6
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_GAS_ALIGNED_COMM `if test $gcc_cv_as_comm_has_align = yes; then echo 1; else echo 0; fi`
+_ACEOF
+
# Used for DWARF 2 in PE
echo "$as_me:$LINENO: checking assembler for .secrel32 relocs" >&5
echo $ECHO_N "checking assembler for .secrel32 relocs... $ECHO_C" >&6