summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2019-08-27 13:06:02 -0700
committerHaibo Huang <hhb@google.com>2019-08-27 23:10:12 +0000
commit4d64623fc5a88a041fbb0ad5f4ad9d65cb0d4b47 (patch)
treea882a0468efe7183c1458aacfe23a1215da60573
parente5aef6dab4650d0478a7018cc05074df419a7a86 (diff)
downloadgdb-4d64623fc5a88a041fbb0ad5f4ad9d65cb0d4b47.tar.gz
Test: build Change-Id: If722b485870c9fce253237707e8f4d7a106dc215
-rwxr-xr-xbuild-gdb.sh373
-rwxr-xr-xbuild.py54
2 files changed, 0 insertions, 427 deletions
diff --git a/build-gdb.sh b/build-gdb.sh
deleted file mode 100755
index 9ced04671..000000000
--- a/build-gdb.sh
+++ /dev/null
@@ -1,373 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Rebuild the host GDB binaries from sources.
-#
-
-# include common function and variable definitions
-. "$NDK_BUILDTOOLS_PATH/prebuilt-common.sh"
-. "$NDK_BUILDTOOLS_PATH/common-build-host-funcs.sh"
-
-PROGRAM_PARAMETERS=""
-PROGRAM_DESCRIPTION="\
-This program is used to rebuild one or more NDK gdb client programs from
-sources.
-
-By default, the script rebuilds GDB for your host system [$HOST_TAG],
-but you can use --systems=<tag1>,<tag2>,.. to ask binaries that can run on
-several distinct systems. Each <tag> value in the list can be one of the
-following:
-
- linux-x86
- linux-x86_64
- windows
- windows-x86 (equivalent to 'windows')
- windows-x86_64
- darwin-x86
- darwin-x86_64
-
-For example, here's how to rebuild the ARM toolchains on Linux
-for four different systems:
-
- $PROGNAME --toolchain-src-dir=/path/to/toolchain/src \
- --systems=linux-x86,linux-x86_64,windows,windows-x86_64 \
- --arch=arm"
-
-TOOLCHAIN_SRC_DIR=
-register_var_option "--toolchain-src-dir=<path>" TOOLCHAIN_SRC_DIR "Select toolchain source directory"
-
-GDB_VERSION=$DEFAULT_GDB_VERSION
-register_var_option "--gdb-version=<version>" GDB_VERSION "Select GDB version(s)."
-
-BUILD_DIR=
-register_var_option "--build-dir=<path>" BUILD_DIR "Build GDB into directory"
-
-PYTHON_VERSION=$DEFAULT_PYTHON_VERSION
-register_var_option "--python-version=<version>" PYTHON_VERSION "Python version."
-
-PYTHON_BUILD_DIR=
-register_var_option "--python-build-dir=<path>" PYTHON_BUILD_DIR "Python build directory."
-
-NDK_DIR=$ANDROID_NDK_ROOT
-register_var_option "--ndk-dir=<path>" NDK_DIR "Select NDK install directory."
-
-PACKAGE_DIR=
-register_var_option "--package-dir=<path>" PACKAGE_DIR "Package prebuilt tarballs into directory."
-
-ARCHS=$DEFAULT_ARCHS
-register_var_option "--arch=<list>" ARCHS "Build GDB client for these CPU architectures."
-
-bh_register_options
-
-register_jobs_option
-
-extract_parameters "$@"
-
-if [ -n "$PARAMETERS" ]; then
- panic "This script doesn't take parameters, only options. See --help"
-fi
-
-if [ -z "$TOOLCHAIN_SRC_DIR" ]; then
- panic "Please use --toolchain-src-dir=<path> to select toolchain source directory."
-fi
-
-BH_HOST_SYSTEMS=$(commas_to_spaces $BH_HOST_SYSTEMS)
-
-# Sanity check for all GDB versions
-for VERSION in $(commas_to_spaces $GDB_VERSION); do
- GDB_SRCDIR=$TOOLCHAIN_SRC_DIR/gdb/gdb-$VERSION
- if [ ! -d "$GDB_SRCDIR" ]; then
- panic "Missing source directory: $GDB_SRCDIR"
- fi
-done
-
-if [ -z "$BUILD_DIR" ] ; then
- panic "--build-dir is required"
-fi
-
-if [ -z "$PYTHON_BUILD_DIR" ] ; then
- panic "--python-build-dir is required"
-fi
-
-INSTALL_DIR=$BUILD_DIR/install
-BUILD_DIR=$BUILD_DIR/build
-
-bh_setup_build_dir $BUILD_DIR
-
-# Sanity check that we have the right compilers for all hosts
-for SYSTEM in $BH_HOST_SYSTEMS; do
- bh_setup_build_for_host $SYSTEM
-done
-
-# Return the build install directory of a given GDB version
-# $1: host system tag
-# $2: gdb version
-gdb_build_install_dir ()
-{
- echo "$BH_BUILD_DIR/install/$1/gdb-multiarch-$2"
-}
-
-# $1: host system tag
-# $2: gdb version
-gdb_ndk_package_name ()
-{
- echo "gdb-multiarch-$2-$1"
-}
-
-
-# Same as gdb_build_install_dir, but for the final NDK installation
-# directory. Relative to $NDK_DIR.
-# $1: gdb version
-gdb_ndk_install_dir ()
-{
- echo "host-tools/"
-}
-
-python_build_install_dir ()
-{
- echo "$PYTHON_BUILD_DIR/$1/install/host-tools/"
-}
-
-# $1: host system tag
-build_expat ()
-{
- local ARGS
- local SRCDIR=$TOOLCHAIN_SRC_DIR/expat/expat-2.0.1
- local BUILDDIR=$BH_BUILD_DIR/build-expat-2.0.1-$1
- local INSTALLDIR=$BH_BUILD_DIR/install-host-$1
-
- ARGS=" --prefix=$INSTALLDIR"
- ARGS=$ARGS" --disable-shared --enable-static"
- ARGS=$ARGS" --build=$BH_BUILD_CONFIG"
- ARGS=$ARGS" --host=$BH_HOST_CONFIG"
-
- TEXT="$(bh_host_text) expat:"
-
- mkdir -p "$BUILDDIR" && rm -rf "$BUILDDIR"/* &&
- cd "$BUILDDIR" &&
- dump "$TEXT Building"
- run "$SRCDIR"/configure $ARGS &&
- run make -j$NUM_JOBS &&
- run make -j$NUM_JOBS install
-}
-
-# $1: host system tag
-build_lzma ()
-{
- local ARGS
- local SRCDIR=$TOOLCHAIN_SRC_DIR/xz
- local BUILDDIR=$BH_BUILD_DIR/build-xz-$1
- local INSTALLDIR=$BH_BUILD_DIR/install-host-$1
-
- ARGS=" --prefix=$INSTALLDIR"
- ARGS=$ARGS" --disable-shared --enable-static"
- ARGS=$ARGS" --disable-xz --disable-xzdec --disable-lzmadec --disable-scripts --disable-doc"
- ARGS=$ARGS" --build=$BH_BUILD_CONFIG"
- ARGS=$ARGS" --host=$BH_HOST_CONFIG"
-
- TEXT="$(bh_host_text) lzma:"
-
- mkdir -p "$BUILDDIR" && rm -rf "$BUILDDIR"/* &&
- cd "$BUILDDIR" &&
- dump "$TEXT Building"
-
- # HACK: git doesn't keep track of file modification date, so autoconf will sometimes (usually?)
- # want to regenerate itself. Trick it into not doing so by touching all of the source files.
- case "$BH_BUILD_CONFIG" in
- *darwin*)
- # Darwin's touch sucks.
- run find $SRCDIR -exec touch -t 197001010000 {} +
- ;;
-
- *)
- run find $SRCDIR -exec touch -d "`date`" {} +
- ;;
- esac
-
- run "$SRCDIR"/configure $ARGS &&
- run make -j$NUM_JOBS &&
- run make -j$NUM_JOBS install
-}
-
-# $1: host system tag
-# $2: gdb version
-# ${@:3}: target tags
-build_host_gdb ()
-{
- local SRCDIR=$TOOLCHAIN_SRC_DIR/gdb/gdb-$2
- local BUILDDIR=$BH_BUILD_DIR/build-gdb-$1-multiarch-$2
- local INSTALLDIR=$(gdb_build_install_dir $1 $2)
- local ARGS TEXT
-
- if [ ! -f "$SRCDIR/configure" ]; then
- panic "Missing configure script in $SRCDIR"
- fi
-
- bh_setup_host_env
-
- local TARGETS="$(bh_tag_to_config_triplet $1)"
- for ARCH in ${@:3}; do
- TARGETS="$TARGETS,$(bh_tag_to_config_triplet android-$ARCH)"
- done
-
- build_expat $1
- local EXPATPREFIX=$BH_BUILD_DIR/install-host-$1
-
- ARGS=" --prefix=$INSTALLDIR"
- ARGS=$ARGS" --disable-shared"
-
- case "$BH_BUILD_CONFIG" in
- # For some reason, multiarch + darwin doesn't build a gdb binary when
- # --build or --host are specified.
- *darwin*)
- ;;
- *)
- ARGS=$ARGS" --build=$BH_BUILD_CONFIG"
- ARGS=$ARGS" --host=$BH_HOST_CONFIG"
- ;;
- esac
-
- case "$1" in
- *windows)
- # The liblzma build fails when targeting windows32, for some reason.
- ;;
-
- *)
- build_lzma $1
- local LZMAPREFIX=$BH_BUILD_DIR/install-host-$1
- ARGS=$ARGS" --with-lzma"
- ARGS=$ARGS" --with-liblzma-prefix=$LZMAPREFIX"
- ;;
- esac
-
- ARGS=$ARGS" --enable-targets=$TARGETS"
- ARGS=$ARGS" --disable-werror"
- ARGS=$ARGS" --disable-nls"
- ARGS=$ARGS" --disable-docs"
- ARGS=$ARGS" --with-expat"
- ARGS=$ARGS" --with-libexpat-prefix=$EXPATPREFIX"
- ARGS=$ARGS" --without-mpc"
- ARGS=$ARGS" --without-mpfr"
- ARGS=$ARGS" --without-gmp"
- ARGS=$ARGS" --without-cloog"
- ARGS=$ARGS" --without-isl"
- ARGS=$ARGS" --disable-sim"
- ARGS=$ARGS" --enable-gdbserver=no"
- if [ -n "$PYTHON_VERSION" ]; then
- ARGS=$ARGS" --with-python=$(python_build_install_dir $1)/bin/python-config.sh"
- if [ $1 = windows-x86 -o $1 = windows-x86_64 ]; then
- # This is necessary for the Python integration to build.
- CFLAGS=$CFLAGS" -D__USE_MINGW_ANSI_STDIO=1"
- CXXFLAGS=$CXXFLAGS" -D__USE_MINGW_ANSI_STDIO=1"
- fi
- fi
- TEXT="$(bh_host_text) gdb-multiarch-$2:"
-
- mkdir -p "$BUILDDIR" && rm -rf "$BUILDDIR"/* &&
- cd "$BUILDDIR" &&
- dump "$TEXT Building"
- run "$SRCDIR"/configure $ARGS &&
- run make -j$NUM_JOBS &&
- run make -j$NUM_JOBS install
- fail_panic "Failed to configure/make/install gdb"
-}
-
-# Install host GDB binaries and support files to the NDK install dir.
-# $1: host tag
-# $2: gdb version
-# ${@:3}: target tags
-install_host_gdb ()
-{
- local SRCDIR="$(gdb_build_install_dir $1 $2)"
- local DSTDIR="$INSTALL_DIR/$(gdb_ndk_install_dir $1)"
- local PYDIR="$INSTALL_DIR/$(python_ndk_install_dir $1)"
-
- build_host_gdb $@
-
- dump "$(bh_host_text) gdb-multiarch-$2: Installing"
- run copy_directory "$SRCDIR/bin" "$DSTDIR/bin"
- if [ -d "$SRCDIR/share/gdb" ]; then
- run copy_directory "$SRCDIR/share/gdb" "$DSTDIR/share/gdb"
- fi
-
- # build the gdb stub and replace gdb with it. This is done post-install
- # so files are in the correct place when determining the relative path.
-
- dump "$(bh_host_text) Generating gdb-stub..."
- case "$1" in
- windows*)
- GCC_FOR_STUB=${BH_HOST_CONFIG}-gcc
- GCC_FOR_STUB_TARGET=`$GCC_FOR_STUB -dumpmachine`
- if [ "$GCC_FOR_STUB_TARGET" = "i586-mingw32msvc" ]; then
- GCC_FOR_STUB=i686-w64-mingw32-gcc
- dump "Override compiler for gdb-stub: $GCC_FOR_STUB"
- fi
-
- run $NDK_BUILDTOOLS_PATH/build-gdb-stub.sh \
- --gdb-executable-path=${DSTDIR}/bin/gdb.exe \
- --python-prefix-dir=${PYDIR} \
- --mingw-w64-gcc=${GCC_FOR_STUB}
- fail_panic "Failed to build gdb-stub"
- ;;
- *)
- # Generate a script which sets PYTHONHOME
- GDB_PATH=${DSTDIR}/bin/gdb
- mv "$GDB_PATH" "$GDB_PATH"-orig
- cat > "$GDB_PATH" << EOF
-#!/bin/bash
-GDBDIR=\$(cd \$(dirname \$0) && pwd)
-PYTHONHOME="\$GDBDIR/.." "\$GDBDIR/gdb-orig" "\$@"
-EOF
- chmod 755 $GDB_PATH
- ;;
- esac
- dump "$(bh_host_text) Done generating gdb-stub."
-}
-
-# Package host GDB binaries into a tarball
-# $1: host tag
-# $2: gdb version
-# ${@:3}: target tags
-package_host_gdb ()
-{
- local SRCDIR="$(gdb_ndk_install_dir $1)"
- local PACKAGENAME=$(gdb_ndk_package_name $1 $2).tar.bz2
- local PACKAGE="$PACKAGE_DIR/$PACKAGENAME"
-
- dump "$(bh_host_text) $PACKAGENAME: Packaging"
- run pack_archive "$PACKAGE" "$INSTALL_DIR" "$SRCDIR"
- fail_panic "Failed to package GDB!"
-}
-
-GDB_VERSION=$(commas_to_spaces $GDB_VERSION)
-ARCHS=$(commas_to_spaces $ARCHS)
-
-# Let's build this
-for SYSTEM in $BH_HOST_SYSTEMS; do
- bh_setup_build_for_host $SYSTEM
- for VERSION in $GDB_VERSION; do
- install_host_gdb $SYSTEM $VERSION $ARCHS
- done
-done
-
-if [ "$PACKAGE_DIR" ]; then
- for SYSTEM in $BH_HOST_SYSTEMS; do
- bh_setup_build_for_host $SYSTEM
- for VERSION in $GDB_VERSION; do
- bh_do package_host_gdb $SYSTEM $VERSION $ARCHS
- done
- done
-fi
diff --git a/build.py b/build.py
deleted file mode 100755
index 67462537c..000000000
--- a/build.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2015 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-"""Builds GDB for Android."""
-from __future__ import print_function
-
-import os
-import site
-
-site.addsitedir(os.path.join(os.path.dirname(__file__), '../../ndk/build/lib'))
-
-
-import build_support # pylint: disable=import-error,wrong-import-position
-
-
-def main(args):
- # Always build all architectures for gdb, since we're building multiarch
- arches = build_support.ALL_ARCHITECTURES
-
- toolchain_src_arg = '--toolchain-src-dir={}'.format(
- build_support.toolchain_path())
- ndk_dir_arg = '--ndk-dir={}'.format(build_support.ndk_path())
- arch_arg = '--arch={}'.format(','.join(arches))
- systems_arg = f'--systems={build_support.host_to_tag(args.host)}'
-
- build_cmd = [
- 'bash', 'build-gdb.sh', toolchain_src_arg, ndk_dir_arg, arch_arg,
- systems_arg, build_support.jobs_arg(),
- ]
-
- build_cmd.append('--build-dir=' + os.path.join(args.out_dir, 'gdb'))
- build_cmd.append(
- '--python-build-dir=' + os.path.join(args.out_dir, 'python'))
-
- print('Building {} gdb: {}'.format(args.host.value, ' '.join(arches)))
- print(' '.join(build_cmd))
- build_support.build(build_cmd, args, intermediate_package=True)
-
-
-if __name__ == '__main__':
- build_support.run(main)