blob: 437bff8cceb8512e305b5d40d2e59cf0a128cdf9 [file] [log] [blame]
#!/bin/bash
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script wraps gccgo. It ensures that:
# 1) "--sysroot" is passed to gccgo when available.
# 2) "-g" is passed to gccgo for compiling Go programs.
# 3) "-marm" is passed to gccgo for arm targets.
# NOTE: DO NOT ADD hardening related flags here.
# Instead, when the time comes, add gccgo support in
# sysroot_wrapper.hardened and delete this wrapper.
SYSROOT_WRAPPER_LOG="/tmp/sysroot_wrapper.error"
main() {
local gccgo_flags=()
if [[ -n "${SYSROOT}" ]] ; then
gccgo_flags+=( "--sysroot=${SYSROOT}" )
else
if [[ ! -f "${SYSROOT_WRAPPER_LOG}" ]]; then
touch "${SYSROOT_WRAPPER_LOG}"
chmod a+w "${SYSROOT_WRAPPER_LOG}"
fi
echo "Invocation with missing SYSROOT: $0 $*" >> "${SYSROOT_WRAPPER_LOG}"
fi
gccgo_flags+=( "-g" )
if [[ "${0##*/}" == arm* ]]; then
gccgo_flags+=( "-marm" )
fi
exec "$0.real" "${gccgo_flags[@]}" "$@"
}
main "$@"