Proton: Build error

Created on 6 Sep 2018  Â·  6Comments  Â·  Source: ValveSoftware/Proton

Getting the following error when running build_proton.sh

Meson encountered an error in file meson.build, line 58, column 0:
Keyword argument fallback must exist and be a string.

The error doesn't really point to the problem and Google search doesn't have any relevant results, that I could find anyway.
Any ideas where to start?

Most helpful comment

Thanks for the help, I never would have figured this all out without your assistance.

Just in case someone else runs into the same issue, I ran the following and changed them all from auto to the posix option (option 1)...

sudo update-alternatives --config x86_64-w64-mingw32-gcc
sudo update-alternatives --config x86_64-w64-mingw32-g++
sudo update-alternatives --config i686-w64-mingw32-gcc
sudo update-alternatives --config i686-w64-mingw32-g++

And it now appears to be building.

All 6 comments

Is this during the DXVK build? What meson version do you have? DXVK requires >=0.43, should be available from backports on Debian 9.

I'm assuming that is where it's failing, the error message is pretty vague and the oupt on the screen from the script is not helpful either.

I'm not finding any package with dxvk in its name, in backports, or anywhere else for that matter...

apt-cache -t stretch-backports search dxvk 
apt-cache -t jessie-backports search dxvk

Both return no results.

Here are the last few lines of the script output when I run it...

$ ./build_proton.sh 
The Meson build system
Version: 0.37.1
Source dir: /home/ctyler/proton/dxvk
Build dir: /home/ctyler/proton/build/dxvk.win32
Build type: cross build
Project name: dxvk
Native c compiler: cc (gcc 6.3.0)
Cross c compiler: i686-w64-mingw32-gcc (gcc 6.3.0)
Native cpp compiler: c++ (gcc 6.3.0)
Cross cpp compiler: i686-w64-mingw32-g++ (gcc 6.3.0)
Host machine cpu family: x86
Host machine cpu: x86
Target machine cpu family: x86
Target machine cpu: x86
Build machine cpu family: x86_64
Build machine cpu: x86_64
Library vulkan-1 found: YES
Library d3d11 found: YES
Library dxgi found: YES
Library d3dcompiler_43 found: YES
Library d3dcompiler_47 found: YES
Program glslangValidator found: YES (/home/ctyler/proton/glslang/bin/glslangValidator)

Meson encountered an error in file meson.build, line 58, column 0:
Keyword argument fallback must exist and be a string.

It's meson version problem, so why not

apt-cache -t stretch-backports search meson

?

Well, that progressed it further, now it's throwing ninja errors...

Found ninja-1.7.2 at /usr/bin/ninja
[4/177] Compiling C++ object 'src/util/src@util@@util@sta/log_log_debug.cpp.obj'.
FAILED: src/util/src@util@@util@sta/log_log_debug.cpp.obj 
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/log_log_debug.cpp.obj' -MF 'src/util/src@util@@util@sta/log_log_debug.cpp.obj.d' -o 'src/util/src@util@@util@sta/log_log_debug.cpp.obj' -c ../../dxvk/src/util/log/log_debug.cpp
In file included from ../../dxvk/src/util/log/log_debug.h:5:0,
                 from ../../dxvk/src/util/log/log_debug.cpp:1:
../../dxvk/src/util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
[5/177] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_buffer_u.h'.
../../dxvk/src/dxvk/shaders/dxvk_clear_buffer_u.comp
[8/177] Compiling C++ object 'src/util/src@util@@util@sta/log_log.cpp.obj'.
FAILED: src/util/src@util@@util@sta/log_log.cpp.obj 
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/log_log.cpp.obj' -MF 'src/util/src@util@@util@sta/log_log.cpp.obj.d' -o 'src/util/src@util@@util@sta/log_log.cpp.obj' -c ../../dxvk/src/util/log/log.cpp
In file included from ../../dxvk/src/util/log/log.cpp:1:0:
../../dxvk/src/util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
../../dxvk/src/util/log/log.cpp: In member function ‘void dxvk::Logger::emitMsg(dxvk::LogLevel, const string&)’:
../../dxvk/src/util/log/log.cpp:49:23: error: ‘mutex’ is not a member of ‘std’
       std::lock_guard<std::mutex> lock(m_mutex);
                       ^~~
../../dxvk/src/util/log/log.cpp:49:33: error: template argument 1 is invalid
       std::lock_guard<std::mutex> lock(m_mutex);
                                 ^
../../dxvk/src/util/log/log.cpp:49:40: error: ‘m_mutex’ was not declared in this scope
       std::lock_guard<std::mutex> lock(m_mutex);
                                        ^~~~~~~
../../dxvk/src/util/log/log.cpp:49:35: warning: unused variable ‘lock’ [-Wunused-variable]
       std::lock_guard<std::mutex> lock(m_mutex);
                                   ^~~~
[10/177] Compiling C++ object 'src/util/src@util@@util@sta/config_config.cpp.obj'.
FAILED: src/util/src@util@@util@sta/config_config.cpp.obj 
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/config_config.cpp.obj' -MF 'src/util/src@util@@util@sta/config_config.cpp.obj.d' -o 'src/util/src@util@@util@sta/config_config.cpp.obj' -c ../../dxvk/src/util/config/config.cpp
In file included from ../../dxvk/src/util/config/config.cpp:7:0:
../../dxvk/src/util/config/../log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
[11/177] Compiling C++ object 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj'.
FAILED: src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj 
i686-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../dxvk/src/spirv -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj' -MF 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj.d' -o 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj' -c ../../dxvk/src/spirv/spirv_code_buffer.cpp
In file included from ../../dxvk/src/spirv/spirv_include.h:3:0,
                 from ../../dxvk/src/spirv/spirv_instruction.h:6,
                 from ../../dxvk/src/spirv/spirv_code_buffer.h:8,
                 from ../../dxvk/src/spirv/spirv_code_buffer.cpp:4:
../../dxvk/src/spirv/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
[12/177] Compiling C++ object 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj'.
FAILED: src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj 
i686-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../dxvk/src/spirv -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj' -MF 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj.d' -o 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj' -c ../../dxvk/src/spirv/spirv_module.cpp
In file included from ../../dxvk/src/spirv/spirv_include.h:3:0,
                 from ../../dxvk/src/spirv/spirv_instruction.h:6,
                 from ../../dxvk/src/spirv/spirv_code_buffer.h:8,
                 from ../../dxvk/src/spirv/spirv_module.h:3,
                 from ../../dxvk/src/spirv/spirv_module.cpp:3:
../../dxvk/src/spirv/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
[13/177] Compiling C++ object 'src/util/src@util@@util@sta/com_com_guid.cpp.obj'.
FAILED: src/util/src@util@@util@sta/com_com_guid.cpp.obj 
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/com_com_guid.cpp.obj' -MF 'src/util/src@util@@util@sta/com_com_guid.cpp.obj.d' -o 'src/util/src@util@@util@sta/com_com_guid.cpp.obj' -c ../../dxvk/src/util/com/com_guid.cpp
In file included from ../../dxvk/src/util/com/../../d3d11/../dxgi/dxgi_include.h:14:0,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_include.h:3,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:3,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxgi/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex    m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_buffer_res.h:4:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_buffer.h:6,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:4,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_memory.h:259:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex                                      m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_framebuffer.h:4:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_constant_state.h:4,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:6,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_renderpass.h:206:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex                      m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query_pool.h:5:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query_tracker.h:3,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_cmdlist.h:12,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_barrier.h:4,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:3,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query.h:191:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_graphics.h:8:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context_state.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:6,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipecompiler.h:49:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex                  m_compilerLock;
          ^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipecompiler.h:50:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
     std::condition_variable     m_compilerCond;
          ^~~~~~~~~~~~~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:10:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_meta_mipgen.h:194:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:11:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_meta_resolve.h:105:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:13:0,
                 from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipemanager.h:104:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex m_mutex;
          ^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:16:0,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:55:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex              m_mutex;
          ^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:56:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
     std::condition_variable m_condOnAdd;
          ^~~~~~~~~~~~~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:57:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
     std::condition_variable m_condOnTake;
          ^~~~~~~~~~~~~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:18:0,
                 from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:57:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex           m_mutex;
          ^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h: In member function ‘dxvk::Rc<T> dxvk::DxvkRecycler<T, N>::retrieveObject()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:23: error: ‘mutex’ is not a member of ‘std’
       std::lock_guard<std::mutex> lock(m_mutex);
                       ^~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:33: error: template argument 1 is invalid
       std::lock_guard<std::mutex> lock(m_mutex);
                                 ^
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:40: error: ‘m_mutex’ was not declared in this scope
       std::lock_guard<std::mutex> lock(m_mutex);
                                        ^~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h: In member function ‘void dxvk::DxvkRecycler<T, N>::returnObject(const dxvk::Rc<T>&)’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:23: error: ‘mutex’ is not a member of ‘std’
       std::lock_guard<std::mutex> lock(m_mutex);
                       ^~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:33: error: template argument 1 is invalid
       std::lock_guard<std::mutex> lock(m_mutex);
                                 ^
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:40: error: ‘m_mutex’ was not declared in this scope
       std::lock_guard<std::mutex> lock(m_mutex);
                                        ^~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7:0,
                 from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: At global scope:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:404:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex                  m_submissionLock;
          ^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: In member function ‘void dxvk::DxvkDevice::lockSubmission()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:347:7: error: ‘m_submissionLock’ was not declared in this scope
       m_submissionLock.lock();
       ^~~~~~~~~~~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: In member function ‘void dxvk::DxvkDevice::unlockSubmission()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:357:7: error: ‘m_submissionLock’ was not declared in this scope
       m_submissionLock.unlock();
       ^~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

That's also mentioned in the DXVK readme.

Thanks for the help, I never would have figured this all out without your assistance.

Just in case someone else runs into the same issue, I ran the following and changed them all from auto to the posix option (option 1)...

sudo update-alternatives --config x86_64-w64-mingw32-gcc
sudo update-alternatives --config x86_64-w64-mingw32-g++
sudo update-alternatives --config i686-w64-mingw32-gcc
sudo update-alternatives --config i686-w64-mingw32-g++

And it now appears to be building.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AwesamLinux picture AwesamLinux  Â·  3Comments

kforney picture kforney  Â·  3Comments

matou68 picture matou68  Â·  3Comments

raikirii picture raikirii  Â·  3Comments

AwesamLinux picture AwesamLinux  Â·  3Comments