It is only used once in linux-stable, in ./include/linux/clocksource.h.
Code:
#ifdef CONFIG_GENERIC_TIME_VSYSCALL
extern void
update_vsyscall(struct timespec *ts, struct timespec *wtm,
struct clocksource *c, u32 mult);
extern void update_vsyscall_tz(void);
#else
static inline void
update_vsyscall(struct timespec *ts, struct timespec *wtm,
struct clocksource *c, u32 mult)
{
}
static inline void update_vsyscall_tz(void)
{
}
#endif
So obviously, if you don't have it defined, those functions do nothing.
On my system, those externs are defined in ./arch/x86/kernel/vsyscall_64.c. Have a look.