From 22671ef7cf7ba91f305c6afa8181d321fb88e0b3 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 13 Nov 2005 21:08:15 +0000 Subject: [PATCH] Apparently gcc 4 aligns the input .ctors sections on 4 byte boundaries, which could cause the __ctor_list pointer to be off. PS: We can get rid of most of the ld scripts. ATM only kernel.ld, boot_loader.ld, and add-on.ld are still in use. The latter one probably unnecessarily. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14905 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/ldscripts/x86/add-on.ld | 1 + src/system/ldscripts/x86/boot_loader.ld | 1 + src/system/ldscripts/x86/kernel.ld | 1 + 3 files changed, 3 insertions(+) diff --git a/src/system/ldscripts/x86/add-on.ld b/src/system/ldscripts/x86/add-on.ld index 6e85ced1b8..d3e9d6d392 100644 --- a/src/system/ldscripts/x86/add-on.ld +++ b/src/system/ldscripts/x86/add-on.ld @@ -44,6 +44,7 @@ SECTIONS __data_start = .; .data : { *(.data .gnu.linkonce.d.*) } + . = ALIGN(0x4); __ctor_list = .; .ctors : { *(.ctors) } __ctor_end = .; diff --git a/src/system/ldscripts/x86/boot_loader.ld b/src/system/ldscripts/x86/boot_loader.ld index 92d74a4a67..b108d1634a 100644 --- a/src/system/ldscripts/x86/boot_loader.ld +++ b/src/system/ldscripts/x86/boot_loader.ld @@ -9,6 +9,7 @@ SECTIONS /* text/read-only data */ .text : { *(.text .gnu.linkonce.t.*) } + . = ALIGN(0x4); __ctor_list = .; .ctors : { *(.ctors) } __ctor_end = .; diff --git a/src/system/ldscripts/x86/kernel.ld b/src/system/ldscripts/x86/kernel.ld index 35b934189a..7324b69ef8 100644 --- a/src/system/ldscripts/x86/kernel.ld +++ b/src/system/ldscripts/x86/kernel.ld @@ -44,6 +44,7 @@ SECTIONS __data_start = .; .data : { *(.data .gnu.linkonce.d.*) } + . = ALIGN(0x4); __ctor_list = .; .ctors : { *(.ctors) } __ctor_end = .;