diff options
Diffstat (limited to 'lib/mlibc/sysdeps/linux/x86/crt-src')
-rw-r--r-- | lib/mlibc/sysdeps/linux/x86/crt-src/Scrt1.S | 29 | ||||
-rw-r--r-- | lib/mlibc/sysdeps/linux/x86/crt-src/crt1.S | 18 | ||||
-rw-r--r-- | lib/mlibc/sysdeps/linux/x86/crt-src/crti.S | 11 | ||||
-rw-r--r-- | lib/mlibc/sysdeps/linux/x86/crt-src/crtn.S | 9 |
4 files changed, 67 insertions, 0 deletions
diff --git a/lib/mlibc/sysdeps/linux/x86/crt-src/Scrt1.S b/lib/mlibc/sysdeps/linux/x86/crt-src/Scrt1.S new file mode 100644 index 0000000..a62b127 --- /dev/null +++ b/lib/mlibc/sysdeps/linux/x86/crt-src/Scrt1.S @@ -0,0 +1,29 @@ +.section .text + +.type __stack_chk_fail_local, %function +.weak __stack_chk_fail_local +__stack_chk_fail_local: + call __stack_chk_fail@plt + +.global _start + +.type _start, %function +.type main, %function +.type __mlibc_entry, %function + +.cfi_startproc +_start: +.cfi_undefined eip + xor %ebp, %ebp + mov %esp, %edi + call 1f + +1: + pop %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + push main@GOT(%ebx) + push %edi + call __mlibc_entry@plt +.cfi_endproc + +.section .note.GNU-stack,"",%progbits diff --git a/lib/mlibc/sysdeps/linux/x86/crt-src/crt1.S b/lib/mlibc/sysdeps/linux/x86/crt-src/crt1.S new file mode 100644 index 0000000..ed45da3 --- /dev/null +++ b/lib/mlibc/sysdeps/linux/x86/crt-src/crt1.S @@ -0,0 +1,18 @@ +.section .text +.global _start + +.type _start, %function +.type main, %function +.type __mlibc_entry, %function + +.cfi_startproc +_start: +.cfi_undefined eip + xor %ebp, %ebp + mov %esp, %ecx + push $main + push %ecx + call __mlibc_entry +.cfi_endproc + +.section .note.GNU-stack,"",%progbits diff --git a/lib/mlibc/sysdeps/linux/x86/crt-src/crti.S b/lib/mlibc/sysdeps/linux/x86/crt-src/crti.S new file mode 100644 index 0000000..e232557 --- /dev/null +++ b/lib/mlibc/sysdeps/linux/x86/crt-src/crti.S @@ -0,0 +1,11 @@ +.section .init +.global _init +_init: + pushl %eax + +.section .fini +.global _fini +_fini: + pushl %eax + +.section .note.GNU-stack,"",%progbits diff --git a/lib/mlibc/sysdeps/linux/x86/crt-src/crtn.S b/lib/mlibc/sysdeps/linux/x86/crt-src/crtn.S new file mode 100644 index 0000000..d890289 --- /dev/null +++ b/lib/mlibc/sysdeps/linux/x86/crt-src/crtn.S @@ -0,0 +1,9 @@ +.section .init + popl %eax + ret + +.section .fini + popl %eax + ret + +.section .note.GNU-stack,"",%progbits |