Path: blob/main/sys/contrib/libsodium/dist-build/generate-emscripten-symbols.sh
48260 views
#! /bin/sh12set -e34symbols() {5{6SUMO="$1"7while read symbol standard sumo; do8found="$standard"9if [ "x$SUMO" = "xsumo" ]; then10found="$sumo"11fi12if [ "$found" = "1" ]; then13eval "defined_${symbol}=yes"14else15eval "defined_${symbol}=no"16fi17done < emscripten-symbols.def1819nm /usr/local/lib/libsodium.23.dylib | \20fgrep ' T _' | \21cut -d' ' -f3 | {22while read symbol; do23eval "found=\$defined_${symbol}"24if [ "$found" = "yes" ]; then25echo "$symbol"26elif [ "$found" != "no" ]; then27echo >&228echo "*** [$symbol] was not expected ***" >&229echo >&230exit 131fi32done33}34} | \35sort | \36{37out='"_malloc","_free"'38while read symbol ; do39if [ ! -z "$out" ]; then40out="${out},"41fi42out="${out}\"${symbol}\""43done44echo "[${out}]"45}46}4748out=$(symbols standard)49sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \50mv -f emscripten.sh.tmp emscripten.sh5152out=$(symbols sumo)53sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \54mv -f emscripten.sh.tmp emscripten.sh5556chmod +x emscripten.sh575859