This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! Now that DL_SYSDEP_OSCHECK is done in rtld.c, after vDSO has been looked at and more importantly after process_envvars, LD_ASSUME_KERNEL no longer works, because GLRO(dl_osversion) is first set in process_envvars and then unconditionally overwritten in DL_SYSDEP_OSCHECK. The following patch fixes this by not overwriting GLRO(dl_osversion) if it was set via LD_ASSUME_KERNEL to a value smaller than _dl_discover_osversion (). 2005-05-30 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): If GLRO(dl_osversion) has been already set to a value smaller than _dl_discover_osversion (), don't overwrite it here. --- libc/sysdeps/unix/sysv/linux/dl-osinfo.h.jj 2005-04-27 12:33:22.000000000 +0200 +++ libc/sysdeps/unix/sysv/linux/dl-osinfo.h 2005-05-30 11:38:08.000000000 +0200 @@ -145,7 +145,9 @@ _dl_discover_osversion (void) int version = _dl_discover_osversion (); \ if (__builtin_expect (version >= 0, 1)) \ { \ - GLRO(dl_osversion) = version; \ + if (__builtin_expect (GLRO(dl_osversion) == 0, 1) \ + || GLRO(dl_osversion) > version) \ + GLRO(dl_osversion) = version; \ \ /* Now we can test with the required version. */ \ if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION) \ Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |