[PATCH] sparc64: update linkcmds with missing sections for TLS

Gedare Bloom gedare at rtems.org
Mon Apr 6 17:16:43 UTC 2020


Closes #3936.
---
 bsps/sparc64/shared/start/linkcmds | 74 +++++++++---------------------
 1 file changed, 22 insertions(+), 52 deletions(-)

diff --git a/bsps/sparc64/shared/start/linkcmds b/bsps/sparc64/shared/start/linkcmds
index 86a3bdcde1..aaf48b5d83 100644
--- a/bsps/sparc64/shared/start/linkcmds
+++ b/bsps/sparc64/shared/start/linkcmds
@@ -36,56 +36,6 @@ SECTIONS
   .gnu.version   : { *(.gnu.version)	}
   .gnu.version_d   : { *(.gnu.version_d)	}
   .gnu.version_r   : { *(.gnu.version_r)	}
-  .rel.init      : { *(.rel.init)		}
-  .rela.init     : { *(.rela.init)	}
-  .rel.text      :
-    {
-      *(.rel.text)
-      *(.rel.text.*)
-      *(.rel.gnu.linkonce.t*)
-    }
-  .rela.text     :
-    {
-      *(.rela.text)
-      *(.rela.text.*)
-      *(.rela.gnu.linkonce.t*)
-    }
-  .rel.fini      : { *(.rel.fini)		}
-  .rela.fini     : { *(.rela.fini)	}
-  .rel.rodata    :
-    {
-      *(.rel.rodata)
-      *(.rel.rodata.*)
-      *(.rel.gnu.linkonce.r*)
-    }
-  .rela.rodata   :
-    {
-      *(.rela.rodata)
-      *(.rela.rodata.*)
-      *(.rela.gnu.linkonce.r*)
-    }
-  .rel.data      :
-    {
-      *(.rel.data)
-      *(.rel.data.*)
-      *(.rel.gnu.linkonce.d*)
-    }
-  .rela.data     :
-    {
-      *(.rela.data)
-      *(.rela.data.*)
-      *(.rela.gnu.linkonce.d*)
-    }
-  .rel.ctors     : { *(.rel.ctors)	}
-  .rela.ctors    : { *(.rela.ctors)	}
-  .rel.dtors     : { *(.rel.dtors)	}
-  .rela.dtors    : { *(.rela.dtors)	}
-  .rel.got       : { *(.rel.got)		}
-  .rela.got      : { *(.rela.got)		}
-  .rel.bss       : { *(.rel.bss)		}
-  .rela.bss      : { *(.rela.bss)		}
-  .rel.plt       : { *(.rel.plt)		}
-  .rela.plt      : { *(.rela.plt)		}
   /* Internal text space or external memory */
   .text 0x4000 : AT (0x4000)
   {
@@ -168,8 +118,25 @@ SECTIONS
   _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
   _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
   _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
-  
-  .data	  : AT (ADDR (.tbss) + SIZEOF (.tbss))
+ 
+  .rela.dyn : AT (ADDR (.tbss) + SIZEOF (.tbss))
+  {
+    *(.rela.init)
+    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+    *(.rela.fini)
+    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+    *(.rela.ctors)
+    *(.rela.dtors)
+    *(.rela.got)
+    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+    *(.rela.rtemsroset*)
+    *(.rela.rtemsrwset*)
+  } > ram
+
+  .data	  : AT (ADDR (.rela.dyn) + SIZEOF (.rela.dyn))
   {
      PROVIDE (__data_start = .) ;
     data_start = . ;
@@ -193,6 +160,9 @@ SECTIONS
    . = ALIGN (16);
   .dynamic	  : { *(.dynamic) 	} >ram
   .jcr        : { *(.jcr)     } > ram
+  .got		  : { *(.got) 		} >ram
+  .plt   	  : { *(.plt) 		} >ram
+  .dynrel	  : { *(.dynrel)	} >ram
   .shbss      : { *(.shbss)  } > ram
   .bss        :
   {
-- 
2.17.1



More information about the devel mailing list