• R
    clean up and refactor program initialization · 0a96a37f
    Rich Felker 提交于
    the code in __libc_start_main is now responsible for parsing auxv,
    rather than duplicating the parsing all over the place. this should
    shave off a few cycles and some code size. __init_libc is left as an
    external-linkage function despite the fact that it could be static, to
    prevent it from being inlined and permanently wasting stack space when
    main is called.
    
    a few other minor changes are included, like eliminating per-thread
    ssp canaries (they were likely broken when combined with certain
    dlopen usages, and completely unnecessary) and some other unnecessary
    checks. since this code gets linked into every program, it should be
    as small and simple as possible.
    0a96a37f
dynlink.c 30.5 KB