Can I use MinGW to compile source of Clang using sdk?

15 views
Skip to first unread message

Jack Dale

unread,
Jul 25, 2019, 6:43:44 PM7/25/19
to emscripten-discuss
Because I couldn't make fetch api work, I decided to install a newer version(most recent of 32bit version) of Emscripten, sdk-tag-1.38.31-32bit.I make the installation start using "emsdk install sdk-tag-1.38.31-32bit. It finds the mingw compiler which is on c:\MinGW, but during the building of Clang it gives so many "warnings" and "notes" and for example at %3 it gives an error and says :

 *********************************************
J:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\CrashRecoveryContext.cpp:221:8:
   
case DBG_PRINTEXCEPTION_C:
       
^~~~~~~~~~~~~~~~~~~~
        DISP_E_EXCEPTION
lib
\Support\CMakeFiles\LLVMSupport.dir\build.make:384: recipe for target 'lib/Supp
cpp.obj'
failed
mingw32
-make[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.
[  6%] Built target LLVMMC
[  6%] Built target LLVMMCParser
CMakeFiles\Makefile2:411: recipe for target 'lib/Support/CMakeFiles/LLVMSupport.di
mingw32-make[1]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....
[  6%] Built target LLVMMCDisassembler
[  6%] Built target LLVMObjectYAML
Makefile:150: recipe for target '
all' failed
mingw32-make: *** [all] Error 2
Build failed due to exception!
Working directory: J:/emsdk-master/clang/tag-e1.38.30\build_tag-e1.38.30_mingw_32
Command '
['mingw32-make', '-j3']' returned non-zero exit status 2
Installation failed!


J:\emsdk-master>emsdk install sdk-tag-1.38.30-32bit
Installing SDK '
sdk-tag-1.38.30-32bit'..
Installing tool '
clang-tag-e1.38.30-32bit'..
The contents of file '
https://github.com/kripken/emscripten-fastcomp/archive/1.38.
r
/clang/tag-e1.38.30\src', skipping.
The contents of file '
https://github.com/kripken/emscripten-fastcomp-clang/archive
-master/clang/tag-e1.38.30\src\tools/clang', skipping.
Running CMake: ['
cmake', '-G', 'MinGW Makefiles', '-DCMAKE_BUILD_TYPE=Release', '-
M_TARGETS_TO_BUILD
=X86;JSBackend', '-DLLVM_INCLUDE_EXAMPLES=OFF', '-DCLANG_INCLUDE
_INCLUDE_TESTS
=OFF', '-DLLVM_ENABLE_ASSERTIONS=OFF', 'J:/emsdk-master/clang/tag-e1
CMake Deprecation Warning at CMakeLists.txt:14 (cmake_policy):
 
The OLD behavior for policy CMP0051 will be removed from a future version
  of
CMake.


 
The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated
and that a policy should be set to OLD only under
  specific
short-term circumstances.  Projects should be ported to the NEW
  behavior
and not rely on setting a policy to OLD.




-- Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)
-- Native target architecture is X86
-- Threads enabled.
-- Doxygen disabled.
-- Go bindings disabled.
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH)
-- OCaml bindings disabled.
-- Could NOT find Python module pygments
-- Could NOT find Python module pygments.lexers.c_cpp
-- Could NOT find Python module yaml
-- LLVM host triple: i686-pc-mingw32
-- LLVM default target triple: i686-pc-mingw32
-- Constructing LLVMBuild project information
-- LLVMHello ignored -- Loadable modules not supported on this platform.
-- Targeting X86
-- Targeting JSBackend
-- Clang version: 6.0.1
-- SampleAnalyzerPlugin ignored -- Loadable modules not supported on this platform
-- PrintFunctionNames ignored -- Loadable modules not supported on this platform.
-- AnnotateFunctions ignored -- Loadable modules not supported on this platform.
-- BugpointPasses ignored -- Loadable modules not supported on this platform.
-- Configuring done
-- Generating done
-- Build files have been written to: J:/emsdk-master/clang/tag-e1.38.30/build_tag-
Performing a parallel build with 3 cores.
Running build: ['mingw32-make', '-j3']
[  0%] Built target LLVMDemangle
[  1%] Built target LLVMTableGen
[  1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.obj
[  1%] Built target LLVMBinaryFormat
[  3%] Built target obj.llvm-tblgen
[  3%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryCon
[  3%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.c
J
:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\Chrono.cpp: In function 'tm llv
J:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\Chrono.cpp:36:17: error: '
::loc
   
int Error = ::localtime_s(&Storage, &OurTime);
                 
^~~~~~~~~~~
J
:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\Chrono.cpp:36:17: note: suggest
   
int Error = ::localtime_s(&Storage, &OurTime);
                 
^~~~~~~~~~~
                 localtime
lib
\Support\CMakeFiles\LLVMSupport.dir\build.make:286: recipe for target 'lib/Supp
d
mingw32-make[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.obj] Error
mingw32-make[2]: *** Waiting for unfinished jobs....
[  3%] Built target llvm_vcsrevision_h
J:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\CrashRecoveryContext.cpp: In fu


J:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\CrashRecoveryContext.cpp:221:8:
his scope
   case DBG_PRINTEXCEPTION_C:
        ^~~~~~~~~~~~~~~~~~~~
J:\emsdk-master\clang\tag-e1.38.30\src\lib\Support\CrashRecoveryContext.cpp:221:8:
   case DBG_PRINTEXCEPTION_C:
        ^~~~~~~~~~~~~~~~~~~~
        DISP_E_EXCEPTION
lib\Support\CMakeFiles\LLVMSupport.dir\build.make:384: recipe for target '
lib/Supp
cpp
.obj' failed
mingw32-make[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.
CMakeFiles\Makefile2:411: recipe for target '
lib/Support/CMakeFiles/LLVMSupport.di
mingw32
-make[1]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
mingw32
-make[1]: *** Waiting for unfinished jobs....
[  6%] Built target LLVMMC
[  6%] Built target LLVMMCParser
Makefile:150: recipe for target 'all' failed
mingw32
-make: *** [all] Error 2
Build failed due to exception!
Working directory: J:/emsdk-master/clang/tag-e1.38.30\build_tag-e1.38.30_mingw_32
Command '['mingw32-make', '-j3']' returned non-zero exit status 2
Installation failed!

**************************

On https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html#compiler-toolchain , it says:

***************************
Compiler toolchain
When building Emscripten from source code, whether “manually” or using the SDK, you will need a compiler toolchain:

Windows: Install Visual Studio 2017 and cmake.

Note

SDK users can also install and activate the MinGW compiler toolchain in order to build their own projects:
emsdk install mingw-4.6.2-32bit
emsdk activate mingw-4.6.2-32bit
***************************************

So I think I can use MinGW to build instead of installing Visual Studio 2017.I really don't want to install VS2017 because I need to download service pack 1 to my 32bit Windows 7 to be able to install it, if it doesn't cause problems and if VS2017 can install without problems, then I would have the hope that Emscripten/Clang can be compiled.If installing service pack 1 causes problems and I need to reinstall Windows, I can't imagine reinstalling all the programs,games again, so I really prefer using Mingw instead of Visaul Studio, if it's possible.

The Mingw version I installed is 8.2.0.

How can I solve this build problems and I wonder if it's possible to build witout Visual Studio?



Reply all
Reply to author
Forward
0 new messages