Call libproc constructors in strict order
Having one constructor depend on another means if the order is reversed you get a different result. Patched based on idea by Tom Evans. Added new code to old_Hertz_hack by Werner Fink <werner@suse.de> Bug-Debian: http://bugs.debian.org/460331 Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=632236 Reviewed-by: Jan Görig <jgorig@redhat.com>
This commit is contained in:
parent
4736dad559
commit
8fde4af11d
@ -158,6 +158,14 @@ static void old_Hertz_hack(void){
|
||||
unsigned long long jiffies;
|
||||
unsigned h;
|
||||
char *restrict savelocale;
|
||||
long hz;
|
||||
|
||||
#ifdef _SC_CLK_TCK
|
||||
if((hz = sysconf(_SC_CLK_TCK)) > 0){
|
||||
Hertz = hz;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
savelocale = setlocale(LC_NUMERIC, NULL);
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
@ -241,6 +249,7 @@ static int check_for_privs(void){
|
||||
static void init_libproc(void) __attribute__((constructor));
|
||||
static void init_libproc(void){
|
||||
have_privs = check_for_privs();
|
||||
init_Linux_version(); /* Must be called before we check code */
|
||||
// ought to count CPUs in /proc/stat instead of relying
|
||||
// on glibc, which foolishly tries to parse /proc/cpuinfo
|
||||
//
|
||||
|
@ -33,8 +33,7 @@ void display_version(void) {
|
||||
|
||||
int linux_version_code;
|
||||
|
||||
static void init_Linux_version(void) __attribute__((constructor));
|
||||
static void init_Linux_version(void) {
|
||||
void init_Linux_version(void) {
|
||||
static struct utsname uts;
|
||||
int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
EXTERN_C_BEGIN
|
||||
|
||||
void init_Linux_version(void); /* Get Linux version */
|
||||
extern void display_version(void); /* display suite version */
|
||||
extern const char procps_version[]; /* global buf for suite version */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user