[llvm-bugs] [Bug 42711] clang10 -Oz generates incorrect symbols for msvc 32bit target

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Feb 26 18:15:07 PST 2020


https://bugs.llvm.org/show_bug.cgi?id=42711

Lucas Wang <wbsecg1 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #11 from Lucas Wang <wbsecg1 at gmail.com> ---
(In reply to Hans Wennborg from comment #10)
> (In reply to Lucas Wang from comment #8)
> > arm 32bit has the same error
> 
> Fixed in decd021facba804b57e8d80b6159c987d3261ab8 on master and
> 882720b7ce338c81aa24c1c2b2614c47d248920f on release/10.x.

Simply check windows target can fix the issue. But in fact these symbols are
defined in compiler-rt(and libgcc). So if a toolchain targets windows use
compiler-rt by default or via --rtlib=compiler-rt, then keeping these symbols
is fine. Try this toolchain https://github.com/mstorsjo/llvm-mingw (used by VLC
iirc). It's triple is thumbv7-w64-windows-gnu, so checking msvc or gnu abi
should be better then windows.


$ armv7-w64-mingw32-clang -Oz -std=c11 bug.c -v -Wl,--verbose
clang version 9.0.0 (https://github.com/llvm/llvm-project.git
0399d5a9682b3cef71c653373e38890c63c4c365)
Target: armv7-w64-windows-gnu
Thread model: posix
InstalledDir: E:\install\llvm-mingw\bin
 E:/install/llvm-mingw/bin/clang-9.exe -cc1 -triple thumbv7-w64-windows-gnu
-emit-obj -disable-free -disable-llvm-verifier -discard-value-names
-main-file-name bug.c -mrelocation-model static -mthread-model posix
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -target-cpu
cortex-a9 -target-feature +strict-align -target-abi aapcs -mfloat-abi hard
-fallow-half-arguments-and-returns -dwarf-column-info -debugger-tuning=gdb -v
-resource-dir E:/install/llvm-mingw/lib/clang/9.0.0 -internal-isystem
E:/install/llvm-mingw/lib/clang/9.0.0/include -internal-isystem
E:/install/llvm-mingw/armv7-w64-mingw32/include -internal-isystem
E:/install/llvm-mingw/include -Oz -std=c11 -fdebug-compilation-dir
E:/install/llvm -ferror-limit 19 -fmessage-length 0 -mllvm -arm-restrict-it
-fobjc-runtime=gcc -fdwarf-exceptions -fdiagnostics-show-option -vectorize-slp
-faddrsig -o E:/install/msys64/tmp/bug-473840.o -x c bug.c
clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target
x86_64-w64-mingw32
ignoring nonexistent directory
"E:\install\llvm-mingw\armv7-w64-mingw32\include"
#include "..." search starts here:
#include <...> search starts here:
 E:/install/llvm-mingw/lib/clang/9.0.0/include
 E:/install/llvm-mingw/include
End of search list.
bug.c:19:9: warning: implicitly declaring library function 'llabs' with type
'long long (long long)' [-Wimplicit-function-declaration]
    u = llabs(a >> za);
        ^
bug.c:19:9: note: include the header <stdlib.h> or explicitly provide a
declaration for 'llabs'
1 warning generated.
 E:/install/llvm-mingw/bin/ld.lld -m thumb2pe -Bdynamic -o a.exe
E:/install/llvm-mingw/armv7-w64-mingw32/lib/crt2.o
E:/install/llvm-mingw/armv7-w64-mingw32/lib/crtbegin.o
-LE:/install/llvm-mingw/armv7-w64-mingw32/lib -LE:/install/llvm-mingw/lib
-LE:/install/llvm-mingw/armv7-w64-mingw32/sys-root/mingw/lib
E:/install/msys64/tmp/bug-473840.o --verbose -lmingw32
E:/install/llvm-mingw/lib/clang/9.0.0/lib/windows/libclang_rt.builtins-arm.a
-lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32
-lmingw32
E:/install/llvm-mingw/lib/clang/9.0.0/lib/windows/libclang_rt.builtins-arm.a
-lmoldname -lmingwex -lmsvcrt
E:/install/llvm-mingw/armv7-w64-mingw32/lib/crtend.o
lld-link -lldmingw -out:a.exe -debug:dwarf -verbose -opt:noref -opt:noicf
-machine:arm -alternatename:__image_base__=__ImageBase
-libpath:E:\install\llvm-mingw\armv7-w64-mingw32\lib
-libpath:E:\install\llvm-mingw\lib
-libpath:E:\install\llvm-mingw\armv7-w64-mingw32/sys-root/mingw/lib
E:\install\llvm-mingw\armv7-w64-mingw32\lib\crt2.o
E:\install\llvm-mingw\armv7-w64-mingw32\lib\crtbegin.o
E:\install\msys64\tmp\bug-473840.o
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingw32.a
E:\install\llvm-mingw\lib\clang\9.0.0\lib\windows\libclang_rt.builtins-arm.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmoldname.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingwex.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmsvcrt.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libadvapi32.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libshell32.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libuser32.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libkernel32.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingw32.a E:\instlld-link:
Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\crt2.o
lld-link: Directives: E:\install\llvm-mingw\armv7-w64-mingw32\lib\crt2.o: 
-aligncomm:"__mingw_winmain_hInstance",2
-aligncomm:"__mingw_winmain_lpCmdLine",2
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\crtbegin.o
lld-link: Reading E:\install\msys64\tmp\bug-473840.o
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingw32.a
lld-link: Reading
E:\install\llvm-mingw\lib\clang\9.0.0\lib\windows\libclang_rt.builtins-arm.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmoldname.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingwex.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmsvcrt.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libadvapi32.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libshell32.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libuser32.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\libkernel32.a
lld-link: Reading E:\install\llvm-mingw\armv7-w64-mingw32\lib\crtend.o
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-gccmain.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-gccmain.o) for __main
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-natstart.o)
lld-link: Directives: libmingw32.a(libarm32_libmingw32_a-natstart.o): 
-aligncomm:"__native_startup_state",2 -aligncomm:"__native_startup_lock",2
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-natstart.o) for
__native_startup_state
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-wildcard.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-wildcard.o) for _dowildcard
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-charmax.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-charmax.o) for
mingw_initcharmax
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-dllargv.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-dllargv.o) for _setargv
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-gs_support.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-gs_support.o) for
__security_init_cookie
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-_newmode.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-_newmode.o) for _newmode
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-tlssup.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-tlssup.o) for
__dyn_tls_init_callback
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-cinitexe.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-cinitexe.o) for __xi_a
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-merr.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-merr.o) for _matherr
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-CRT_fp10.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-CRT_fp10.o) for _fpreset
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-mingw_helpers.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-mingw_helpers.o) for
mingw_app_type
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-pseudo-reloc.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-pseudo-reloc.o) for
_pei386_runtime_relocator
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-usermatherr.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-usermatherr.o) for
__mingw_setusermatherr
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-xtxtmode.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-xtxtmode.o) for _fmode
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-crt_handler.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-crt_handler.o) for
_gnu_exception_handler
lld-link: Reading libclang_rt.builtins-arm.a(ashldi3.c.obj)
lld-link: Loaded libclang_rt.builtins-arm.a(ashldi3.c.obj) for __ashldi3
lld-link: Reading libclang_rt.builtins-arm.a(ashrdi3.c.obj)
lld-link: Loaded libclang_rt.builtins-arm.a(ashrdi3.c.obj) for __ashrdi3
lld-link: Reading libmingwex.a(libarm32_libmingwex_a-mingw_matherr.o)
lld-link: Loaded libmingwex.a(libarm32_libmingwex_a-mingw_matherr.o) for
_MINGW_INSTALL_DEBUG_MATHERR
lld-link: Reading api-ms-win-crt-heap-l1-1-0.dll
lld-link: Reading api-ms-win-crt-private-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading libmsvcrt.a(api-ms-win-crt-runtime-l1-1-0.dll)
lld-link: Loaded libmsvcrt.a(api-ms-win-crt-runtime-l1-1-0.dll) for
__set_app_type
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-stdio-l1-1-0.dll
lld-link: Reading api-ms-win-crt-string-l1-1-0.dll
lld-link: Reading api-ms-win-crt-string-l1-1-0.dll
lld-link: Reading libmsvcrt.a(libarm32_libucrt_extra_a-ucrtbase_compat.o)
lld-link: Loaded libmsvcrt.a(libarm32_libucrt_extra_a-ucrtbase_compat.o) for
__getmainargs
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading libmsvcrt.a(api-ms-win-crt-locale-l1-1-0.dll)
lld-link: Loaded libmsvcrt.a(api-ms-win-crt-locale-l1-1-0.dll) for
__imp___lconv_init
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-tlsthrd.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-tlsthrd.o) for
__mingw_TLScallback
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-tlsmcrt.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-tlsmcrt.o) for _CRT_MT
lld-link: Reading api-ms-win-crt-stdio-l1-1-0.dll
lld-link: Reading libmsvcrt.a(libarm32_libucrt_extra_a-ucrt_fprintf.o)
lld-link: Loaded libmsvcrt.a(libarm32_libucrt_extra_a-ucrt_fprintf.o) for
fprintf
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-pesect.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-pesect.o) for
__mingw_GetSectionCount
lld-link: Reading libclang_rt.builtins-arm.a(chkstk.S.obj)
lld-link: Loaded libclang_rt.builtins-arm.a(chkstk.S.obj) for __chkstk
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading api-ms-win-crt-stdio-l1-1-0.dll
lld-link: Reading libmsvcrt.a(libarm32_libucrt_extra_a-ucrt_vfprintf.o)
lld-link: Loaded libmsvcrt.a(libarm32_libucrt_extra_a-ucrt_vfprintf.o) for
vfprintf
lld-link: Reading libmingw32.a(libarm32_libmingw32_a-pseudo-reloc-list.o)
lld-link: Loaded libmingw32.a(libarm32_libmingw32_a-pseudo-reloc-list.o) for
__RUNTIME_PSEUDO_RELOC_LIST_END__
lld-link: Reading api-ms-win-crt-math-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-environment-l1-1-0.dll
lld-link: Reading api-ms-win-crt-heap-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-environment-l1-1-0.dll
lld-link: Reading api-ms-win-crt-runtime-l1-1-0.dll
lld-link: Reading api-ms-win-crt-time-l1-1-0.dll
lld-link: Reading api-ms-win-crt-time-l1-1-0.dll
lld-link: Reading api-ms-win-crt-time-l1-1-0.dll
lld-link: Reading api-ms-win-crt-stdio-l1-1-0.dll
lld-link: Reading api-ms-win-crt-time-l1-1-0.dll
lld-link: Reading api-ms-win-crt-locale-l1-1-0.dll
lld-link: Reading api-ms-win-crt-heap-l1-1-0.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading api-ms-win-crt-heap-l1-1-0.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading KERNEL32.dll
lld-link: Reading api-ms-win-crt-stdio-l1-1-0.dll
lld-link: Reading api-ms-win-crt-string-l1-1-0.dll
lld-link: Entry name inferred: mainCRTStartup
lld-link: Loading lazy __imp___set_app_type from
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmsvcrt.a for automatic import
lld-link: Reading libmsvcrt.a(api-ms-win-crt-runtime-l1-1-0.dll)
lld-link: Loaded libmsvcrt.a(api-ms-win-crt-runtime-l1-1-0.dll) for
__imp___set_app_type
lld-link: Processing section .CRT$XCA -> .CRT
lld-link:   libarm32_libmingw32_a-cinitexe.o, SectionID: 6
lld-link: Processing section .CRT$XCAA -> .CRT
lld-link:   E:\install\llvm-mingw\armv7-w64-mingw32\lib\crt2.o, SectionID: 5
lld-link: Processing section .CRT$XCZ -> .CRT
lld-link:   libarm32_libmingw32_a-cinitexe.o, SectionID: 7
lld-link: Processing section .CRT$XDA -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 9
lld-link: Processing section .CRT$XDZ -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 10
lld-link: Processing section .CRT$XIA -> .CRT
lld-link:   libarm32_libmingw32_a-cinitexe.o, SectionID: 4
lld-link: Processing section .CRT$XIAA -> .CRT
lld-link:   E:\install\llvm-mingw\armv7-w64-mingw32\lib\crt2.o, SectionID: 4
lld-link: Processing section .CRT$XIC -> .CRT
lld-link:   libarm32_libmingw32_a-charmax.o, SectionID: 4
lld-link: Processing section .CRT$XIZ -> .CRT
lld-link:   libarm32_libmingw32_a-cinitexe.o, SectionID: 5
lld-link: Processing section .CRT$XLA -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 6
lld-link: Processing section .CRT$XLC -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 11
lld-link: Processing section .CRT$XLD -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 12
lld-link: Processing section .CRT$XLZ -> .CRT
lld-link:   libarm32_libmingw32_a-tlssup.o, SectionID: 7
all\llvm-mingw\lib\clang\9.0.0\lib\windows\libclang_rt.builtins-arm.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmoldname.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmingwex.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\libmsvcrt.a
E:\install\llvm-mingw\armv7-w64-mingw32\lib\crtend.o

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200227/36c88629/attachment-0001.html>


More information about the llvm-bugs mailing list