2.4.24 asm/timex.h

From: Eyal Lebedinsky
Date: Tue Jan 06 2004 - 17:51:54 EST


This is part of the current patch:

--- linux-2.4.24/include/asm-i386/timex.h 2002-11-28
23:53:15.000000000 +0000
+++ linux-2.4.25-pre4/include/asm-i386/timex.h 2004-01-06
12:43:33.000000000 +0000
@@ -40,14 +40,10 @@

static inline cycles_t get_cycles (void)
{
-#ifndef CONFIG_X86_TSC
- return 0;
-#else
- unsigned long long ret;
-
- rdtscll(ret);
+ unsigned long long ret = 0;
+ if(cpu_has_tsc)
+ rdtscll(ret);
return ret;
-#endif
}

extern unsigned long cpu_khz;

Building valgrind, it includes <linux/timex.h> and then tries
to use the adjtimex syscall. This ends up with an undefined
error for 'cpu_has_tsc'. This did not happen with earlier
kernels.

In file included from /usr/include/linux/timex.h:152,
from vg_unsafe.h:66,
from vg_syscalls.c:35:
/usr/include/asm/timex.h: In function `get_cycles':
/usr/include/asm/timex.h:44: `cpu_has_tsc' undeclared (first use in this
function)


Is this a problem with 2.4-pre or is valgrind inappropriately
messing with kernel headers?

For the moment I hacked it badly in coregrind/vg_unsafe.h:
#define cpu_has_tsc 1
#include <linux/timex.h>

--
Eyal Lebedinsky (eyal@xxxxxxxxxxxxxx) <http://samba.org/eyal/>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/