Mueller-Roemer, Johannes Sebastian
2015-Jan-27 08:55 UTC
[LLVMdev] build failure on mingw gcc 4.9.1
I encountered a new build failure (r227128) on my nightly build of LLVM for MinGW: FAILED: cmd.exe /c cd . && D:\MinGW\x86_64-4.9.1-release-posix-seh-rt_v3-rev0\mingw64\bin\c++.exe -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wno-comment -std=gnu++11 -g utils/not/CMakeFiles/not.dir/not.cpp.obj -o bin/not.exe -Wl,--major-image-version,0,--minor-image-version,0 lib/libLLVMSupportD.a -limagehlp -lpsapi -lshell32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd . lib/libLLVMSupportD.a(Signals.cpp.obj): In function `llvm::sys::PrintStackTraceOnErrorSignal()': D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:284: undefined reference to `__imp__set_abort_behavior' D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:286: undefined reference to `__imp__set_abort_behavior' collect2.exe: error: ld returned 1 exit status So, _set_abort_behavior is not found. This should be solvable by specifying a newer MSVCRT version (see http://sourceforge.net/p/mingw/support-requests/153/ ). I'll try it, and if it works, could we add that to the CMakeLists? -- Johannes S. Mueller-Roemer, MSc Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) Fraunhofer-Institut für Graphische Datenverarbeitung IGD Fraunhoferstr. 5 | 64283 Darmstadt | Germany Tel +49 6151 155-606 | Fax +49 6151 155-139 johannes.mueller-roemer at igd.fraunhofer.de | www.igd.fraunhofer.de -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150127/bbbc4bbe/attachment.html>
Mueller-Roemer, Johannes Sebastian
2015-Jan-27 10:02 UTC
[LLVMdev] build failure on mingw gcc 4.9.1
Adding -D__MSVCRT_VERSION__=0x900 (or higher) to CMAKE_CXX_FLAGS and -lmsvcr90 (or higher) to CMAKE_CXX_STANDARD_LIBRARIES appears to work. -lmsvcrt80 does not work, contrary to the comment on the MinGW bug tracker. However, if you do not have the runtimes installed, errors will occur later on in the build process, such as: [215/1199] Building Intrinsics.gen... FAILED: cmd.exe /c cd D:\Slave\llvm-mingw\buildMinGW\include\llvm\IR && D:\Slave\llvm-mingw\buildMinGW\bin\llvm-tblgen.exe -gen-intrinsic -I D:/Slave/llvm-mingw/build/include/llvm/IR -I D:/Slave/llvm-mingw/build/lib/Target -I D:/Slave/llvm-mingw/build/include D:/Slave/llvm-mingw/build/include/llvm/IR/Intrinsics.td -o D:/Slave/llvm-mingw/buildMinGW/include/llvm/IR/Intrinsics.gen.tmp As I do not have administrative privileges on the machine, I switched to MSVCRT100, as those runtimes were already installed. Which leads me to the question: Should the exact MSVCRT version be selectable or should the lowest version necessary (9.0) be used? -- Johannes S. Mueller-Roemer, MSc Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) Fraunhofer-Institut für Graphische Datenverarbeitung IGD Fraunhoferstr. 5 | 64283 Darmstadt | Germany Tel +49 6151 155-606 | Fax +49 6151 155-139 johannes.mueller-roemer at igd.fraunhofer.de | www.igd.fraunhofer.de From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Mueller-Roemer, Johannes Sebastian Sent: Tuesday, January 27, 2015 09:56 To: llvmdev at cs.uiuc.edu Subject: [LLVMdev] build failure on mingw gcc 4.9.1 I encountered a new build failure (r227128) on my nightly build of LLVM for MinGW: FAILED: cmd.exe /c cd . && D:\MinGW\x86_64-4.9.1-release-posix-seh-rt_v3-rev0\mingw64\bin\c++.exe -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wno-comment -std=gnu++11 -g utils/not/CMakeFiles/not.dir/not.cpp.obj -o bin/not.exe -Wl,--major-image-version,0,--minor-image-version,0 lib/libLLVMSupportD.a -limagehlp -lpsapi -lshell32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd . lib/libLLVMSupportD.a(Signals.cpp.obj): In function `llvm::sys::PrintStackTraceOnErrorSignal()': D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:284: undefined reference to `__imp__set_abort_behavior' D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:286: undefined reference to `__imp__set_abort_behavior' collect2.exe: error: ld returned 1 exit status So, _set_abort_behavior is not found. This should be solvable by specifying a newer MSVCRT version (see http://sourceforge.net/p/mingw/support-requests/153/ ). I'll try it, and if it works, could we add that to the CMakeLists? -- Johannes S. Mueller-Roemer, MSc Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) Fraunhofer-Institut für Graphische Datenverarbeitung IGD Fraunhoferstr. 5 | 64283 Darmstadt | Germany Tel +49 6151 155-606 | Fax +49 6151 155-139 johannes.mueller-roemer at igd.fraunhofer.de<mailto:johannes.mueller-roemer at igd.fraunhofer.de> | www.igd.fraunhofer.de<http://www.igd.fraunhofer.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150127/8341c775/attachment.html>
On Tue, Jan 27, 2015 at 10:02 AM, Mueller-Roemer, Johannes Sebastian <Johannes.Sebastian.Mueller-Roemer at igd.fraunhofer.de> wrote:> Adding -D__MSVCRT_VERSION__=0x900 (or higher) to CMAKE_CXX_FLAGS and > -lmsvcr90 (or higher) to CMAKE_CXX_STANDARD_LIBRARIES appears to work. > -lmsvcrt80 does not work, contrary to the comment on the MinGW bug tracker. > However, if you do not have the runtimes installed, errors will occur later > on in the build process, such as: > > [215/1199] Building Intrinsics.gen... > > FAILED: cmd.exe /c cd D:\Slave\llvm-mingw\buildMinGW\include\llvm\IR && > D:\Slave\llvm-mingw\buildMinGW\bin\llvm-tblgen.exe -gen-intrinsic -I > D:/Slave/llvm-mingw/build/include/llvm/IR -I > D:/Slave/llvm-mingw/build/lib/Target -I D:/Slave/llvm-mingw/build/include > D:/Slave/llvm-mingw/build/include/llvm/IR/Intrinsics.td -o > D:/Slave/llvm-mingw/buildMinGW/include/llvm/IR/Intrinsics.gen.tmp > > > > As I do not have administrative privileges on the machine, I switched to > MSVCRT100, as those runtimes were already installed. Which leads me to the > question: Should the exact MSVCRT version be selectable or should the lowest > version necessary (9.0) be used? >Is there any way for CMake to detect which version of MSVCRT is present? Otherwise there's really no default we can give. If not, then we'll have to disable the error UI suppression on mingw. - Michael Spencer> > > -- > > Johannes S. Mueller-Roemer, MSc > > Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) > > > > Fraunhofer-Institut für Graphische Datenverarbeitung IGD > > Fraunhoferstr. 5 | 64283 Darmstadt | Germany > > Tel +49 6151 155-606 | Fax +49 6151 155-139 > > johannes.mueller-roemer at igd.fraunhofer.de | www.igd.fraunhofer.de > > > > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On > Behalf Of Mueller-Roemer, Johannes Sebastian > Sent: Tuesday, January 27, 2015 09:56 > To: llvmdev at cs.uiuc.edu > Subject: [LLVMdev] build failure on mingw gcc 4.9.1 > > > > I encountered a new build failure (r227128) on my nightly build of LLVM for > MinGW: > > > > FAILED: cmd.exe /c cd . && > D:\MinGW\x86_64-4.9.1-release-posix-seh-rt_v3-rev0\mingw64\bin\c++.exe > -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual > -Wno-missing-field-initializers -pedantic -Wno-long-long > -Wno-maybe-uninitialized -Wno-comment -std=gnu++11 -g > utils/not/CMakeFiles/not.dir/not.cpp.obj -o bin/not.exe > -Wl,--major-image-version,0,--minor-image-version,0 lib/libLLVMSupportD.a > -limagehlp -lpsapi -lshell32 -lkernel32 -luser32 -lgdi32 -lwinspool > -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd . > > lib/libLLVMSupportD.a(Signals.cpp.obj): In function > `llvm::sys::PrintStackTraceOnErrorSignal()': > > > > D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:284: undefined > reference to `__imp__set_abort_behavior' > > > > D:/Slave/llvm-mingw/build/lib/Support/Windows/Signals.inc:286: undefined > reference to `__imp__set_abort_behavior' > > > > collect2.exe: error: ld returned 1 exit status > > > > So, _set_abort_behavior is not found. This should be solvable by specifying > a newer MSVCRT version (see > http://sourceforge.net/p/mingw/support-requests/153/ ). I’ll try it, and if > it works, could we add that to the CMakeLists? > > > > -- > > Johannes S. Mueller-Roemer, MSc > > Wiss. Mitarbeiter - Interactive Engineering Technologies (IET) > > > > Fraunhofer-Institut für Graphische Datenverarbeitung IGD > > Fraunhoferstr. 5 | 64283 Darmstadt | Germany > > Tel +49 6151 155-606 | Fax +49 6151 155-139 > > johannes.mueller-roemer at igd.fraunhofer.de | www.igd.fraunhofer.de > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Apparently Analagous Threads
- [LLVMdev] build failure on mingw gcc 4.9.1
- Extra space in LLVM_DEFINITIONS causes CMake 3.1 to fail
- Extra space in LLVM_DEFINITIONS causes CMake 3.1 to fail
- [LLVMdev] Set up ExecutionEngine according to actual machine capabilities
- ExecutionEngine::runFunction and libffi