• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# sourced to find alternate names for things
2
3source ./configure
4
5if [ -z "$(command -v "$CROSS_COMPILE$CC")" ]
6then
7  echo "No $CROSS_COMPILE$CC found" >&2
8  exit 1
9fi
10
11if [ -z "$SED" ]
12then
13  [ ! -z "$(command -v gsed 2>/dev/null)" ] && SED=gsed || SED=sed
14fi
15
16# Tell linker to do dead code elimination at function level
17if [ "$(uname)" == "Darwin" ]
18then
19  CFLAGS+=" -Wno-deprecated-declarations"
20  : ${LDOPTIMIZE:=-Wl,-dead_strip} ${STRIP:=strip}
21else
22  : ${LDOPTIMIZE:=-Wl,--gc-sections -Wl,--as-needed} ${STRIP:=strip -s -R .note* -R .comment}
23fi
24
25# Disable a pointless warning only clang produces
26[ -n "$("$CROSS_COMPILE$CC" --version | grep -w clang)" ] &&
27  CFLAGS+=" -Wno-string-plus-int -Wno-invalid-source-encoding"
28
29# Address Sanitizer
30if [ -n "$ASAN" ]; then
31  # Turn ASan on and disable most optimization to get more readable backtraces.
32  # (Technically ASAN is just "-fsanitize=address" and the rest is optional.)
33  export CFLAGS="$CFLAGS -fsanitize=address -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls"
34  export NOSTRIP=1
35  # Ignore leaks on exit. TODO
36  export ASAN_OPTIONS="detect_leaks=0"
37  # only do this once
38  unset ASAN
39fi
40
41# Probe number of available processors, and add one.
42: ${CPUS:=$(($(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null)+1))}
43
44# If the build is using gnu tools, make them behave less randomly.
45export LANG=c
46export LC_ALL=C
47