Skip to content

Building faust fails with MSYS2 MinGW 64-bit when including LLVM backend (make all or make developer) #1160

@jonayoung2003

Description

@jonayoung2003

Hi I have been trying to build faust with msys2 because I would like to use the benchmark tools which are not included when you install faust with the installer. I have followed these instructions to try to build faust with msys2 (MinGW 64-bit on Windows 10). This works if I do the default building of Faust (just by calling make alone as per instructions) and I can see in build/bin a faust.exe file is generated. However, if I try to call make all or make developer the build appears to proceed successfully up until linking the faust.exe file where it fails. Apparently I need to call make all or make developer so I can then follow these instructions to install the benchmark tools I need. I always ensure I call git clean -fdx between builds to make sure any build files are removed before building again (as recommended here). Is this a known issue and is there a workaround? My best guess is that this issue is something to do with the fact that make all or make developer differs from make by compiling and installing the LLVM backend. However, I also noticed that I had to deviate slightly from the msys2 instructions. A call to pacman -S mingw-w64-x86_64-make did not allow me to call make so I had to also call pacman -S make in order to do this. Could this be the cause of the problem?

Below is the output of the build step that fails (seems to be something to do with finding multiple definitions for the same thing):

[ 29%] Linking CXX executable /C/Users/jonay/Documents/Faust/faust/build/bin/faust.exe
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp
p.obj):(.bss$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb0EEclEcE5__nul[_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb
0ELb0EEclEcE5__nul]+0x0): multiple definition of std::__detail::_AnyMatcher<std::__cxx11::regex_traits<char>, false, false, false>::operator()(char) const::__nul '; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb0EEclEcE5__nul[_Z ZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb0EEclEcE5__nul]+0x0): first defined here C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp p.obj):(.bss$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb0EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb 0ELb0ELb0EEclEcE5__nul]+0x0): multiple definition of guard variable for std::__detail::_AnyMatcher<std::__cxx11::regex_traits, false, false, false>::operat
or()(char) const::__nul'; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb
0ELb0ELb0EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb0EEclEcE5__nul]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp
p.obj):(.bss$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb1EEclEcE5__nul[_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb
0ELb1EEclEcE5__nul]+0x0): multiple definition of std::__detail::_AnyMatcher<std::__cxx11::regex_traits<char>, false, false, true>::operator()(char) const::__nul' ; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb1EEclEcE5__nul[_ZZ NKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb1EEclEcE5__nul]+0x0): first defined here C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp p.obj):(.bss$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb1EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb 0ELb0ELb1EEclEcE5__nul]+0x0): multiple definition of guard variable for std::__detail::_AnyMatcher<std::__cxx11::regex_traits, false, false, true>::operato
r()(char) const::__nul'; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0
ELb0ELb1EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb0ELb1EEclEcE5__nul]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp
p.obj):(.bss$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb0EEclEcE5__nul[_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb
1ELb0EEclEcE5__nul]+0x0): multiple definition of std::__detail::_AnyMatcher<std::__cxx11::regex_traits<char>, false, true, false>::operator()(char) const::__nul' ; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb0EEclEcE5__nul[_ZZ NKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb0EEclEcE5__nul]+0x0): first defined here C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp p.obj):(.bss$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb0EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb 0ELb1ELb0EEclEcE5__nul]+0x0): multiple definition of guard variable for std::__detail::_AnyMatcher<std::__cxx11::regex_traits, false, true, false>::operato
r()(char) const::__nul'; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0
ELb1ELb0EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb0EEclEcE5__nul]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp
p.obj):(.bss$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb1EEclEcE5__nul[_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb
1ELb1EEclEcE5__nul]+0x0): multiple definition of std::__detail::_AnyMatcher<std::__cxx11::regex_traits<char>, false, true, true>::operator()(char) const::__nul'; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb1EEclEcE5__nul[_ZZN KSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb1EEclEcE5__nul]+0x0): first defined here C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/lib/libLLVMSPIRVCodeGen.a(SPIRVBuiltins.cp p.obj):(.bss$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb1EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb 0ELb1ELb1EEclEcE5__nul]+0x0): multiple definition of guard variable for std::__detail::_AnyMatcher<std::__cxx11::regex_traits, false, true, true>::operator
()(char) const::__nul'; CMakeFiles/faust.dir/objects.a(sigToGraph.cpp.obj):sigToGraph.cpp:(.data$_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0E
Lb1ELb1EEclEcE5__nul[_ZGVZNKSt8__detail11_AnyMatcherINSt7__cxx1112regex_traitsIcEELb0ELb1ELb1EEclEcE5__nul]+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
make[4]: *** [CMakeFiles/faust.dir/build.make:3533: C:/Users/jonay/Documents/Faust/faust/build/bin/faust.exe] Error 1
make[3]: *** [CMakeFiles/Makefile2:216: CMakeFiles/faust.dir/all] Error 2
make[2]: *** [Makefile:156: all] Error 2
make[2]: Leaving directory '/c/Users/jonay/Documents/Faust/faust/build/faustdir'
make[1]: *** [Makefile:106: all] Error 2
make[1]: Leaving directory '/c/Users/jonay/Documents/Faust/faust/build'
make: *** [Makefile:41: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions