Skip to content

Instantly share code, notes, and snippets.

@geoff-nixon
Created November 22, 2013 21:49
Show Gist options
  • Save geoff-nixon/7607455 to your computer and use it in GitHub Desktop.
Save geoff-nixon/7607455 to your computer and use it in GitHub Desktop.
xzd/emscripten problem.
#!/bin/sh
echo
echo 'Grab xzd.c.'
echo
echo 'curl -Ls https://gist.github.com/g-nix/7595928/raw/xzd.c > xzd.c'
echo
sleep 2
echo
echo 'A copy of the same file, compressed with xz.'
echo
curl -Ls https://gist.github.com/g-nix/7595928/raw/xzd.c > xzd.c
echo
echo 'curl -Ls https://gist.github.com/g-nix/7606896/raw/xzd.c.xz > xzd.c.xz'
echo
sleep 5
curl -Ls https://gist.github.com/g-nix/7606896/raw/xzd.c.xz > xzd.c.xz
echo
echo 'Compile with clang.'
echo
echo 'clang xzd.c -o xzd'
echo
clang xzd.c -o xzd
sleep 5
echo
echo 'Delete the original C file...'
echo 'rm xzd.c'
rm xzd.c
echo
sleep 3
echo '..and decompress the xz version again like this.'
echo './xzd < xzd.c.xz > xzd.c'
echo
sleep 5
./xzd < xzd.c.xz > xzd.c
echo
echo
echo 'Lets make sure it looks ok...'
sleep 2
echo
echo 'head xzd.c'
echo
head xzd.c
sleep 3
echo
echo
echo '...yep.'
echo
sleep 2
echo 'Now lets try interpreting bitcode with lli...'
sleep 2
echo
echo
echo 'clang -emit-llvm -c xzd.c -o xzd.bc'
clang -emit-llvm -c xzd.c -o xzd.bc
sleep 4
echo
echo 'Delete the original C file again...'
echo 'rm xzd.c'
echo
rm xzd.c
echo 'And try:'
sleep 2
echo
echo 'lli xzd.bc < xzd.c.xz > xzd.c'
echo
lli xzd.bc < xzd.c.xz > xzd.c
sleep 3
echo
echo
echo 'head xzd.c'
head xzd.c
sleep 3
echo
echo
echo '...this works ok too.'
echo
echo
echo "But..."
echo
echo 'emcc xzd.c -o xzd.js'
echo
emcc xzd.c -o xzd.js
sleep 3
echo
rm xzd.c
echo
echo
echo 'node xzd.js < xzd.c.xz > xzd.c'
node xzd.js < xzd.c.xz > xzd.c
echo
echo
sleep 2
echo ':('
echo
rm xzd*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment