diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-05-02 21:57:35 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-05-02 21:57:35 +0000 |
commit | cec9701b510ebcb5cfdf431a5b0dd9c143f1da69 (patch) | |
tree | 86088359f0bc0ae2c22707b9c4847e85266d9540 /libgo/mkruntimeinc.sh | |
parent | 31aa23df38a66c429d08c06a0005eccecc9234dc (diff) |
libgo: refactor code to enumerate stdlib packages
Move the list of libgo, gotool, and check-target packages into
separate files, then read the file contents as part of the build
process on the fly. This is intended to enable other build tooling to
share the canonical list of target packages (avoid duplication).
Reviewed-on: https://go-review.googlesource.com/89515
libgo: revise rules for runtime.inc generation
Refactor code for generating runtime.inc: extract out the relevant
commands and place them in a separate shell script ("mkruntimeinc.sh").
Update rules to avoid generating macros whose names begin with "$",
such as "#define $sinkconst0 0".
Reviewed-on: https://go-review.googlesource.com/85955
From-SVN: r259863
Diffstat (limited to 'libgo/mkruntimeinc.sh')
-rwxr-xr-x | libgo/mkruntimeinc.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libgo/mkruntimeinc.sh b/libgo/mkruntimeinc.sh new file mode 100755 index 00000000000..cd95595c731 --- /dev/null +++ b/libgo/mkruntimeinc.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# Copyright 2018 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Create tmp-runtime.inc from runtime.inc.raw. + +IN=runtime.inc.raw +OUT=tmp-runtime.inc + +rm -f runtime.inc.tmp2 runtime.inc.tmp3 + +# _Complex_lock and _Reader_lock are Go translations of some AIX system +# types and should not be exported back to C +# semt is a Go translation of the C type sem_t; it fails to convert on +# some systems and need not be exported back to C. +# sigset conflicts with system type sigset on AIX, so we need to rename it + +grep -v "#define _" ${IN} | grep -v "#define [cm][01234] " | grep -v "#define empty " | grep -v "#define \\$" > runtime.inc.tmp2 +for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num +do + grep "#define $pattern" ${IN} >> runtime.inc.tmp2 +done +TYPES="_Complex_lock _Reader_lock semt" +for TYPE in $TYPES +do + sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3; + mv runtime.inc.tmp3 runtime.inc.tmp2 +done +sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > ${OUT} +rm -f runtime.inc.tmp2 runtime.inc.tmp3 +exit 0 |