mmix.h (ENCODE_SECTION_INFO): Pass on new second parameter to mmix_encode_section_info.
authorHans-Peter Nilsson <hp@bitrange.com>
Tue, 5 Mar 2002 02:16:39 +0000 (02:16 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Tue, 5 Mar 2002 02:16:39 +0000 (02:16 +0000)
* config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
parameter to mmix_encode_section_info.
(LINK_SPEC): Don't defsym __.MMIX.start..text if linking
relocatably.  Always produce ELF, not mmo if linking relocatably.
* config/mmix/mmix.c (mmix_encode_section_info): If new parameter
first is non-zero, don't add symbol prefix.
* config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
prototype accordingly.

From-SVN: r50298

gcc/ChangeLog
gcc/config/mmix/mmix-protos.h
gcc/config/mmix/mmix.c
gcc/config/mmix/mmix.h

index c6fad1ffa0ec0a774d85e1c26ba7108d123b6c53..7db049bfa532c5b6631e9ced9a65c5b3ab18296e 100644 (file)
@@ -1,3 +1,14 @@
+2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
+       parameter to mmix_encode_section_info.
+       (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
+       relocatably.  Always produce ELF, not mmo if linking relocatably.
+       * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
+       first is non-zero, don't add symbol prefix.
+       * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
+       prototype accordingly.
+
 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
 
        * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
index 68ff9e7130e63226cc6d3cbfee8e7c1793ae643b..b054f668d149e3a7e4c962f917a709327a645b23 100644 (file)
@@ -75,7 +75,7 @@ extern int mmix_local_alignment PARAMS ((tree, int));
 extern void mmix_setup_incoming_varargs
   PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int));
 extern void mmix_select_section PARAMS ((tree, int, int));
-extern void mmix_encode_section_info PARAMS ((tree));
+extern void mmix_encode_section_info PARAMS ((tree, int));
 extern void mmix_unique_section PARAMS ((tree, int));
 extern void mmix_asm_output_pool_prologue
   PARAMS ((FILE *, const char *, tree, int));
index b1f7d3f0b7b65bb126d18e6a5d889bcf2a3dd6d8..ac370508ac04821acdb62a4e945694b21198ad50 100644 (file)
@@ -1695,15 +1695,16 @@ mmix_select_section (decl, reloc, align)
 /* ENCODE_SECTION_INFO.  */
 
 void
-mmix_encode_section_info (decl)
+mmix_encode_section_info (decl, first)
      tree decl;
+     int first;
 {
   /* Test for an external declaration, and do nothing if it is one.  */
   if ((TREE_CODE (decl) == VAR_DECL
        && (DECL_EXTERNAL (decl) || TREE_PUBLIC (decl)))
       || (TREE_CODE (decl) == FUNCTION_DECL && TREE_PUBLIC (decl)))
     ;
-  else if (DECL_P (decl))
+  else if (first && DECL_P (decl))
     {
       /* For non-visible declarations, add a "@" prefix, which we skip
         when the label is output.  If the label does not have this
index e42274088b5484380b15b3def6c64950934fd926..7f41722af8ed79ed394009d241db026365001583 100644 (file)
@@ -119,13 +119,15 @@ struct machine_function
 
 /* Pass on -mset-program-start=N and -mset-data-start=M to the linker.
    Provide default program start 0x100 unless -mno-set-program-start.
-   Link to ELF if requested.  */
+   Don't do this if linking relocatably, with -r.  For a final link,
+   produce mmo, unless ELF is requested or when linking relocatably.  */
 #define LINK_SPEC \
  "%{mset-program-start=*:--defsym __.MMIX.start..text=%*}\
   %{mset-data-start=*:--defsym __.MMIX.start..data=%*}\
   %{!mset-program-start=*:\
-    %{!mno-set-program-start:--defsym __.MMIX.start..text=0x100}}\
-  %{!melf:-m mmo}%{melf:-m elf64mmix}"
+    %{!mno-set-program-start:\
+     %{!r:--defsym __.MMIX.start..text=0x100}}}\
+  %{!melf:%{!r:-m mmo}}%{melf|r:-m elf64mmix}"
 
 /* Put unused option values here.  */
 extern const char *mmix_cc1_ignored_option;
@@ -937,8 +939,8 @@ const_section ()                                            \
 #define SELECT_SECTION(DECL, RELOC, ALIGN) \
  mmix_select_section (DECL, RELOC, ALIGN)
 
-#define ENCODE_SECTION_INFO(DECL) \
- mmix_encode_section_info (DECL)
+#define ENCODE_SECTION_INFO(DECL, FIRST) \
+ mmix_encode_section_info (DECL, FIRST)
 
 #define STRIP_NAME_ENCODING(VAR, SYM_NAME) \
  (VAR) = mmix_strip_name_encoding (SYM_NAME)