[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 5/7] user-i386.ld: Linkerskript .so-tauglich machen
! user-i386.ld: Wenn man __ctor/dtor_start/end__ innerhalb der Input
Section Description anlegt statt außenrum, kommt ld nicht auf die
Idee, irgendwelche Orphaned Sections dazwischenzupacken, die als
Konstruktoren interpretiert nicht so richtig viel Sinn ergeben.
+ user-i386.ld: .dynbss explizit hinzugefügt (das hatte sich ohne den
Fix zwischen die Konstruktoren gemogelt)
+ user-i386.ld: tmslang-Sektion immer anlegen, auch wenn das Programm
kein TMS benutzt. Die libc hat Funktionen, die die Sektion benutzen,
und sobald sie eine .so ist, werden alle Funktionen reingepackt und es
linkt nicht mehr ohne die Sektion.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/user-i386.ld | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/modules/user-i386.ld b/src/modules/user-i386.ld
index 4709d66..0e3885e 100644
--- a/src/modules/user-i386.ld
+++ b/src/modules/user-i386.ld
@@ -14,6 +14,12 @@ SECTIONS
{
*(.rodata)
}
+ tmslang : {
+ . = .;
+ __start_tmslang = .;
+ *(tmslang)
+ __stop_tmslang = .;
+ }
.data ALIGN(4096) : AT(ADDR(.data))
{
*(.data)
@@ -21,18 +27,19 @@ SECTIONS
.bss ALIGN(4096) : AT(ADDR(.bss))
{
*(.bss)
+ *(.dynbss)
}
- __ctor_start__ = .;
.ctors : AT(ADDR(.ctors)) {
+ __ctor_start__ = .;
*(.ctors)
+ __ctor_end__ = .;
}
- __ctor_end__ = .;
- __dtor_start__ = .;
.dtors : {
+ __dtor_start__ = .;
*(.dtors)
+ __dtor_end__ = .;
}
- __dtor_end__ = .;
}
--
2.1.4