gdb-static-cross/gdbserver-7.12-static-build.sh
2017-05-25 12:17:28 -04:00

50 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# This software is released under the terms of GPLv2
# This software is released by copyright@mzpqnxow.com
# Please see LICENSE or LICENSE.md for more information on GPLv2
#
# -- Perform a static build of gdbserver (gdb-7.12)
#
# This was designed particularly to demonstrate the way
# that the activate scripts can be used and assumes you sourced
# the appropriate one before running this script. You can use
# them for for toolchains built by the excellent musl-cross-make
# tool:
#
# https://github.com/richfelker/musl-cross-make
#
# It also works fine with the OpenWRT toolchains that are
# available prebuilt:
#
# https://downloads.openwrt.org/snapshots/trunk
#
# The easiest way to make this work without modification is
# to use one of the toolchain activation scripts in this
# repository. Otherwise you will need to set up stuff yourself
# like the path to libstdc++.a, libgcc_eh.a and the --host
# parameter. Hopefully you can figure out how to do this
# manually anyway if you're planning on debugging native
# code on another architecture, but this makes it easier
#
CURDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ "$(basename $CURDIR)" != gdbserver ]; then
echo "You should be in gdb-7.12/gdb/gdbserver when you run this !!"
echo "Exiting..."
exit 1
fi
make clean 2>/dev/null
make distclean 2>/dev/null
# Some toolchains include static libthread_db but MANY do not
# I don't have the need to debug threaded apps so I disable it
# The configure flags do nothing to disable it in my experience
# hence the crude (but clean enough) sed removal of libthread_db
# variables
sed -i -e 's/srv_linux_thread_db=yes//' configure.srv
./configure --host="$TOOLCHAIN_TARGET" --prefix="$SYSTEM_ROOT" CXXFLAGS="-fPIC -static"
make -j gdbserver GDBSERVER_LIBS="$STDCXX_STATIC $GCCEH_STATIC"
file gdbserver