diff options
author | Aaron W. LaFramboise <aaronavay62@aaronwl.com> | 2004-11-05 22:28:10 -0600 |
---|---|---|
committer | Aaron W. LaFramboise <aaronwl@gcc.gnu.org> | 2004-11-05 22:28:10 -0600 |
commit | c37780f5720b6ae1a9368823b1c72e3d14ac39bf (patch) | |
tree | 29332f29521468aae140cabe22dddc7a1eda7d9c /gcc | |
parent | 882f2b8ea931e41639c5e6f1da921c4f12b9da9d (diff) | |
download | gcc-c37780f5720b6ae1a9368823b1c72e3d14ac39bf.zip gcc-c37780f5720b6ae1a9368823b1c72e3d14ac39bf.tar.gz gcc-c37780f5720b6ae1a9368823b1c72e3d14ac39bf.tar.bz2 |
re PR target/18106 (Weak symbols are unimplemented on Windows)
PR target/18106
* config/i386/cygming.h
[HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
* lib/target-supports.exp (check_weak_available): Support
Windows.
From-SVN: r90164
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/cygming.h | 12 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 8 |
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb14728..cb2ad19 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-06 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + PR target/18106 + * config/i386/cygming.h + [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined. + 2004-11-06 Kazu Hirata <kazu@cs.umass.edu> * config/sh/sh4a.md: Fix copyright. diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h index be77aba..3949f4c 100644 --- a/gcc/config/i386/cygming.h +++ b/gcc/config/i386/cygming.h @@ -396,6 +396,18 @@ extern int i386_pe_dllimport_name_p (const char *); ASM_OUTPUT_DEF (STREAM, alias, IDENTIFIER_POINTER (TARGET)); \ } while (0) +/* GNU as supports weak symbols on PECOFF. */ +#ifdef HAVE_GAS_WEAK +#define ASM_WEAKEN_LABEL(FILE, NAME) \ + do \ + { \ + fputs ("\t.weak\t", (FILE)); \ + assemble_name ((FILE), (NAME)); \ + fputc ('\n', (FILE)); \ + } \ + while (0) +#endif /* HAVE_GAS_WEAK */ + /* Decide whether it is safe to use a local alias for a virtual function when constructing thunks. */ #undef TARGET_USE_LOCAL_THUNK_ALIAS_P diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 826c3c0..66fb099 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2004-11-06 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + PR target/18106 + * lib/target-supports.exp (check_weak_available): Support + Windows. + 2004-11-05 Danny Smith <dannysmith@users.sourceforge.net> * gcc.dg/compat/struct-layout-1_generate.c (main): Generate a diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index b968de2..d04d7d3 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1999, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -48,6 +48,12 @@ proc check_weak_available { } { return 1 } + # Windows targets Cygwin and MingW32 support it + + if { [regexp ".*mingw32|.*cygwin" $target_triplet] } { + return 1 + } + # ELF and ECOFF support it. a.out does with gas/gld but may also with # other linkers, so we should try it |