aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1995-05-09 19:42:41 +0000
committerJason Merrill <merrill@gnu.org>1995-05-09 19:42:41 +0000
commit788d9012add31d55efb347132525f5889aeebc86 (patch)
treec4b0a3d5d970a0daea24f203e24cbe3615a3ce7a /gcc
parent25f5b13e9d042a68515d9052f0ee59796ff9b8e7 (diff)
downloadgcc-788d9012add31d55efb347132525f5889aeebc86.zip
gcc-788d9012add31d55efb347132525f5889aeebc86.tar.gz
gcc-788d9012add31d55efb347132525f5889aeebc86.tar.bz2
*** empty log message ***
From-SVN: r9599
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/powerpc.h19
-rw-r--r--gcc/config/rs6000/rs6000.h6
2 files changed, 22 insertions, 3 deletions
diff --git a/gcc/config/rs6000/powerpc.h b/gcc/config/rs6000/powerpc.h
index 37b56e6..02f8196 100644
--- a/gcc/config/rs6000/powerpc.h
+++ b/gcc/config/rs6000/powerpc.h
@@ -64,3 +64,22 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef PROCESSOR_DEFAULT
#define PROCESSOR_DEFAULT PROCESSOR_PPC601
+
+/* These are not necessary when we pass -u to the assembler, and undefining
+ them saves a great deal of space in object files. */
+
+#undef ASM_OUTPUT_EXTERNAL
+#undef ASM_OUTPUT_EXTERNAL_LIBCALL
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
+ if ((TREE_CODE (DECL) == VAR_DECL \
+ || TREE_CODE (DECL) == FUNCTION_DECL) \
+ && (NAME)[0] != '*' \
+ && (NAME)[strlen (NAME) - 1] != ']') \
+ { \
+ char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
+ strcpy (_name, XSTR (_symref, 0)); \
+ strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
+ XSTR (_symref, 0) = _name; \
+ } \
+}
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index acd5308..449bf53 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -88,12 +88,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
export list with the -Wl,-bE option. */
#define LINK_SPEC "-T512 -H512 %{!r:-btextro} -bhalt:4 -bnodelcsect\
- %{static:-bnso -bI:/lib/syscalls.exp} %{g*:-bexport:/usr/lib/libg.exp}\
- %{shared:-bM:SRE}"
+ %{static:-bnso -bI:/lib/syscalls.exp} \
+ %{!shared:%{g*:-bexport:/usr/lib/libg.exp}} %{shared:-bM:SRE}"
/* Profiled library versions are used by linking with special directories. */
#define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\
- %{p:-L/lib/profiled -L/usr/lib/profiled} %{g*:-lg} -lc"
+ %{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}} -lc"
/* gcc must do the search itself to find libgcc.a, not use -l. */
#define LIBGCC_SPEC "%{!shared:libgcc.a%s}"