explicit PHDRS to control number of Elf32_Phdr: no PT_GNU_STACK
l_lx_elf86.lds l_lx_exec86.lds l_lx_sep86.lds l_lx_sh86.lds committer: jreiser <jreiser> 1083997506 +0000
This commit is contained in:
@@ -31,6 +31,11 @@
|
|||||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
OUTPUT_ARCH(i386)
|
OUTPUT_ARCH(i386)
|
||||||
/*ENTRY(_start)*/
|
/*ENTRY(_start)*/
|
||||||
|
PHDRS /* force exactly 1 ELF32_Phdr: in particular, no PT_GNU_STACK */
|
||||||
|
{
|
||||||
|
phdr0 PT_LOAD FILEHDR PHDRS FLAGS(7);
|
||||||
|
}
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
/* 0x00401000: l_lx_exec86.asm assumes 1 page up from 64KB boundary */
|
/* 0x00401000: l_lx_exec86.asm assumes 1 page up from 64KB boundary */
|
||||||
@@ -41,6 +46,5 @@ SECTIONS
|
|||||||
*(.data)
|
*(.data)
|
||||||
*(.bss)
|
*(.bss)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
}
|
} : phdr0
|
||||||
/* save other Phdr for the overlay */
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,15 +31,20 @@
|
|||||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
OUTPUT_ARCH(i386)
|
OUTPUT_ARCH(i386)
|
||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
|
PHDRS /* force exactly 2 ELF32_Phdr: in particular, no PT_GNU_STACK */
|
||||||
|
{
|
||||||
|
phdr0 PT_LOAD FILEHDR PHDRS FLAGS(7);
|
||||||
|
phdr1 PT_LOAD;
|
||||||
|
}
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = 0x00400000 + SIZEOF_HEADERS;
|
. = 0x00400000 + SIZEOF_HEADERS;
|
||||||
.text : {
|
.text : {
|
||||||
*(.text)
|
*(.text)
|
||||||
*(.data)
|
*(.data)
|
||||||
}
|
} : phdr0
|
||||||
/* 0x08048000: customary Linux/x86 Elf .text start */
|
/* 0x08048000: customary Linux/x86 Elf .text start */
|
||||||
. = 0x08048000 + (0xfff & .);
|
. = 0x08048000 + (0xfff & .);
|
||||||
.data : {
|
.data : {
|
||||||
}
|
} : phdr1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,22 +31,21 @@
|
|||||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
OUTPUT_ARCH(i386)
|
OUTPUT_ARCH(i386)
|
||||||
/*ENTRY(_start)*/
|
/*ENTRY(_start)*/
|
||||||
|
PHDRS /* force exactly 1 ELF32_Phdr: in particular, no PT_GNU_STACK */
|
||||||
|
{
|
||||||
|
phdr0 PT_LOAD FILEHDR PHDRS FLAGS(7);
|
||||||
|
}
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
/* 0x00800000: avoid 0x00400000 for shell itself being compressed */
|
/* 0x00800000: avoid 0x00400000 for shell itself being compressed */
|
||||||
. = 0x00800000 + SIZEOF_HEADERS;
|
. = 0x00800000 + SIZEOF_HEADERS;
|
||||||
. = ALIGN(0x80);
|
. = ALIGN(0x80);
|
||||||
/*
|
|
||||||
.text : {
|
|
||||||
*(.text)
|
|
||||||
*(.data)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
.data : { /* put everything together in one Phdr */
|
.data : { /* put everything together in one Phdr */
|
||||||
*(.text)
|
*(.text)
|
||||||
*(.rodata)
|
*(.rodata)
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.bss)
|
*(.bss)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
}
|
} : phdr0
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user