1#!/bin/sh
2
3# Copyright 2018 The Go Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style
5# license that can be found in the LICENSE file.
6
7# Create tmp-runtime.inc from runtime.inc.raw.
8
9IN=runtime.inc.raw
10OUT=tmp-runtime.inc
11
12rm -f runtime.inc.tmp2 runtime.inc.tmp3
13
14# _Complex_lock and _Reader_lock are Go translations of some AIX system
15# types and should not be exported back to C
16# semt is a Go translation of the C type sem_t; it fails to convert on
17# some systems and need not be exported back to C.
18# sigset conflicts with system type sigset on AIX, so we need to rename it
19
20grep -v "#define _" ${IN} | grep -v "#define [cm][01234] " | grep -v "#define empty " | grep -v "#define \\$" > runtime.inc.tmp2
21for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num
22do
23  grep "#define $pattern" ${IN} >> runtime.inc.tmp2
24done
25TYPES="_Complex_lock _Reader_lock semt"
26for TYPE in $TYPES
27do
28  sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3;
29  mv runtime.inc.tmp3 runtime.inc.tmp2
30done
31sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > ${OUT}
32rm -f runtime.inc.tmp2 runtime.inc.tmp3
33exit 0
34