annotate libgo/mkruntimeinc.sh @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 #!/bin/sh
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 # Copyright 2018 The Go Authors. All rights reserved.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 # Use of this source code is governed by a BSD-style
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 # license that can be found in the LICENSE file.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 # Create tmp-runtime.inc from runtime.inc.raw.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 IN=runtime.inc.raw
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 OUT=tmp-runtime.inc
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 rm -f runtime.inc.tmp2 runtime.inc.tmp3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 # _Complex_lock and _Reader_lock are Go translations of some AIX system
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 # types and should not be exported back to C
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 # semt is a Go translation of the C type sem_t; it fails to convert on
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 # some systems and need not be exported back to C.
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
18 # sigset conflicts with system type sigset on AIX, so we need to rename it.
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
19 # boundsError has a field name that is a C keyword, and we don't need it.
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 grep -v "#define _" ${IN} | grep -v "#define [cm][01234] " | grep -v "#define empty " | grep -v "#define \\$" > runtime.inc.tmp2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 do
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 grep "#define $pattern" ${IN} >> runtime.inc.tmp2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 done
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
26 TYPES="_Complex_lock _Reader_lock semt boundsError"
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 for TYPE in $TYPES
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 do
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 mv runtime.inc.tmp3 runtime.inc.tmp2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 done
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
32 sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > runtime.inc.tmp3
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
33 mv runtime.inc.tmp3 runtime.inc.tmp2
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
34
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
35 # Make all the fields of type structs const.
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
36 sed -e '/struct .*type {/,/^}/ s/ \(.*;\)/ const \1/' < runtime.inc.tmp2 > runtime.inc.tmp3
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
37 mv -f runtime.inc.tmp3 ${OUT}
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
38
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 rm -f runtime.inc.tmp2 runtime.inc.tmp3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 exit 0