1#!/bin/sh 2# $NetBSD: mknative-gdb,v 1.15 2020/12/05 21:27:31 christos Exp $ 3# 4# Shell script for generating all the constants needed for a native 5# platform build of src/external/gpl3/gdb 6# 7 8# initialise 9 10_TMPDIR=$2 11_TOP=$3 12_PLATFORM=$4 13_MACHINE_SUBDIR=$5 14_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 15_GDB=external/gpl3/gdb 16 17. $_TOP/tools/gcc/mknative.common 18 19##### gdb/lib/libbfd ##### 20 21get_gdb_libbfd () { 22 local _BFD=$_GDB/lib/libbfd 23 mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR 24 25 { 26 getvars bfd/Makefile \ 27 libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 28 INCLUDES TDEFAULTS 29 } | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk 30 31 for i in bfd-in3.h bfd_stdint.h config.h bfd.h bfdver.h targmatch.h 32 do 33 write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i 34 done 35} 36 37##### gdb/lib/libopcodes ##### 38 39get_gdb_libopcodes () { 40 local _OPCODES=$_GDB/lib/libopcodes 41 mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR 42 43 { 44 getvars opcodes/Makefile \ 45 archdefs BFD_MACHINES libopcodes_la_SOURCES 46 } | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk 47 48 { 49 cat $_TMPDIR/opcodes/config.h 50 } | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h 51} 52 53##### gdb/lib/libiberty ##### 54 55get_gdb_libiberty () { 56 local _IBERTY=$_GDB/lib/libiberty 57 mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR 58 59 getvars libiberty/Makefile \ 60 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 61 | write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk 62 63 write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \ 64 <$_TMPDIR/libiberty/config.h 65} 66 67##### gdb/lib/libreadline ##### 68 69get_gdb_libreadline () { 70 local _READLINE=$_GDB/lib/libreadline 71 mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR 72 73 { 74 getvars readline/readline/Makefile \ 75 CCFLAGS OBJECTS 76 } | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk 77 78 write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \ 79 <$_TMPDIR/readline/readline/config.h 80} 81 82##### gdb/lib/libdecnumber ##### 83 84get_gdb_libdecnumber () { 85 local _DECNUMBER=$_GDB/lib/libdecnumber 86 mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR 87 88 getvars libdecnumber/Makefile libdecnumber_a_OBJS | 89 sed -e s/libdecnumber_a_// | 90 write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk 91 92 write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \ 93 <$_TMPDIR/readline/readline/config.h 94 95 write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \ 96 < $_TMPDIR/libdecnumber/gstdint.h 97} 98 99##### gdb/lib/libgdbsupport ##### 100 101get_gdb_libgdbsupport () { 102 local _GDBSUPPORT=$_GDB/lib/libgdbsupport 103 mkdir -p $_TOP/$_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport 104 105 getvars gdbsupport/Makefile libgdbsupport_a_OBJECTS | 106 sed -e s/libgdbsupport_a_// | 107 write_mk $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/defs.mk 108 109 write_c $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport/config.h \ 110 <$_TMPDIR/gdbsupport/config.h 111} 112 113get_gdb_libctf () { 114 local _CTF=$_GDB/lib/libctf 115 mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR 116 117 getvars libctf/Makefile libctf_la_OBJECTS | 118 sed -e s/libctf_la_// -e 's/\.lo/.o/g' -e s/libctf_la-//g | 119 write_mk $_CTF/arch/$_MACHINE_SUBDIR/defs.mk 120 121 write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ 122 <$_TMPDIR/libctf/config.h 123} 124 125##### gdb/lib/libgnulib ##### 126 127get_gdb_libgnulib () { 128 local _GNULIB=$_GDB/lib/libgnulib 129 mkdir -p $_TOP/$_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/import 130 131 (getvars gnulib/Makefile gl_LIBOBJS | 132 sed -e s/gl_LIB// && 133 getvars gnulib/import/Makefile libgnu_a_OBJECTS | 134 sed -e s/libgnu_a_// -e s@glthread/@@g -e s@malloc/@@g) | 135 write_mk $_GNULIB/arch/$_MACHINE_SUBDIR/defs.mk 136 137 for i in config.h \ 138 import/alloca.h import/ctype.h \ 139 import/dirent.h import/fcntl.h \ 140 import/fnmatch.h import/glob.h \ 141 import/inttypes.h import/limits.h \ 142 import/locale.h import/math.h \ 143 import/signal.h import/stdint.h \ 144 import/stdio.h import/stdlib.h \ 145 import/string.h import/time.h \ 146 import/unistd.h import/wchar.h \ 147 import/wctype.h 148 do 149 write_c $_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/$i \ 150 < $_TMPDIR/gnulib/$i 151 done 152} 153 154##### gdb/lib/libgdb ##### 155 156get_gdb_libgdb () { 157 local _GDBP=$_GDB/lib/libgdb 158 159 { 160 getvars gdb/Makefile \ 161 INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS 162 } | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \ 163 -e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \ 164 -e s@nat/@@g -e s@python/@@g -e s@target/@@g \ 165 -e s@dwarf2/@@g -e s@unittests/@@g \ 166 -e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk 167 168# getvars gdb/gdbserver/Makefile \ 169# INTERNAL_CFLAGS OBS \ 170# | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk 171 172 for i in config.h version.c init.c \ 173 xml-builtin.c jit-reader.h 174 do 175 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \ 176 < $_TMPDIR/gdb/$i 177 done 178 179 180 for f in nm tm xm; do 181 if [ ! -f $_TMPDIR/gdb/$f.h ]; then 182 continue 183 fi 184 ls -l $_TMPDIR/gdb/$f.h | \ 185 sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \ 186 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h 187 done 188 189 local _LIBSIM=$_GDB/lib/libsim 190 case $_MACHINE_SUBDIR in 191 powerpc*) 192 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 193 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 194 <$_TMPDIR/sim/ppc/config.h 195 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \ 196 <$_TMPDIR/sim/ppc/build-config.h 197 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 198 # <$_TMPDIR/sim/common/cconfig.h 199 ;; 200 xxmips*) # Disabled for now 201 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 202 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 203 <$_TMPDIR/sim/mips/config.h 204 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 205 # <$_TMPDIR/sim/common/cconfig.h 206 { 207 getvars sim/mips/Makefile \ 208 LIB_OBJS CONFIG_CFLAGS \ 209 BUILT_SRC_FROM_IGEN IGEN_OBJS 210 } | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk 211 ;; 212 *) 213 ;; 214 esac 215} 216 217# gdb/bin/gdbserver` 218 219get_gdb_bingdbserver () { 220 local _CTF=$_GDB/bin/gdbserver 221 222 if [ ! -f $_CTF/arch/$_MACHINE_SUBDIR/config.h ]; then 223 return 224 fi 225 mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR 226 227 write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ 228 <$_TMPDIR/gdbserver/config.h 229 write_c $_CTF/arch/$_MACHINE_SUBDIR/version.cc \ 230 <$_TMPDIR/gdbserver/version-generated.cc 231} 232 233##### main ##### 234 235case $1 in 236all|gdb) # everything (uses "canadian cross" temp environment) 237 get_gdb_libgdb 238 get_gdb_libgdbsupport 239 get_gdb_libctf 240 get_gdb_libgnulib 241 get_gdb_libbfd 242 get_gdb_libopcodes 243 get_gdb_libiberty 244 get_gdb_libreadline 245 get_gdb_libdecnumber 246 get_gdb_bingdbserver 247 exit 0 248 ;; 249 250*) echo invalid arguments; exit 1;; 251esac 252