Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2022-07

Wasm/embedded target compilation error

2 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Kostas Michalopoulos

Hi all,

I was trying to use the Wasm/embedded target to port a game i made some time ago[0] to WebAssembly to run inside a browser, but i am getting a bunch of errors that i can't figure out the issue. When compiling with the embedded wasm assembler i get errors like:

SndEmit.pas(171) Error: Wasm32 symbol
RESMAN/home/badsector/.local/bin/fpcTRESOURCEMANAGER_$__$$_GETRESOURCE$ANSISTRING$$TRESOURCE without index value error
SndEmit.pas(171) Error: Wasm32 symbol
SNDDRV/home/badsector/.local/bin/fpcTSOUNDDRIVER_$__$$_SETCHANNELCLIP$LONGINT$TSOUNDCLIP$BYTE without index value error
(more errors)

However i'm not sure if it is the internal assembler issue because using, e.g. llvm-mc-12 i get other errors like:

./Engine/Misc.wat:7340:3: error: symbol
MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT missing .functype
call
MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT ^
./Engine/Misc.wat:7670:3: error: symbol
MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT missing .functype
call
MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT

Trying other assemblers i get other errors too, e.g. wabt/wasa displays a bunch of "stream read error" messages and then fails to link.

Does anyone have any idea about what is wrong?

This is running on Linux with a custom built crosscompiler from latest git (last commit is 6915cd9b269649ca945a4fc952ee7dedb1b38b85 - Thu Jul 21 14:01:50).

I've stripped out the game's sources to only contain the units that i try to compile, you can get it and try to reproduce the issue from here (the archive is ~660KB):

http://runtimeterror.com/pages/badsector/nyan/gimme/papwasm.tar.xz

Just type ./makewasm.sh (the script uses -Awasm here but can be changed to try other assemblers). Note that obviously this wont build since it is missing any wasm-specific functionality since i never got to the point where the "cross platform" units compile properly to start writing the wasm-specific stuff.

Kostas

[0] https://bad-sector.itch.io/post-apocalyptic-petra

Reply by email

Nikolay Nikolov
to Kostas Michalopoulos
Kostas Michalopoulos wrote 58 lines
Hi all, I was trying to use the Wasm/embedded target to port a game i made some time ago[0] to WebAssembly to run inside a browser, but i am getting a bunch of errors that i can't figure out the issue. When compiling with the embedded wasm assembler i get errors like: SndEmit.pas(171) Error: Wasm32 symbol RESMAN/home/badsector/.local/bin/fpcTRESOURCEMANAGER_$__$$_GETRESOURCE$ANSISTRING$$TRESOURCE without index value error SndEmit.pas(171) Error: Wasm32 symbol SNDDRV/home/badsector/.local/bin/fpcTSOUNDDRIVER_$__$$_SETCHANNELCLIP$LONGINT$TSOUNDCLIP$BYTE without index value error (more errors) However i'm not sure if it is the internal assembler issue because using, e.g. llvm-mc-12 i get other errors like: ./Engine/Misc.wat:7340:3: error: symbol MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT missing .functype                 call MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT                 ^ ./Engine/Misc.wat:7670:3: error: symbol MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT missing .functype                 call MISC$_$TSTRINGKEYVALUESET_$__$$_INDEXOFKEY$ANSISTRING$$LONGINT Trying other assemblers i get other errors too, e.g. wabt/wasa displays a bunch of "stream read error" messages and then fails to link. Does anyone have any idea about what is wrong? This is running on Linux with a custom built crosscompiler from latest git (last commit is 6915cd9b269649ca945a4fc952ee7dedb1b38b85 - Thu Jul 21 14:01:50). I've stripped out the game's sources to only contain the units that i try to compile, you can get it and try to reproduce the issue from here (the archive is ~660KB): http://runtimeterror.com/pages/badsector/nyan/gimme/papwasm.tar.xz Just type ./makewasm.sh (the script uses -Awasm here but can be changed to try other assemblers). Note that obviously this wont build since it is missing any wasm-specific functionality since i never got to the point where the "cross platform" units compile properly to start writing the wasm-specific stuff. Kostas [0] https://bad-sector.itch.io/post-apocalyptic-petra

Hi, can you report in the FPC bugtracker, so it's not forgotten?

https://gitlab.com/freepascal.org/fpc/source/-/issues/new

Thanks,

Nikolay

_______________________________________________ fpc-devel maillist  -  https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply by email