summaryrefslogtreecommitdiff
path: root/src/make.bash
diff options
context:
space:
mode:
authorAdam Langley <agl@golang.org>2009-11-11 15:02:15 -0800
committerAdam Langley <agl@golang.org>2009-11-11 15:02:15 -0800
commitea77fa5a8778d9452280ee5e404f4f24d6e08e2c (patch)
treefb4e98130065d5cf1de522d5b5903a00eb5bb451 /src/make.bash
parent70420a35cf9924047e20ef9626381b1e82400893 (diff)
downloadgo-ea77fa5a8778d9452280ee5e404f4f24d6e08e2c.tar.gz
make.bash: detect and warn about SELinux policy that crashes us.
The default SELinux policy on Fedora 12 (at least) disallows stack pages to be +x. This causes all binaries written by 6g/6l to segfault immedately. The 'true' way to fix this issue is to mark binaries with the correct type. However, that assumes that 6l is going to detect SELinux, figure out the correct type for the current distribution and set the type (without libselinux). For now we'll warn users and point them towards the way to enable execstack for the whole system. http://code.google.com/p/go/issues/detail?id=47 R=rsc CC=golang-dev http://codereview.prom.corp.google.com/1026041
Diffstat (limited to 'src/make.bash')
-rwxr-xr-xsrc/make.bash16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/make.bash b/src/make.bash
index f152a7451..06c1f128c 100755
--- a/src/make.bash
+++ b/src/make.bash
@@ -47,6 +47,22 @@ if ! (cd lib9 && which quietgcc) >/dev/null 2>&1; then
exit 1
fi
+if [ -d /selinux -a -f /selinux/booleans/allow_execstack ] ; then
+ if ! cat /selinux/booleans/allow_execstack | grep -c '^1 1$' >> /dev/null ; then
+ echo "WARNING: the default SELinux policy on, at least, Fedora 12 breaks "
+ echo "Go. You can enable the features that Go needs via the following "
+ echo "command (as root):"
+ echo " # setsebool -P allow_execstack 1"
+ echo
+ echo "Note that this affects your system globally! "
+ echo
+ echo "The build will continue in five seconds in case we "
+ echo "misdiagnosed the issue..."
+
+ sleep 5
+ fi
+fi
+
bash clean.bash
for i in lib9 libbio libmach cmd pkg libcgo cmd/cgo cmd/ebnflint cmd/godoc cmd/gofmt cmd/goyacc cmd/hgpatch