aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-08-17 07:32:34 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-08-17 07:32:34 -0400
commit2cebaa84bd0b4d3d379dafa5509c4fe8e60cb09b (patch)
tree2a83084704dd9bb2c4e6745a7457018d473236b3
parentb8c59d6fe42626980c5020f7bc26ae53d0f1fe15 (diff)
downloadgcc-2cebaa84bd0b4d3d379dafa5509c4fe8e60cb09b.zip
gcc-2cebaa84bd0b4d3d379dafa5509c4fe8e60cb09b.tar.gz
gcc-2cebaa84bd0b4d3d379dafa5509c4fe8e60cb09b.tar.bz2
(LINK_SPEC): Add %s for default.ld.
(LINK_LIBGCC_SPECIAL): No longer needed. (ASM_FILE_STARY): Add shared data section. (SHARED_SECTION_ASM_OP): New macro. (OVERRIDE_OPTIONS): If -fshared-data, add -fno-common. From-SVN: r1867
-rw-r--r--gcc/config/a29k/unix.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/gcc/config/a29k/unix.h b/gcc/config/a29k/unix.h
index 02bd18c..7fd911b 100644
--- a/gcc/config/a29k/unix.h
+++ b/gcc/config/a29k/unix.h
@@ -37,10 +37,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define CPP_SPEC "%{!m29000:-Dam29050 -D__am29050__}"
#undef LINK_SPEC
-#define LINK_SPEC "-c /usr/lib/default.ld"
-
-/* We can't say "-lgcc" due to a bug in gld for now. */
-#define LINK_LIBGCC_SPECIAL
+#define LINK_SPEC "-c default.ld%s"
/* For some systems, it is best if double-word objects are aligned on a
doubleword boundary. We want to maintain compatibility with MetaWare in
@@ -49,6 +46,29 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef BIGGEST_ALIGNMENT
#define BIGGEST_ALIGNMENT 64
+/* Add shared data as a kludge for now. */
+
+#undef ASM_FILE_START
+#define ASM_FILE_START(FILE) \
+{ char *p, *after_dir = main_input_filename; \
+ if (TARGET_29050) \
+ fprintf (FILE, "\t.cputype 29050\n"); \
+ for (p = main_input_filename; *p; p++) \
+ if (*p == '/') \
+ after_dir = p + 1; \
+ fprintf (FILE, "\t.file \"%s\"\n", after_dir); \
+ if (flag_shared_data) \
+ fprintf (FILE, "\t.sect .shdata,data\n"); \
+ fprintf (FILE, "\t.sect .lit,lit\n"); }
+
+/* Output before shared data. */
+
+#define SHARED_SECTION_ASM_OP "\t.use .shdata"
+
+/* If we want shared data, we have to turn off commons. */
+
+#define OVERRIDE_OPTIONS if (flag_shared_data) flag_no_common = 1;
+
#if 0 /* This would be needed except that the 29k doesn't have strict
alignment requirements. */