Remove dependency on errno in ld.so
During early parts of ld.so, errno and other thread local variables are not yet initialized so we cannot use function (such as unistd::access) that depends on such thread local variables (errno). For this reason this patch creates small wrapper around the syscall that doesn't not touch the errno