286 lines
7.2 KiB
Bash
286 lines
7.2 KiB
Bash
#!/bin/sh
|
|
# $NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp $
|
|
#
|
|
# Shell script for generating all the constants needed for a native
|
|
# platform build of src/external/gpl3/gdb
|
|
#
|
|
|
|
# initialise
|
|
|
|
_TMPDIR=$2
|
|
_TOP=$3
|
|
_PLATFORM=$4
|
|
_MACHINE_SUBDIR=$5
|
|
_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'`
|
|
_GDB=external/gpl3/gdb
|
|
|
|
. $_TOP/tools/gcc/mknative.common
|
|
|
|
##### gdb/lib/libbfd #####
|
|
|
|
get_gdb_libbfd () {
|
|
local _BFD=$_GDB/lib/libbfd
|
|
mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR
|
|
|
|
{
|
|
getvars bfd/Makefile \
|
|
libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
|
|
INCLUDES TDEFAULTS
|
|
} | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
for i in bfd-in3.h config.h bfd.h bfdver.h targmatch.h
|
|
do
|
|
write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i
|
|
done
|
|
}
|
|
|
|
##### gdb/lib/libopcodes #####
|
|
|
|
get_gdb_libopcodes () {
|
|
local _OPCODES=$_GDB/lib/libopcodes
|
|
mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR
|
|
|
|
{
|
|
getvars opcodes/Makefile \
|
|
archdefs BFD_MACHINES libopcodes_la_SOURCES
|
|
} | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
{
|
|
cat $_TMPDIR/opcodes/config.h
|
|
} | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h
|
|
}
|
|
|
|
##### gdb/lib/libiberty #####
|
|
|
|
get_gdb_libiberty () {
|
|
local _IBERTY=$_GDB/lib/libiberty
|
|
mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR
|
|
|
|
getvars libiberty/Makefile \
|
|
ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
|
|
| write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/libiberty/config.h
|
|
}
|
|
|
|
##### gdb/lib/libreadline #####
|
|
|
|
get_gdb_libreadline () {
|
|
local _READLINE=$_GDB/lib/libreadline
|
|
mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR
|
|
|
|
{
|
|
getvars readline/readline/Makefile \
|
|
CCFLAGS OBJECTS
|
|
} | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/readline/readline/config.h
|
|
}
|
|
|
|
##### gdb/lib/libdecnumber #####
|
|
|
|
get_gdb_libdecnumber () {
|
|
local _DECNUMBER=$_GDB/lib/libdecnumber
|
|
mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR
|
|
|
|
getvars libdecnumber/Makefile libdecnumber_a_OBJS |
|
|
sed -e s/libdecnumber_a_//g |
|
|
write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/readline/readline/config.h
|
|
|
|
write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \
|
|
< $_TMPDIR/libdecnumber/gstdint.h
|
|
}
|
|
|
|
##### gdb/lib/libgdbsupport #####
|
|
|
|
get_gdb_libgdbsupport () {
|
|
local _GDBSUPPORT=$_GDB/lib/libgdbsupport
|
|
mkdir -p $_TOP/$_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport
|
|
|
|
getvars gdbsupport/Makefile libgdbsupport_a_OBJECTS |
|
|
sed -e s/libgdbsupport_a_//g |
|
|
write_mk $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport/config.h \
|
|
<$_TMPDIR/gdbsupport/config.h
|
|
}
|
|
|
|
##### gdb/lib/libctf #####
|
|
|
|
get_gdb_libctf () {
|
|
local _CTF=$_GDB/lib/libctf
|
|
mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR
|
|
|
|
getvars libctf/Makefile libctf_la_OBJECTS |
|
|
sed -e s/libctf_la_//g -e 's/\.lo/.o/g' -e s/libctf_la-//g |
|
|
write_mk $_CTF/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/libctf/config.h
|
|
}
|
|
|
|
##### gdb/lib/libbacktrace #####
|
|
|
|
get_gdb_libbacktrace () {
|
|
local _BACKTRACE=$_GDB/lib/libbacktrace
|
|
mkdir -p $_TOP/$_BACKTRACE/arch/$_MACHINE_SUBDIR
|
|
|
|
getvars libbacktrace/Makefile libbacktrace_la_OBJECTS \
|
|
libbacktrace_la_LIBADD |
|
|
sed -e s/libbacktrace_la_//g -e 's/\.lo/.o/g' -e s/libbacktrace_la-//g |
|
|
write_mk $_BACKTRACE/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
write_c $_BACKTRACE/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/libbacktrace/config.h
|
|
write_c $_BACKTRACE/arch/$_MACHINE_SUBDIR/backtrace-supported.h \
|
|
<$_TMPDIR/libbacktrace/backtrace-supported.h
|
|
}
|
|
|
|
##### gdb/lib/libsframe #####
|
|
|
|
get_gdb_libsframe () {
|
|
local _SFRAME=$_GDB/lib/libsframe
|
|
mkdir -p $_TOP/$_SFRAME/arch/$_MACHINE_SUBDIR
|
|
|
|
getvars libsframe/Makefile libsframe_la_OBJECTS |
|
|
sed -e s/libsframe_la_//g -e 's/\.lo/.o/g' -e s/libsframe_la-//g |
|
|
write_mk $_SFRAME/arch/$_MACHINE_SUBDIR/defs.mk
|
|
}
|
|
|
|
##### gdb/lib/libgnulib #####
|
|
|
|
get_gdb_libgnulib () {
|
|
local _GNULIB=$_GDB/lib/libgnulib
|
|
mkdir -p $_TOP/$_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/import/malloc
|
|
|
|
(getvars gnulib/Makefile gl_LIBOBJS |
|
|
sed -e s/gl_LIB//g &&
|
|
getvars gnulib/import/Makefile libgnu_a_OBJECTS |
|
|
sed -e s/libgnu_a-//g -e s@glthread/@@g -e s@malloc/@@g) |
|
|
write_mk $_GNULIB/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
for i in config.h \
|
|
import/alloca.h import/ctype.h \
|
|
import/dirent.h import/fcntl.h \
|
|
import/fnmatch.h import/glob.h \
|
|
import/glob-libc.gl.h \
|
|
import/inttypes.h import/limits.h \
|
|
import/locale.h import/math.h \
|
|
import/malloc/scratch_buffer.gl.h \
|
|
import/signal.h import/stdint.h \
|
|
import/stdio.h import/stdlib.h \
|
|
import/string.h import/time.h \
|
|
import/unistd.h import/wchar.h \
|
|
import/wctype.h
|
|
do
|
|
write_c $_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/$i \
|
|
< $_TMPDIR/gnulib/$i
|
|
done
|
|
}
|
|
|
|
##### gdb/lib/libgdb #####
|
|
|
|
get_gdb_libgdb () {
|
|
local _GDBP=$_GDB/lib/libgdb
|
|
|
|
{
|
|
getvars gdb/Makefile \
|
|
INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS
|
|
} | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \
|
|
-e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \
|
|
-e s@nat/@@g -e s@python/@@g -e s@target/@@g \
|
|
-e s@dwarf2/@@g -e s@unittests/@@g \
|
|
-e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk
|
|
|
|
# getvars gdb/gdbserver/Makefile \
|
|
# INTERNAL_CFLAGS OBS \
|
|
# | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk
|
|
|
|
for i in config.h version.c init.c \
|
|
xml-builtin.c jit-reader.h
|
|
do
|
|
write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \
|
|
< $_TMPDIR/gdb/$i
|
|
done
|
|
|
|
|
|
for f in nm tm xm; do
|
|
if [ ! -f $_TMPDIR/gdb/$f.h ]; then
|
|
continue
|
|
fi
|
|
ls -l $_TMPDIR/gdb/$f.h | \
|
|
sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \
|
|
write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h
|
|
done
|
|
|
|
local _LIBSIM=$_GDB/lib/libsim
|
|
case $_MACHINE_SUBDIR in
|
|
powerpc*)
|
|
mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
|
|
write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/sim/ppc/config.h
|
|
write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \
|
|
<$_TMPDIR/sim/ppc/build-config.h
|
|
#write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
|
|
# <$_TMPDIR/sim/common/cconfig.h
|
|
;;
|
|
xxmips*) # Disabled for now
|
|
mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
|
|
write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/sim/mips/config.h
|
|
#write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
|
|
# <$_TMPDIR/sim/common/cconfig.h
|
|
{
|
|
getvars sim/mips/Makefile \
|
|
LIB_OBJS CONFIG_CFLAGS \
|
|
BUILT_SRC_FROM_IGEN IGEN_OBJS
|
|
} | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# gdb/bin/gdbserver`
|
|
|
|
get_gdb_bingdbserver () {
|
|
local _CTF=$_GDB/bin/gdbserver
|
|
|
|
if [ ! -f $_CTF/arch/$_MACHINE_SUBDIR/config.h ]; then
|
|
return
|
|
fi
|
|
mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR
|
|
|
|
write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \
|
|
<$_TMPDIR/gdbserver/config.h
|
|
write_c $_CTF/arch/$_MACHINE_SUBDIR/version.cc \
|
|
<$_TMPDIR/gdbserver/version-generated.cc
|
|
}
|
|
|
|
##### main #####
|
|
|
|
case $1 in
|
|
all|gdb) # everything (uses "canadian cross" temp environment)
|
|
get_gdb_libgdb
|
|
get_gdb_libgdbsupport
|
|
get_gdb_libctf
|
|
get_gdb_libbacktrace
|
|
get_gdb_libsframe
|
|
get_gdb_libgnulib
|
|
get_gdb_libbfd
|
|
get_gdb_libopcodes
|
|
get_gdb_libiberty
|
|
get_gdb_libreadline
|
|
get_gdb_libdecnumber
|
|
get_gdb_bingdbserver
|
|
exit 0
|
|
;;
|
|
|
|
*) echo invalid arguments; exit 1;;
|
|
esac
|