Ah alright, that toolchain file looks a lot simpler (it's under 
"share/cmake" in the SDK download). I'll use that as base for my own cmake 
toolchain file instead. Thanks!

On Thursday, 16 December 2021 at 21:18:46 UTC+1 [email protected] wrote:

> On Thu, Dec 16, 2021 at 5:53 AM Floh <[email protected]> wrote:
>
>> > Unless you plan to run those tools on the web then I think wasi-sdk is 
>> most likely the way to go.   How do you plan to run the binaries BTW? 
>>
>> Currently I'm using wasmtime.
>>
>> I was actually successful to build my shader compiler through wasi-sdk, 
>> and run it through wasmtime, the file system access worked as expected.
>>
>> Installing the wasi-sdk is just downloading and unpacking somewhere (e.g. 
>> no env-variables or search path updating needed), and then I created a 
>> cmake toolchain file which looks a lot like my Emscripten toolchain file, 
>> but with all the Emscripten-specific parts removed:
>>
>>
>> https://github.com/floooh/fips/blob/master/cmake-toolchains/wasisdk.toolchain.cmake
>>
>
> FYI wasi-sdk includes a cmake toolchain fail upstream:  
> https://github.com/WebAssembly/wasi-sdk/blob/main/wasi-sdk.cmake
>
> Maybe we forgot to include it in the download?   But it should be usable I 
> think.
>
>
>> The only problem (vs the Emscripten SDK) was that the wasi-sdk doesn't 
>> come with pthread headers/stubs, so I had to tinker a bit with the 
>> glslangValidator source code (which for some reason needs thread-local data 
>> and mutexes, but then doesn't actually spawn any threads).
>>
>> The popen() calls (to run native Metal or D3D shader compiler 
>> executables) simply seem to fail at runtime (which I'm already handling in 
>> my code).
>>
>> All in all pretty smooth sailing, at the moment it's just an experiment 
>> though, but a promising one :)
>>
>>
>> On Tuesday, 14 December 2021 at 23:41:10 UTC+1 [email protected] wrote:
>>
>>> On Tue, Dec 14, 2021 at 9:28 AM Floh <[email protected]> wrote:
>>>
>>>> Oki doki, thanks for the clarification. I just wanted to check if I'm 
>>>> missing something, using the wasi-sdk makes sense in that case.
>>>>
>>>> Maybe my use case helps a bit to prioritize "proper" WASI support a bit 
>>>> :)
>>>>
>>>> I basically want to replace native command line tools (in my case: a 
>>>> shader compiler built out of the the Khronos GLSL compiler, SPIRVTools and 
>>>> SPIRVCross) with a WASI version, because right now I need to build this 
>>>> tool in 4 variants (Windows x86_64, Linux x86_64, macOS x86_64 and macOS 
>>>> arm64) and then "distribute" the binaries through a git repository. My 
>>>> plan 
>>>> is to replace this with a single WASI binary (building on the target 
>>>> machine is also not an option because these are complex C++ dependencies 
>>>> which can take up to 15 minutes to build).
>>>>
>>>
>>> Unless you plan to run those tools on the web then I think wasi-sdk is 
>>> most likely the way to go.   How do you plan to run the binaries BTW? 
>>>  
>>>
>>>>
>>>> One missing piece in the WASI API is popen() support though. The shader 
>>>> compiler optionally needs to run the proprietaty D3D and Metal shader 
>>>> compilers to generate shader binary blobs. Not sure yet how I'll tackle 
>>>> that eventually, but a WASI executable which just generates shader source 
>>>> code (not binary blobs) would be a good start nonetheless.
>>>>
>>>> Cheers!
>>>> -Floh.
>>>>
>>>> On Tuesday, 14 December 2021 at 17:43:10 UTC+1 [email protected] wrote:
>>>>
>>>>> The standalone/wasi support in emscripten is very basic and doesn't 
>>>>> have full fileystem support yet.   I would certainly recommend using 
>>>>> wasi-sdk if you want to run something on wasmtime.
>>>>>
>>>>> If I ever get around to landing this PR then a lot more of the FS 
>>>>> stuff might start working: 
>>>>> https://github.com/emscripten-core/emscripten/pull/12704.   But this 
>>>>> has not been a priority recently.   The interesting part for me would be 
>>>>> that it might allow existing WASI applications to be run in the JS glue 
>>>>> code.  i.e. take a pre-built wasi module and run `emcc --post-link` to 
>>>>> run 
>>>>> on the web. 
>>>>>
>>>>> On Tue, Dec 14, 2021 at 6:45 AM Floh <[email protected]> wrote:
>>>>>
>>>>>> I'm currently tinkering with Emscripten's WASI output and can't get 
>>>>>> filesystem access to work. In short, everything compiles, but then when 
>>>>>> running via:
>>>>>>
>>>>>> wasmtime --dir . bla.wasm
>>>>>>
>>>>>> ...all filesystem operations fail.
>>>>>>
>>>>>> When compiling with the clang included in the wasi-sdk it works as 
>>>>>> expected. Is this something that can be easily fixed or worked around on 
>>>>>> my 
>>>>>> side, or should I switch to the wasi-sdk instead?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "emscripten-discuss" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/527adec2-ee4d-44f3-a783-ce901632c30cn%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/527adec2-ee4d-44f3-a783-ce901632c30cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "emscripten-discuss" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/emscripten-discuss/17b87056-ad33-404a-850b-141028b20f43n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/emscripten-discuss/17b87056-ad33-404a-850b-141028b20f43n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/emscripten-discuss/484d2d4a-fd79-42a5-b9f7-90cc39b5cce8n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/emscripten-discuss/484d2d4a-fd79-42a5-b9f7-90cc39b5cce8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/d2801f9f-b086-4a97-afc2-a062acdfc0a8n%40googlegroups.com.

Reply via email to