]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/libsodium/dist-build/generate-emscripten-symbols.sh
Import riscv DTS files
[FreeBSD/FreeBSD.git] / sys / contrib / libsodium / dist-build / generate-emscripten-symbols.sh
1 #! /bin/sh
2
3 set -e
4
5 symbols() {
6   {
7     SUMO="$1"
8     while read symbol standard sumo; do
9       found="$standard"
10       if [ "x$SUMO" = "xsumo" ]; then
11         found="$sumo"
12       fi
13       if [ "$found" = "1" ]; then
14         eval "defined_${symbol}=yes"
15       else
16         eval "defined_${symbol}=no"
17       fi
18     done < emscripten-symbols.def
19
20     nm /usr/local/lib/libsodium.23.dylib | \
21     fgrep ' T _' | \
22     cut -d' ' -f3 | {
23       while read symbol; do
24         eval "found=\$defined_${symbol}"
25         if [ "$found" = "yes" ]; then
26           echo "$symbol"
27         elif [ "$found" != "no" ]; then
28           echo >&2
29           echo "*** [$symbol] was not expected ***" >&2
30           echo >&2
31           exit 1
32         fi
33       done
34     }
35   } | \
36     sort | \
37     {
38       out='"_malloc","_free"'
39       while read symbol ; do
40         if [ ! -z "$out" ]; then
41           out="${out},"
42         fi
43         out="${out}\"${symbol}\""
44       done
45       echo "[${out}]"
46     }
47 }
48
49 out=$(symbols standard)
50 sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \
51   mv -f emscripten.sh.tmp emscripten.sh
52
53 out=$(symbols sumo)
54 sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \
55   mv -f emscripten.sh.tmp emscripten.sh
56
57 chmod +x emscripten.sh