[LLVMbugs] [Bug 14665] New: clang can't link loader/preloader from Wine

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Dec 19 21:41:36 PST 2012


             Bug #: 14665
           Summary: clang can't link loader/preloader from Wine
           Product: clang
           Version: trunk
          Platform: PC
               URL: http://bugs.winehq.org/show_bug.cgi?id=28050
        OS/Version: Linux
            Status: NEW
          Keywords: regression
          Severity: enhancement
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: austinenglish at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

This is similar to bug 11173, but it's a regression in Clang trunk from (at
least) 3.0.

When linking wine/loader/preloader.c (at -O1 or -O2, but not -O0), the linker
fails with an undefined reference to memset.

If I install clang-3.0 from debian's repo, it works fine. But with clang built
locally, it fails:
austin at debian-home:~/wine-tmp/loader$ make preloader.o
clang -c -I. -I. -I../include -I../include  -D__WINESRC__   -Wall -pipe
-fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body
-Wignored-qualifiers -Wstrict-prototypes -Wtype-limits
-Wunused-but-set-parameter -Wwrite-strings -gdwarf-2 -gstrict-dwarf
-fno-omit-frame-pointer -Wpointer-arith -I/usr/include/freetype2    --std=gnu89
-g -O1  -o preloader.o preloader.c

austin at debian-home:~/wine-tmp/loader$ make
clang -o wine-preloader -static -nostartfiles -nodefaultlibs
-Wl,-Ttext=0x7c400000 preloader.o ../libs/port/libwine_port.a 
preloader.o: In function `wld_memset':
/home/austin/wine-tmp/loader/preloader.c:455: undefined reference to `memset'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [wine-preloader] Error 1

llvm head is at:
commit 270bfbd3d1fb42000b23e5747ac7957b0e9fcab8
Author: Jakub Staszak <kubastaszak at gmail.com>
Date:   Tue Dec 18 22:57:56 2012 +0000

    Reverse order of checking SSE level when calculating compare cost, so we
    AVX2 before AVX.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170464

and clang:
commit e77372ac818cf202571dcbf8ab656c8f47ba3423
Author: Eli Bendersky <eliben at google.com>
Date:   Tue Dec 18 22:22:16 2012 +0000

    Similar to 170440 - fix build warning with gcc

    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170461

Please let me know what additional info is needed. I can perform a regression
test, if needed, though tips on how to handle it with two different repos would
be appreciated.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list