git: <sys/cdefs.h>: Rework __weak_reference() macro.

Rimvydas Jasinskas zrj at crater.dragonflybsd.org
Mon Oct 24 05:15:20 PDT 2016


commit f8406b33bbed7faf9fbde74cd27d301a5cae7cbc
Author: zrj <rimvydas.jasinskas at gmail.com>
Date:   Thu Oct 6 12:13:25 2016 +0300

    <sys/cdefs.h>: Rework __weak_reference() macro.
    
    My LTO build blew away weak symbols from slim LTO objects.
    Use __strong_reference() + weak attribute to allow the compiler to catch
    extern declarations and not to fold weak symbols as local ones.
    
    Keep previous version as __weak_reference_asm() in _pthread_stubs.c for
    now due to several issues (there is a need to do it in a cleaner way).
    
    lib/libc/gen/ucontext.c:
      add missing __DECONST for ucp, shouldn't sigreturn take const ucontext_t?
    
    lib/libc/inet/inet_ntoa.c:
      add missing #undef inet_ntoa_r
    
    No symbol changes in libc and librt on normal compilation.
    
    While there, add __weak_symbol attribute for future additions.

Summary of changes:
 lib/libc/gen/_pthread_stubs.c      |  8 +++++---
 lib/libc/gen/_thread_init.c        |  8 ++++----
 lib/libc/gen/fmtcheck.c            |  5 ++---
 lib/libc/gen/sigwait.c             |  4 ++--
 lib/libc/gen/tls.c                 | 13 ++++++------
 lib/libc/gen/ucontext.c            | 12 +++++------
 lib/libc/inet/inet_ntoa.c          |  1 +
 lib/libc/stdio/_flock_stub.c       | 17 ++++++++-------
 lib/libc/string/strchrnul.c        |  3 +--
 lib/libc/x86_64/gen/makecontext.c  |  4 ++--
 lib/libc/x86_64/gen/quickcontext.c |  4 ++--
 lib/librt/mq.c                     | 42 +++++++++++++++++++-------------------
 sys/sys/cdefs.h                    |  6 +++++-
 13 files changed, 65 insertions(+), 62 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/f8406b33bbed7faf9fbde74cd27d301a5cae7cbc


-- 
DragonFly BSD source repository


More information about the Commits mailing list