In Uclinux, Jiffies_64 's declaration is:
#define __jiffy_data __attribute__((section(".data")))
extern u64 __jiffy_data jiffies_64;
It is defined in KERNEL/TIMER.C:
U64 __jiffy_data jiffies_64 __cacheline_aligned_in_smp = initial_jiffies;
This definition does not seem to be a problem, but when compiling kernel/timer.c, it creates a very strange error, and the error message is:
[Error ea1008] "e:/temp/acc08143dff000/acc08143dff001.s":3601 '.epcdata':
The symbol has already been defined and cannot be redefined.
[Error ea1008] "e:/temp/acc08143dff000/acc08143dff001.s":3608 '.epcdata.end':
The symbol has already been defined and cannot be redefined.
But if you change the definition to:
extern u64 /*__jiffy_data*/ jiffies_64;
u64 /*__jiffy_data*/ jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
There is no problem.
Guess this has to do with U64 this type of data.