".rodata.str1.4" linux linker error
Posted: Mon Mar 17, 2008 8:31 am
Hello all, I have started to try to get my kernel compiling on Linux ( previously working on windows ), and all goes well untill i get the following linker error: this is my linker script: and I do not know what the .rodata.str1 section even is? does anyone know what I could add to my linker script to correct this error?
Thank you.
Code: Select all
ld: section .kernel [0000000000100400 -> 0000000000105e5b] overlaps section .rodata.str1.1 [0000000000100400 -> 0000000000100af1]
ld: section .rodata.str1.4 [0000000000100af4 -> 0000000000101497] overlaps section .kernel [0000000000100400 -> 0000000000105e5b]
Code: Select all
OUTPUT_FORMAT("binary")
ENTRY(start)
phys = 0x00100000;
virt = 0xC0000400;
SECTIONS
{
.setup phys : AT( phys )
{
setup = .; _setup = .; __setup = .;
*(.setup)
setupend = .;
. = ALIGN(1024);
}
.kernel virt : AT( ADDR(.setup) + SIZEOF(.setup) )
{
code = .; _code = .; __code = .;
*(.text)
codend = .;
. = ALIGN(0);
}
.data : AT( ADDR(.setup) + SIZEOF(.setup) + SIZEOF(.kernel) )
{
data = .; _data = .; __data = .;
*(.data)
dataend = .;
. = ALIGN(0);
}
.bss : AT( ADDR(.setup) + SIZEOF(.setup) + SIZEOF(.kernel) + SIZEOF(.data) )
{
bss = .; _bss = .; __bss = .;
*(.bss)
bssend = .;
. = ALIGN(0);
}
setuplength = SIZEOF(.setup);
bsslength = (bssend - bss) / 4;
kend = .; _kend = .; __kend = .;
}
Thank you.