mirror of
https://github.com/0xAX/linux-insides.git
synced 2025-01-02 20:00:56 +00:00
Update program_startup.md
This commit is contained in:
parent
7df9f32334
commit
1b8fcbef2f
@ -157,7 +157,7 @@ $ gcc -v -ggdb program.c -o sum
|
|||||||
...
|
...
|
||||||
...
|
...
|
||||||
...
|
...
|
||||||
/usr/libexec/gcc/x86_64-redhat-linux/6.1.1/cc1 -quiet -v test.c -quiet -dumpbase test.c -mtune=generic -march=x86-64 -auxbase test -ggdb -version -o /tmp/ccvUWZkF.s
|
/usr/libexec/gcc/x86_64-redhat-linux/6.1.1/cc1 -quiet -v program.c -quiet -dumpbase program.c -mtune=generic -march=x86-64 -auxbase test -ggdb -version -o /tmp/ccvUWZkF.s
|
||||||
...
|
...
|
||||||
...
|
...
|
||||||
...
|
...
|
||||||
@ -211,7 +211,7 @@ collect2: error: ld returned 1 exit status
|
|||||||
Besides other errors, we also see that `_start` symbol is undefined. So now we are sure that the `_start` function comes from standard library. But even if we will link it with standard library, it will not be compiled successfully anyway:
|
Besides other errors, we also see that `_start` symbol is undefined. So now we are sure that the `_start` function comes from standard library. But even if we will link it with standard library, it will not be compiled successfully anyway:
|
||||||
|
|
||||||
```
|
```
|
||||||
~$ gcc -nostdlib -lc -ggdb test.c -o program
|
~$ gcc -nostdlib -lc -ggdb program.c -o program
|
||||||
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400350
|
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400350
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ After stack aligning we push address of the stack, addresses of contstructor and
|
|||||||
Before we will look at the `__libc_start_main` function let's add the `/lib64/crt1.o` and try to compile our program again:
|
Before we will look at the `__libc_start_main` function let's add the `/lib64/crt1.o` and try to compile our program again:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ gcc -nostdlib /lib64/crt1.o -lc -ggdb test.c -o program
|
$ gcc -nostdlib /lib64/crt1.o -lc -ggdb program.c -o program
|
||||||
/lib64/crt1.o: In function `_start':
|
/lib64/crt1.o: In function `_start':
|
||||||
(.text+0x12): undefined reference to `__libc_csu_fini'
|
(.text+0x12): undefined reference to `__libc_csu_fini'
|
||||||
/lib64/crt1.o: In function `_start':
|
/lib64/crt1.o: In function `_start':
|
||||||
|
Loading…
Reference in New Issue
Block a user