summaryrefslogtreecommitdiff
path: root/src/ldso/i386
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-06-18 19:48:42 -0400
committerRich Felker <dalias@aerifal.cx>2011-06-18 19:48:42 -0400
commit51e2d8310222ddd4d4e895f55c627100d863aa95 (patch)
treed64c18bacc3fc0609abc2d88d6d336f84d3e4e74 /src/ldso/i386
parentd43ff110bcb258df61448d21da3b1a89088388f6 (diff)
downloadmusl-51e2d8310222ddd4d4e895f55c627100d863aa95.tar.gz
experimental dynamic linker!
some notes: - library search path is hard coded - x86_64 code is untested and may not work - dlopen/dlsym is not yet implemented - relocations in read-only memory won't work
Diffstat (limited to 'src/ldso/i386')
-rw-r--r--src/ldso/i386/start.s19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ldso/i386/start.s b/src/ldso/i386/start.s
new file mode 100644
index 00000000..47c2748b
--- /dev/null
+++ b/src/ldso/i386/start.s
@@ -0,0 +1,19 @@
+.text
+.global _start
+_start:
+ xorl %ebp,%ebp
+ popl %ecx
+ movl %esp,%eax
+ andl $-16,%esp
+ movl %eax,%esi
+ movl %ecx,%edi
+ pushl %ebp
+ call 1f
+1: addl $_GLOBAL_OFFSET_TABLE_,(%esp)
+ pushl %eax
+ pushl %ecx
+ call __dynlink
+ movl %esi,%esp
+ pushl %edi
+ xorl %edx,%edx
+ jmp *%eax