summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2010-04-26 21:29:01 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2010-04-26 21:29:01 +0000
commitdab3a16bb47d78351ffe686e2d291e5f67a19c34 (patch)
tree56b04a968feff705bf66fdeedbc0525560cb4fe5
parent5776b98b621ced4e32c210aeecde22695c97f033 (diff)
Work around the fact that our .comm directive is somewhat non-standard.
-rw-r--r--gnu/gcc/gcc/config/pa/openbsd.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/gnu/gcc/gcc/config/pa/openbsd.h b/gnu/gcc/gcc/config/pa/openbsd.h
index 6957fc7486b..b7c1f44977c 100644
--- a/gnu/gcc/gcc/config/pa/openbsd.h
+++ b/gnu/gcc/gcc/config/pa/openbsd.h
@@ -120,6 +120,30 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_GAS
#define TARGET_GAS 1
+/* XXX OpenBSD/hppa has a non-standard .comm */
+
+#undef ASM_OUTPUT_ALIGNED_COMMON
+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
+ do \
+ { \
+ switch_to_section (bss_section); \
+ assemble_name((FILE), (NAME)); \
+ fprintf ((FILE), "\t.comm %d\n", \
+ MAX ((SIZE), ((ALIGN) / BITS_PER_UNIT))); \
+ } \
+ while (0)
+
+#undef ASM_OUTPUT_ALIGNED_LOCAL
+#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
+ do \
+ { \
+ switch_to_section (bss_section); \
+ fprintf((FILE), "\t.align %d\n", ((ALIGN) / BITS_PER_UNIT)); \
+ assemble_name((FILE), (NAME)); \
+ fprintf ((FILE), "\t.block %d\n", (SIZE)); \
+ } \
+ while (0)
+
#undef TARGET_SCHED_DEFAULT
#define TARGET_SCHED_DEFAULT PROCESSOR_700