Overview
| Comment: | Better symbol handling |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
c1a5de894bd47d134a5be1b522d31a56 |
| User & Date: | rkeene on 2019-06-05 01:41:08.905 |
| Other Links: | manifest | tags |
Context
|
2019-09-05
| ||
| 02:24 | Updated autoconf macros check-in: 47f89c20cb user: rkeene tags: trunk | |
|
2019-06-05
| ||
| 01:41 | Better symbol handling check-in: c1a5de894b user: rkeene tags: trunk | |
| 00:38 | Minor updates check-in: 6443047afb user: rkeene tags: trunk | |
Changes
Modified build/tcllibc.sh
from [9735996eb3]
to [582b3fb82f].
1 2 3 4 5 6 7 8 9 | #! /usr/bin/env bash inFiles=( ../../tcllib-fossil/modules/tcllibc.tcl ../../tcllib-fossil/modules/md4/md4c.tcl ../../tcllib-fossil/modules/struct/graph_c.tcl ../../tcllib-fossil/modules/base32/base32_c.tcl ../../tcllib-fossil/modules/struct/sets_c.tcl ../../tcllib-fossil/modules/json/jsonc.tcl | > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 | #! /usr/bin/env bash cflags=(-DUSE_TCL_STUBS=1 -fPIC) ldflags=() libs=(-ltclstub8.6) inFiles=( ../../tcllib-fossil/modules/tcllibc.tcl ../../tcllib-fossil/modules/md4/md4c.tcl ../../tcllib-fossil/modules/struct/graph_c.tcl ../../tcllib-fossil/modules/base32/base32_c.tcl ../../tcllib-fossil/modules/struct/sets_c.tcl ../../tcllib-fossil/modules/json/jsonc.tcl |
| ︙ | ︙ | |||
47 48 49 50 51 52 53 |
rm -rf "${outDir}"
mkdir "${outDir}"
for input in "${inFiles[@]}"; do
out="${outDir}/$(basename "${input}" .tcl)"
./tcc-critcl-to-c.tcl --mode direct "${input}" > "${out}.c"
| | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
rm -rf "${outDir}"
mkdir "${outDir}"
for input in "${inFiles[@]}"; do
out="${outDir}/$(basename "${input}" .tcl)"
./tcc-critcl-to-c.tcl --mode direct "${input}" > "${out}.c"
input_cflags=($(awk '/^CLI:/{ gsub(/^CLI:/, ""); print; }' < "${out}.c"))
"${CC:-cc}" "${cflags[@]}" -Dinline= -o "${out}.o" "${input_cflags[@]}" -c "${out}.c" || continue
done
(
cd "${outDir}" || exit 1
cat << \_EOF_ > base.c
#include <tcl.h>
|
| ︙ | ︙ | |||
97 98 99 100 101 102 103 | Tcl_PkgProvide(interp, "tcllibc", "0"); return(TCL_OK); } _EOF_ | | > > > > > > > > > | > > | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
Tcl_PkgProvide(interp, "tcllibc", "0");
return(TCL_OK);
}
_EOF_
"${CC:-cc}" "${cflags[@]}" -o base.o -c base.c
)
cat << \_EOF_ > "${outDir}/version-script"
{
global:
Tcllibc_Init;
local:
*;
};
_EOF_
"${CC:-cc}" "${cflags[@]}" "${ldflags[@]}" -Wl,--version-script,"${outDir}/version-script" -shared -o tcllibc.so "${outDir}"/*.o "${libs[@]}"
"${OBJCOPY:-objcopy}" --keep-global-symbol Tcllibc_Init tcllibc.so
"${OBJCOPY:-objcopy}" --discard-all tcllibc.so
exit 0
|