git: crt1.o: Fix compilation failure with -DGCRT on clang

John Marino marino at crater.dragonflybsd.org
Wed Nov 5 13:52:04 PST 2014


commit 98b5f2ced1473d884397cff7d822d7b2187a78e3
Author: John Marino <draco at marino.st>
Date:   Wed Nov 5 22:48:48 2014 +0100

    crt1.o: Fix compilation failure with -DGCRT on clang
    
    Clang has been failing to compile the crt1.c with GCRT macro defined.  The
    error message stated the "eprol" label was being defined twice.  Clang was
    performing an alternative conditional optimization which duplicated the
    assembly including our inserted eprol label.
    
    The workaround is to relocate the eprol label after the handle_static_init
    function to get it out of the optimization loop.  The trade-off of this
    workaround is that handle_static_init() can no longer be profiled.  The
    formerly preceding monstartup belongs to gmon and it controls the range of
    PCs the profiling code considers.
    
    Suggested by:	dillon

Summary of changes:
 lib/csu/x86_64/crt1.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/98b5f2ced1473d884397cff7d822d7b2187a78e3


-- 
DragonFly BSD source repository


More information about the Commits mailing list