diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-29 22:04:25 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-29 22:04:25 +0000 |
commit | 7496cacac6658cd368d8d00e9d40bcb2f268075b (patch) | |
tree | d3c83453be74713802f84fa489aca55449cdf21e /gcc/config/sparc/sol2.h | |
parent | 1f26c00581f4513bc8f0f3f41ec9928e32ad1b8f (diff) | |
download | gcc-7496cacac6658cd368d8d00e9d40bcb2f268075b.tar.gz |
PR target/29987
* config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142286 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sparc/sol2.h')
-rw-r--r-- | gcc/config/sparc/sol2.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index a31a2e33ad8..139f5b39dff 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -176,3 +176,21 @@ along with GCC; see the file COPYING3. If not see fprintf (FILE, "\n\tnop\n"); \ } \ while (0) + +/* Solaris 'as' has a bug: a .common directive in .tbss section + behaves as .tls_common rather than normal non-TLS .common. */ +#undef ASM_OUTPUT_ALIGNED_COMMON +#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ + do \ + { \ + if (TARGET_SUN_TLS \ + && in_section \ + && ((in_section->common.flags & (SECTION_TLS | SECTION_BSS)) \ + == (SECTION_TLS | SECTION_BSS))) \ + switch_to_section (bss_section); \ + fprintf ((FILE), "%s", COMMON_ASM_OP); \ + assemble_name ((FILE), (NAME)); \ + fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \ + (SIZE), (ALIGN) / BITS_PER_UNIT); \ + } \ + while (0) |