1. 22 4月, 2015 1 次提交
  2. 07 4月, 2013 1 次提交
    • R
      add support for program_invocation[_short]_name · b4ea6385
      Rich Felker 提交于
      this is a bit ugly, and the motivation for supporting it is
      questionable. however the main factors were:
      1. it will be useful to have this for certain internal purposes
      anyway -- things like syslog.
      2. applications can just save argv[0] in main, but it's hard to fix
      non-portable library code that's depending on being able to get the
      invocation name without the main application's help.
      b4ea6385
  3. 12 10月, 2012 1 次提交
  4. 27 7月, 2012 1 次提交
  5. 25 2月, 2012 2 次提交
  6. 24 2月, 2012 1 次提交
    • R
      cleanup and work around visibility bug in gcc 3 that affects x86_64 · bae2e52b
      Rich Felker 提交于
      in gcc 3, the visibility attribute must be placed on both the
      declaration and on the definition. if it's omitted from the
      definition, the compiler fails to emit the ".hidden" directive in the
      assembly, and the linker will either generate textrels (if supported,
      such as on i386) or refuse to link (on targets where certain types of
      textrels are forbidden or impossible without further assumptions about
      memory layout, such as on x86_64).
      
      this patch also unifies the decision about when to use visibility into
      libc.h and makes the visibility in the utf-8 state machine tables
      based on libc.h rather than a duplicate test.
      bae2e52b
  7. 25 2月, 2011 1 次提交
    • R
      various changes in preparation for dynamic linking support · 41d51836
      Rich Felker 提交于
      prefer using visibility=hidden for __libc internal data, rather than
      an accessor function, if the compiler has visibility.
      
      optimize with -O3 for PIC targets (shared library). without heavy
      inlining, reloading the GOT register in small functions kills
      performance. 20-30% size increase for a single libc.so is not a big
      deal, compared to comparaible size increase in every static binaries.
      
      use -Bsymbolic-functions, not -Bsymbolic. global variables are subject
      to COPY relocations, and thus binding their addresses in the library
      at link time will cause library functions to read the wrong (original)
      copies instead of the copies made in the main program's bss section.
      
      add entry point, _start, for dynamic linker.
      41d51836
  8. 21 2月, 2011 1 次提交
    • R
      use an accessor function for __libc data pointer when compiled as PIC · d89c9e8a
      Rich Felker 提交于
      prior to this change, a large portion of libc was unusable prior to
      relocation by the dynamic linker, due to dependence on the global data
      in the __libc structure and the need to obtain its address through the
      GOT. with this patch, the accessor function __libc_loc is now able to
      obtain the address of __libc via PC-relative addressing without using
      the GOT. this means the majority of libc functionality is now
      accessible right away.
      
      naturally, the above statements all depend on having an architecture
      where PC-relative addressing and jumps/calls are feasible, and a
      compiler that generates the appropriate code.
      d89c9e8a
  9. 12 2月, 2011 1 次提交