diff -ur a/go-current/src/make.bash b/go-current/src/make.bash --- a/go-current/src/make.bash Thu May 30 21:26:07 2024 +++ b/go-current/src/make.bash Fri Jun 7 01:22:26 2024 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh # Copyright 2009 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. @@ -78,13 +78,13 @@ set -e -if [[ ! -f run.bash ]]; then +if [ ! -f run.bash ]; then echo 'make.bash must be run from $GOROOT/src' 1>&2 exit 1 fi -if [[ "$GOBUILDTIMELOGFILE" != "" ]]; then - echo $(LC_TIME=C date) start make.bash >"$GOBUILDTIMELOGFILE" +if [ "$GOBUILDTIMELOGFILE" != "" ]; then + echo "$(LC_TIME=C date) start make.bash" >"$GOBUILDTIMELOGFILE" fi # Test for Windows. @@ -114,7 +114,7 @@ # so loop through the possible selinux mount points. for se_mount in /selinux /sys/fs/selinux do - if [[ -d $se_mount && -f $se_mount/booleans/allow_execstack && -x /usr/sbin/selinuxenabled ]] && /usr/sbin/selinuxenabled; then + if [ -d $se_mount ] && [ -f $se_mount/booleans/allow_execstack ] && [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then if ! cat $se_mount/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 " @@ -134,7 +134,7 @@ # Test for debian/kFreeBSD. # cmd/dist will detect kFreeBSD as freebsd/$GOARCH, but we need to # disable cgo manually. -if [[ "$(uname -s)" == "GNU/kFreeBSD" ]]; then +if [ "$(uname -s)" = "GNU/kFreeBSD" ]; then export CGO_ENABLED=0 fi @@ -145,17 +145,17 @@ verbose=false vflag="" -if [[ "$1" == "-v" ]]; then +if [ "$1" = "-v" ]; then verbose=true vflag=-v shift fi goroot_bootstrap_set=${GOROOT_BOOTSTRAP+"true"} -if [[ -z "$GOROOT_BOOTSTRAP" ]]; then +if [ -z "$GOROOT_BOOTSTRAP" ]; then GOROOT_BOOTSTRAP="$HOME/go1.4" for d in sdk/go$bootgo go$bootgo; do - if [[ -d "$HOME/$d" ]]; then + if [ -d "$HOME/$d" ]; then GOROOT_BOOTSTRAP="$HOME/$d" fi done @@ -163,15 +163,16 @@ export GOROOT_BOOTSTRAP nogoenv() { - GO111MODULE=off GOENV=off GOOS= GOARCH= GOEXPERIMENT= GOFLAGS= "$@" + GO111MODULE=off GOENV=off GOOS='' GOARCH='' GOEXPERIMENT='' GOFLAGS='' "$@" } -export GOROOT="$(cd .. && pwd)" -IFS=$'\n'; for go_exe in $(type -ap go); do - if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then - goroot=$(GOROOT= nogoenv "$go_exe" env GOROOT) - if [[ "$goroot" != "$GOROOT" ]]; then - if [[ "$goroot_bootstrap_set" == "true" ]]; then +export GOROOT="${PWD%/*}" +type_a() { IFS=:; for dir in $PATH; do [ -x "$dir/$1" ] && printf '%s\n' "$dir/$1"; done ;} +IFS="$(printf '\n')"; for go_exe in $(type_a go); do + if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then + goroot=$(GOROOT='' nogoenv "$go_exe" env GOROOT) + if [ "$goroot" != "$GOROOT" ]; then + if [ "$goroot_bootstrap_set" = "true" ]; then printf 'WARNING: %s does not exist, found %s from env\n' "$GOROOT_BOOTSTRAP/bin/go" "$go_exe" >&2 printf 'WARNING: set %s as GOROOT_BOOTSTRAP\n' "$goroot" >&2 fi @@ -179,7 +180,7 @@ fi fi done; unset IFS -if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then +if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then echo "ERROR: Cannot find $GOROOT_BOOTSTRAP/bin/go." >&2 echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go $bootgo." >&2 exit 1 @@ -192,7 +193,7 @@ if $verbose; then echo cmd/dist fi -if [[ "$GOROOT_BOOTSTRAP" == "$GOROOT" ]]; then +if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then echo "ERROR: \$GOROOT_BOOTSTRAP must not be set to \$GOROOT" >&2 echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go $bootgo." >&2 exit 1 @@ -202,7 +203,7 @@ # -e doesn't propagate out of eval, so check success by hand. eval $(./cmd/dist/dist env -p || echo FAIL=true) -if [[ "$FAIL" == true ]]; then +if [ "$FAIL" = true ]; then exit 1 fi @@ -210,10 +211,10 @@ echo fi -if [[ "$1" == "--dist-tool" ]]; then +if [ "$1" = "--dist-tool" ]; then # Stop after building dist tool. mkdir -p "$GOTOOLDIR" - if [[ "$2" != "" ]]; then + if [ "$2" != "" ]; then cp cmd/dist/dist "$2" fi mv cmd/dist/dist "$GOTOOLDIR"/dist diff -ur a/go1.4-bootstrap/src/make.bash b/go1.4-bootstrap/src/make.bash --- a/go1.4-bootstrap/src/make.bash Wed Nov 22 02:33:58 2017 +++ b/go1.4-bootstrap/src/make.bash Fri Jun 7 01:22:30 2024 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh # Copyright 2009 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. @@ -80,9 +80,8 @@ # Test for bad SELinux. # On Fedora 16 the selinux filesystem is mounted at /sys/fs/selinux, # so loop through the possible selinux mount points. -for se_mount in /selinux /sys/fs/selinux -do - if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then +for se_mount in /selinux /sys/fs/selinux; do + if [ -d $se_mount ] && [ -f $se_mount/booleans/allow_execstack ] && [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then if ! cat $se_mount/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 " @@ -102,7 +101,7 @@ # Test for debian/kFreeBSD. # cmd/dist will detect kFreeBSD as freebsd/$GOARCH, but we need to # disable cgo manually. -if [ "$(uname -s)" == "GNU/kFreeBSD" ]; then +if [ "$(uname -s)" = "GNU/kFreeBSD" ]; then export CGO_ENABLED=0 fi @@ -113,7 +112,7 @@ echo '# Building C bootstrap tool.' echo cmd/dist -export GOROOT="$(cd .. && pwd)" +export GOROOT="${PWD%/*}" GOROOT_FINAL="${GOROOT_FINAL:-$GOROOT}" DEFGOROOT='-DGOROOT_FINAL="'"$GOROOT_FINAL"'"' @@ -122,12 +121,12 @@ 386) mflag=-m32;; amd64) mflag=-m64;; esac -if [ "$(uname)" == "Darwin" ]; then +if [ "$(uname)" = "Darwin" ]; then # golang.org/issue/5261 mflag="$mflag -mmacosx-version-min=10.6" fi # if gcc does not exist and $CC is not set, try clang if available. -if [ -z "$CC" -a -z "$(type -t gcc)" -a -n "$(type -t clang)" ]; then +if [ -z "$CC" ] && ! command -v gcc >/dev/null && command -v clang; then export CC=clang CXX=clang++ fi ${CC:-gcc} $mflag -O2 -Wall -Werror -o cmd/dist/dist -Icmd/dist "$DEFGOROOT" cmd/dist/*.c @@ -162,7 +161,7 @@ "$GOTOOLDIR"/go_bootstrap clean -i std echo -if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then +if [ "$GOHOSTARCH" != "$GOARCH" ] || [ "$GOHOSTOS" != "$GOOS" ]; then echo "# Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH." # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however, # use the host compiler, CC, from `cmd/dist/dist env` instead.