• John Stultz's avatar
    time: Workaround gcc loop optimization that causes 64bit div errors · c7dcf87a
    John Stultz authored
    Early 4.3 versions of gcc apparently aggressively optimize the raw
    time accumulation loop, replacing it with a divide.
    
    On 32bit systems, this causes the following link errors:
    	undefined reference to `__umoddi3'
    	undefined reference to `__udivdi3'
    
    The gcc issue has been fixed in 4.4 and greater.
    
    This patch replaces the accumulation loop with a do_div, as suggested
    by Linus.
    Signed-off-by: default avatarJohn Stultz <johnstul@us.ibm.com>
    CC: Jason Wessel <jason.wessel@windriver.com>
    CC: Larry Finger <Larry.Finger@lwfinger.net>
    CC: Ingo Molnar <mingo@elte.hu>
    CC: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c7dcf87a
timekeeping.c 22.9 KB