mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
Update.
2000-09-09 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): Use uname before trying to read /proc. Patch by Matt Wilson <msw@redhat.com>. * include/sys/utsname.h: Declare __uname. * sysdeps/generic/uname.c: Make uname a weak alias of __uname. * sysdeps/mach/hurd/uname.c: Likewise. * sysdeps/unix/syscalls.list: Likewise. * iconv/gconv_dl.c (do_release_shlib): Rewrite condition for unloading a bit. 2000-09-08 Ulrich Drepper <drepper@redhat.com> * posix/getopt.c (_getopt_internal): When long_only is set always recognize conflicts just like before. 2000-09-08 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/ia64/Makefile (sysdep-rtld-routines): New variable.
This commit is contained in:
@ -18,6 +18,7 @@
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/utsname.h>
|
||||
#include "kernel-features.h"
|
||||
|
||||
#ifndef MIN
|
||||
@ -61,16 +62,25 @@ dl_fatal (const char *str)
|
||||
sizeof (sysctl_args) / sizeof (sysctl_args[0]), \
|
||||
buf, &reslen, NULL, 0) < 0) \
|
||||
{ \
|
||||
/* This was not successful. Now try reading the /proc \
|
||||
filesystem. */ \
|
||||
int fd = __open ("/proc/sys/kernel/osrelease", O_RDONLY); \
|
||||
if (fd == -1 \
|
||||
|| (reslen = __read (fd, buf, sizeof (buf))) <= 0) \
|
||||
/* This also didn't work. We give up since we cannot \
|
||||
make sure the library can actually work. */ \
|
||||
FATAL ("FATAL: cannot determine library version\n"); \
|
||||
\
|
||||
__close (fd); \
|
||||
/* This didn't work. Next try the uname syscall */ \
|
||||
struct utsname uts; \
|
||||
if (__uname (&uts)) \
|
||||
{ \
|
||||
/* This was not successful. Now try reading the /proc \
|
||||
filesystem. */ \
|
||||
int fd = __open ("/proc/sys/kernel/osrelease", O_RDONLY); \
|
||||
if (fd == -1 \
|
||||
|| (reslen = __read (fd, buf, sizeof (buf))) <= 0) \
|
||||
/* This also didn't work. We give up since we cannot \
|
||||
make sure the library can actually work. */ \
|
||||
FATAL ("FATAL: cannot determine library version\n"); \
|
||||
__close (fd); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
strncpy (buf, uts.release, sizeof (buf)); \
|
||||
reslen = strlen (uts.release); \
|
||||
} \
|
||||
} \
|
||||
buf[MIN (reslen, sizeof (buf) - 1)] = '\0'; \
|
||||
\
|
||||
|
Reference in New Issue
Block a user