lkml.org 
[lkml]   [2014]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [RFC 0/2] __vdso_findsym
    From
    On Sun, Jun 15, 2014 at 12:31 PM, H. Peter Anvin <hpa@zytor.com> wrote:
    > The weak symbols are well-known names. The __vdso symbols are strong.

    I see. But I don't understand how this is supposed to work. When I
    link a program against gettimeofday, I get a reference to gettimeofday
    with version GLIBC_2.2.5. After all, I only link against libc.so; I
    don't link against the vDSO. The VDSO provides gettimeofday with
    version LINUX_2.6. Since those versions don't match, the gettimeofday
    reference in my executable will not be satisfied by the definition in
    the vDSO. So at dynamic link time my program is always going to be
    linked with the gettimeofday in libc.so, which will in turn call the
    gettimeofday in the vDSO.

    Am I missing something that makes the definition of gettimeofday with
    version LINUX_2.6 in the vDSO useful?

    Ian



    > On June 15, 2014 12:22:17 PM PDT, Ian Lance Taylor <iant@golang.org> wrote:
    >>On Sun, Jun 15, 2014 at 12:14 PM, H. Peter Anvin <hpa@zytor.com> wrote:
    >>>
    >>> If it doesn't, then you incur an additional indirection penalty. The
    >>strong __vdso symbol allows the libc wrapper to fall back to the vdso
    >>implementation, the weak symbol allows three to be no wrapper at all.
    >>This is good.
    >>>
    >>> The reason for changing ABI would be shifting types. This is very
    >>much how glibc manages transitions.
    >>
    >>The purpose of symbol versioning is so that symbols with well known
    >>names, like stat, can continue to use those same names while changing
    >>types. Both old and new programs can continue to use the name stat
    >>and continue to work even though they use different types.
    >>
    >>I don't see how this applies to the kernel VDSO. Those symbols do not
    >>use well-known names; they use names like __vdso_time. If you change
    >>the types used by those symbols, you can change the name as well.
    >>What is the downside?
    >>
    >>Ian
    >
    > --
    > Sent from my mobile phone. Please pardon brevity and lack of formatting.


    \
     
     \ /
      Last update: 2014-06-15 22:21    [W:2.983 / U:0.544 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site