mirror of
https://git.hush.is/hush/hush3.git
synced 2025-11-29 00:05:19 -05:00
Only use -rdynamic on debug builds
This commit is contained in:
parent
c5eeb74807
commit
3f50dd988a
@ -9,7 +9,8 @@ echo "Compiling a debug build with --enable-debug..."
|
||||
|
||||
# run correct build script for detected OS
|
||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
CONFIGURE_FLAGS=--enable-debug ./util/build.sh --disable-tests $@
|
||||
# TODO: we only have debug builds on linux for now
|
||||
CONFIGURE_FLAGS=--enable-debug ./util/debug-build.sh --disable-tests $@
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# code from ./util/build.sh needs to be ported to support --disable-tests
|
||||
#./util/build-mac.sh --disable-tests $@
|
||||
|
||||
@ -118,8 +118,7 @@ HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ V=1
|
||||
|
||||
./autogen.sh
|
||||
|
||||
#TODO: only use rdynamic for a debug build
|
||||
CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g -rdynamic'
|
||||
CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g'
|
||||
|
||||
# Build CryptoConditions stuff
|
||||
WD=$PWD
|
||||
|
||||
143
util/debug-build.sh
Executable file
143
util/debug-build.sh
Executable file
@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-2024 The Hush developers
|
||||
# Distributed under the GPLv3 software license, see the accompanying
|
||||
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
# Check if cmake, a new dependency for randomx support, is installed on system and exits if it is not
|
||||
if ! [ -x "$(command -v cmake)" ]; then
|
||||
echo 'Error: cmake is not installed. Install cmake and try again.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [ -x "$(command -v autoreconf)" ]; then
|
||||
echo 'Error: autoconf is not installed. Install autoconf and try again.' >&2
|
||||
echo 'On Debian-like systems: apt install autoconf' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function cmd_pref() {
|
||||
if type -p "$2" > /dev/null; then
|
||||
eval "$1=$2"
|
||||
else
|
||||
eval "$1=$3"
|
||||
fi
|
||||
}
|
||||
cat <<'EOF'
|
||||
.~~~~~~~~~~~~~~~~.
|
||||
{{ Building Hush!! }}
|
||||
`~~~~~~~~~~~~~~~~`
|
||||
\ ^__^
|
||||
\ (@@)\_______
|
||||
(__)\ HUSH )\/\ $
|
||||
z zz ||----w | z |
|
||||
zz zz z || z ||xxx z z|z zz
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
EOF
|
||||
|
||||
# If a g-prefixed version of the command exists, use it preferentially.
|
||||
function gprefix() {
|
||||
cmd_pref "$1" "g$2" "$2"
|
||||
}
|
||||
|
||||
gprefix READLINK readlink
|
||||
cd "$(dirname "$("$READLINK" -f "$0")")/.."
|
||||
|
||||
# Allow user overrides to $MAKE. Typical usage for users who need it:
|
||||
# MAKE=gmake ./util/build.sh -j$(nproc)
|
||||
if [[ -z "${MAKE-}" ]]; then
|
||||
MAKE=make
|
||||
fi
|
||||
|
||||
# Allow overrides to $BUILD and $HOST for porters. Most users will not need it.
|
||||
# BUILD=i686-pc-linux-gnu ./util/build.sh
|
||||
if [[ -z "${BUILD-}" ]]; then
|
||||
BUILD="$(./depends/config.guess)"
|
||||
fi
|
||||
if [[ -z "${HOST-}" ]]; then
|
||||
HOST="$BUILD"
|
||||
fi
|
||||
|
||||
# Allow users to set arbitrary compile flags. Most users will not need this.
|
||||
if [[ -z "${CONFIGURE_FLAGS-}" ]]; then
|
||||
CONFIGURE_FLAGS=""
|
||||
fi
|
||||
|
||||
if [ "x$*" = 'x--help' ]
|
||||
then
|
||||
cat ./util/dragon.txt
|
||||
cat <<EOF
|
||||
Welcome To The Hush Build System, Here Be Dragons!
|
||||
Usage:
|
||||
$0 --help
|
||||
Show this help message and exit.
|
||||
$0 [ --enable-lcov || --disable-tests ] [ --disable-mining ] [ --disable-libs ] [ MAKEARGS... ]
|
||||
Build Hush and most of its transitive dependencies from source. MAKEARGS are applied to both dependencies and Hush itself.
|
||||
If --enable-lcov is passed, Hush is configured to add coverage instrumentation, thus enabling "make cov" to work.
|
||||
If --disable-tests is passed instead, the Hush tests are not built.
|
||||
If --disable-mining is passed, Hush is configured to not build any mining code. It must be passed after the test arguments, if present.
|
||||
It must be passed after the test/mining arguments, if present.
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
# If --enable-lcov is the first argument, enable lcov coverage support:
|
||||
LCOV_ARG=''
|
||||
HARDENING_ARG='--enable-hardening'
|
||||
TEST_ARG=''
|
||||
if [ "x${1:-}" = 'x--enable-lcov' ]
|
||||
then
|
||||
LCOV_ARG='--enable-lcov'
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
shift
|
||||
elif [ "x${1:-}" = 'x--disable-tests' ]
|
||||
then
|
||||
TEST_ARG='--enable-tests=no'
|
||||
shift
|
||||
fi
|
||||
|
||||
# If --disable-mining is the next argument, disable mining code:
|
||||
MINING_ARG=''
|
||||
if [ "x${1:-}" = 'x--disable-mining' ]
|
||||
then
|
||||
MINING_ARG='--enable-mining=no'
|
||||
shift
|
||||
fi
|
||||
|
||||
# Just show the useful info
|
||||
eval "$MAKE" --version | head -n2
|
||||
as --version | head -n1
|
||||
as --version | tail -n1
|
||||
ld -v
|
||||
|
||||
HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ V=1
|
||||
|
||||
./autogen.sh
|
||||
|
||||
CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g -rdynamic'
|
||||
|
||||
# Build CryptoConditions stuff
|
||||
WD=$PWD
|
||||
cd src/cc
|
||||
echo $PWD
|
||||
./makecustom
|
||||
cd $WD
|
||||
|
||||
# Build RandomX
|
||||
cd src/RandomX
|
||||
if [ -d "build" ]
|
||||
then
|
||||
ls -la build/librandomx*
|
||||
else
|
||||
mkdir build && cd build
|
||||
cmake -DARCH=native ..
|
||||
make
|
||||
fi
|
||||
|
||||
cd $WD
|
||||
|
||||
"$MAKE" "$@" V=1
|
||||
Loading…
x
Reference in New Issue
Block a user