The linking clauses don't really apply in the context of a vDSO. The vDSO is mapped in to every process space by the kernel, and can be called by anybody. Processes as such have no direct link map knowledge of the vDSO mapping, and must in turn grovel the auxvt for the entry point (especially as these days the page itself is stashed in a vma in order to randomize its location). One can also interrogate the memory map for the running process through procfs to find the mapping. In any event, restricting use of the vDSO would be akin to restricting visibility of system calls to userspace processes depending on licensing, which we don't really do today either. Where the licensing comes in to play is for libraries that encapsulate the system calls that applications in turn link against. If for example your inotify library contains licensing you don't care for, nothing stops you from constructing your own syscall() call-in that stubs in the bits you care about and never touch the library at all. If someone were to create a library (or extend one, in the case of glibc) to wrap in to the vDSO, then those wrappers within that context would be subjected to the licensing of the library, but the vDSO remains wholly insular.