11e45afb42112009396198a0352af3922bab1d1b
explain/crt.md
... | ... | @@ -10,9 +10,9 @@ function: |
10 | 10 | |
11 | 11 | 1. aligns the stack |
12 | 12 | 2. reads `argc`, `argv`, `environ` and [the auxiliary vector |
13 | - ](https://www.youtube.com/watch?v=j72GExsDnDU&t=1015) from the stack |
|
13 | + ](https://refspecs.linuxfoundation.org/LSB_1.3.0/IA64/spec/auxiliaryvector.html) from the stack |
|
14 | 14 | 3. sets up TLS, locales, and other crap |
15 | -4. calls `__libc_start_user`, which calls `main`, and `exit` automatically as |
|
15 | +4. calls `__libc_start_user`, which first calls the constructors of all global (C++) variables, then calls `main`, and `exit` automatically as |
|
16 | 16 | well. |
17 | 17 | |
18 | 18 | Of course, it's huge, but we can provide our own: step 3 can be skipped, 1 and 2 |