summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libgloss/mips/array.ld7
-rw-r--r--libgloss/mips/cfe.ld8
-rw-r--r--libgloss/mips/ddb-kseg0.ld7
-rw-r--r--libgloss/mips/ddb.ld7
-rw-r--r--libgloss/mips/dve.ld8
-rw-r--r--libgloss/mips/idt.ld8
-rw-r--r--libgloss/mips/idt32.ld7
-rw-r--r--libgloss/mips/idt64.ld7
-rw-r--r--libgloss/mips/jmr3904app.ld7
-rw-r--r--libgloss/mips/lsi.ld7
-rw-r--r--libgloss/mips/mti32.ld7
-rw-r--r--libgloss/mips/mti64.ld8
-rw-r--r--libgloss/mips/mti64_64.ld8
-rw-r--r--libgloss/mips/mti64_n32.ld8
-rw-r--r--libgloss/mips/nullmon.ld8
-rw-r--r--libgloss/mips/pmon.ld8
-rw-r--r--libgloss/mips/sde32.ld8
-rw-r--r--libgloss/mips/sde64.ld8
18 files changed, 118 insertions, 18 deletions
diff --git a/libgloss/mips/array.ld b/libgloss/mips/array.ld
index fc4cc8fc2..2bc49c71b 100644
--- a/libgloss/mips/array.ld
+++ b/libgloss/mips/array.ld
@@ -100,7 +100,12 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/cfe.ld b/libgloss/mips/cfe.ld
index 58e8014d7..78fb8533f 100644
--- a/libgloss/mips/cfe.ld
+++ b/libgloss/mips/cfe.ld
@@ -55,7 +55,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/ddb-kseg0.ld b/libgloss/mips/ddb-kseg0.ld
index db3759ea6..74bc1b09c 100644
--- a/libgloss/mips/ddb-kseg0.ld
+++ b/libgloss/mips/ddb-kseg0.ld
@@ -49,7 +49,12 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/ddb.ld b/libgloss/mips/ddb.ld
index 028078353..8fcafd361 100644
--- a/libgloss/mips/ddb.ld
+++ b/libgloss/mips/ddb.ld
@@ -49,7 +49,12 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/dve.ld b/libgloss/mips/dve.ld
index 073d1e9ca..adce60f82 100644
--- a/libgloss/mips/dve.ld
+++ b/libgloss/mips/dve.ld
@@ -49,7 +49,13 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/idt.ld b/libgloss/mips/idt.ld
index 05b39b78d..0d69af452 100644
--- a/libgloss/mips/idt.ld
+++ b/libgloss/mips/idt.ld
@@ -56,7 +56,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/idt32.ld b/libgloss/mips/idt32.ld
index 95555291e..175a98b61 100644
--- a/libgloss/mips/idt32.ld
+++ b/libgloss/mips/idt32.ld
@@ -58,7 +58,12 @@ SECTIONS
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/idt64.ld b/libgloss/mips/idt64.ld
index 4a958202f..bd217e535 100644
--- a/libgloss/mips/idt64.ld
+++ b/libgloss/mips/idt64.ld
@@ -59,7 +59,12 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/jmr3904app.ld b/libgloss/mips/jmr3904app.ld
index 3056a36bf..d5b310918 100644
--- a/libgloss/mips/jmr3904app.ld
+++ b/libgloss/mips/jmr3904app.ld
@@ -48,7 +48,12 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/lsi.ld b/libgloss/mips/lsi.ld
index 839382527..ca64ab927 100644
--- a/libgloss/mips/lsi.ld
+++ b/libgloss/mips/lsi.ld
@@ -48,7 +48,12 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/mti32.ld b/libgloss/mips/mti32.ld
index 2739c620f..41592d12a 100644
--- a/libgloss/mips/mti32.ld
+++ b/libgloss/mips/mti32.ld
@@ -57,7 +57,12 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame : {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/mti64.ld b/libgloss/mips/mti64.ld
index 15975ad89..8a47c4760 100644
--- a/libgloss/mips/mti64.ld
+++ b/libgloss/mips/mti64.ld
@@ -59,7 +59,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/mti64_64.ld b/libgloss/mips/mti64_64.ld
index 7a2074f1a..81704f065 100644
--- a/libgloss/mips/mti64_64.ld
+++ b/libgloss/mips/mti64_64.ld
@@ -62,7 +62,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/mti64_n32.ld b/libgloss/mips/mti64_n32.ld
index 4003845e0..6c5380934 100644
--- a/libgloss/mips/mti64_n32.ld
+++ b/libgloss/mips/mti64_n32.ld
@@ -62,7 +62,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/nullmon.ld b/libgloss/mips/nullmon.ld
index c90aed308..14b0d0e59 100644
--- a/libgloss/mips/nullmon.ld
+++ b/libgloss/mips/nullmon.ld
@@ -50,7 +50,13 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/pmon.ld b/libgloss/mips/pmon.ld
index 81fd8ee31..244c1f65b 100644
--- a/libgloss/mips/pmon.ld
+++ b/libgloss/mips/pmon.ld
@@ -50,7 +50,13 @@ SECTIONS
}
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/sde32.ld b/libgloss/mips/sde32.ld
index 715639ef5..657f5f31b 100644
--- a/libgloss/mips/sde32.ld
+++ b/libgloss/mips/sde32.ld
@@ -57,7 +57,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :
diff --git a/libgloss/mips/sde64.ld b/libgloss/mips/sde64.ld
index 1bd11f6f8..e3a0f298b 100644
--- a/libgloss/mips/sde64.ld
+++ b/libgloss/mips/sde64.ld
@@ -59,7 +59,13 @@ SECTIONS
_etext = .;
.eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : { KEEP (*(.eh_frame)) }
+ .eh_frame :
+ {
+ /* The .eh_frame section from the crtend file contains the
+ end of eh_frame marker and it must be last. */
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .eh_frame))
+ KEEP (*(.eh_frame))
+ }
.gcc_except_table : { *(.gcc_except_table) }
.jcr : { KEEP (*(.jcr)) }
.ctors :