About supporting EMScripten

cbleser udefranette at gmail.com
Tue Sep 1 13:18:15 UTC 2020

On Monday, 31 August 2020 at 08:31:11 UTC, Sebastiaan Koppe wrote:
> On Saturday, 29 August 2020 at 12:33:08 UTC, cbleser wrote:
>> Thank you for the instruction.
>> I tried to compile wasm-druntime. But I run into some problems 
>> inside the I following error.
>> CMake Error at CMakeLists.txt:227 (list):
>>   list sub-command REMOVE_ITEM requires two or more arguments.
>> I have made a repo on
>> https://github.com/tagion/wasm_druntime.git
>> Which should run the build like this:
>> ```
>> make subdate
>> make all
>> ```
>> I am not sure of I have the correct branch?
> It seems you don't have the right version of 
> ldc/druntime/phobos. Please checkout 
> https://github.com/skoppe/ldc/commit/828926064c52eba905d9bbbf9d4d57f64a2cd267

Hi Sebastiaan.
Thank you for you input. But still run into another problem.

I corrected the branch now it compiles but it does not link.

The test can be found here.

I have tried ldc-build-runtime with both ninja and make nut the 
result is the same.

Used ldc-build-runtime
cd /tmp/wasm_druntime/ldc/runtime; ldc-build-runtime  
CMAKE_TOOLCHAIN_FILE=/tmp/wasm_druntime/wasi-sdk-8.0/share/cmake/wasi-sdk.cmake WASI_SDK_PREFIX=/tmp/wasm_druntime/wasi-sdk-8.0 BUILD_SHARED_LIBS=OFF

--- cut ---
Error: unrecognized file extension obj
make[2]: *** [CMakeFiles/druntime-ldc.dir/build.make:1292: 
lib/libdruntime-ldc.a] Error 1
make[2]: Leaving directory 
make[1]: *** [CMakeFiles/Makefile2:265: 
CMakeFiles/druntime-ldc.dir/all] Error 2
make[1]: Leaving directory 
make: *** [Makefile:130: all] Error 2
--- cut --

The compiler I use is.
ldc2 --version
LDC - the LLVM D compiler (1.20.1):
   based on DMD v2.090.1 and LLVM 10.0.0
   built with LDC - the LLVM D compiler (1.20.1)
   Default target: x86_64-pc-linux-gnu
   Host CPU: skylake
   http://dlang.org - http://wiki.dlang.org/LDC

   Registered Targets:
     aarch64    - AArch64 (little endian)
     aarch64_32 - AArch64 (little endian ILP32)
     aarch64_be - AArch64 (big endian)
     amdgcn     - AMD GCN GPUs
     arm        - ARM
     arm64      - ARM64 (little endian)
     arm64_32   - ARM64 (little endian ILP32)
     armeb      - ARM (big endian)
     avr        - Atmel AVR Microcontroller
     bpf        - BPF (host endian)
     bpfeb      - BPF (big endian)
     bpfel      - BPF (little endian)
     hexagon    - Hexagon
     lanai      - Lanai
     mips       - MIPS (32-bit big endian)
     mips64     - MIPS (64-bit big endian)
     mips64el   - MIPS (64-bit little endian)
     mipsel     - MIPS (32-bit little endian)
     msp430     - MSP430 [experimental]
     nvptx      - NVIDIA PTX 32-bit
     nvptx64    - NVIDIA PTX 64-bit
     ppc32      - PowerPC 32
     ppc64      - PowerPC 64
     ppc64le    - PowerPC 64 LE
     r600       - AMD GPUs HD2XXX-HD6XXX
     riscv32    - 32-bit RISC-V
     riscv64    - 64-bit RISC-V
     sparc      - Sparc
     sparcel    - Sparc LE
     sparcv9    - Sparc V9
     systemz    - SystemZ
     thumb      - Thumb
     thumbeb    - Thumb (big endian)
     wasm32     - WebAssembly 32-bit
     wasm64     - WebAssembly 64-bit
     x86        - 32-bit X86: Pentium-Pro and above
     x86-64     - 64-bit X86: EM64T and AMD64
     xcore      - XCore

I checked the .obj file and they are the correct format

WebAssembly (wasm) binary module version 0x1 (MVP)

And wasm2was list looks correct.

Maybe I have the wrong compiler or can I use another linker?

More information about the digitalmars-d-ldc mailing list