diff options
author | davek <davek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-28 10:48:35 +0000 |
---|---|---|
committer | davek <davek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-28 10:48:35 +0000 |
commit | 7b897de384d14df350050bf6511f2183e7c3cb4d (patch) | |
tree | 2b465942c117a52260a5dba92c2e0be1abe405aa /gcc/configure | |
parent | 7ddf806898d979b74d3b7ff272195c137fb68af2 (diff) | |
download | gcc-7b897de384d14df350050bf6511f2183e7c3cb4d.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147950 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure')
-rwxr-xr-x | gcc/configure | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/configure b/gcc/configure index 4bab41d4a5e..8a4f2c91d78 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 |