configure.nat revision 1.3
1# ; -*- mode: sh ; -*- 2# Copyright (C) 2013-2023 Free Software Foundation, Inc. 3# 4# This file is part of GDB. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 3 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <http://www.gnu.org/licenses/>. 18 19# Variables defined here: 20# 21# NAT_FILE - The header file with definitions for this native target. 22# 23# NATDEPFILES - Source files required for native debugging on this 24# native target. 25# 26# NAT_CDEPS - Dynamic symbols to be exported for libthread_db. 27# 28# LOADLIBES - Libraries against which GDB will be linked for this 29# native target. 30# 31# MH_CFLAGS - Additional CFLAGS for this host. 32# 33# XM_CLIBS - Host-dependent libraries against which GDB will be linked 34# for this native target. 35# 36# HAVE_NATIVE_GCORE_HOST - Whether gcore should be installed on this 37# native target. 38# 39# nat_makefile_frag - Name of the (optional) Makefile fragment file 40# required to build the native target. The 41# fragment is incorporated into the Makefile that 42# configure constructs from Makefile.in. 43# 44# Notes: 45# 46# - To avoid shell expansion of variables, declare them with single 47# quotes. 48# 49# - nat_makefile_frag must contain the full path of the file. 50 51 52# This first case is useful for filling default values for each 53# gdb_host. 54case ${gdb_host} in 55 *linux*) 56 NAT_FILE='config/nm-linux.h' 57 NATDEPFILES='inf-ptrace.o fork-child.o nat/fork-inferior.o \ 58 proc-service.o \ 59 linux-thread-db.o linux-nat.o nat/linux-osdata.o linux-fork.o \ 60 nat/linux-procfs.o nat/linux-ptrace.o nat/linux-waitpid.o \ 61 nat/linux-personality.o nat/linux-namespaces.o' 62 NAT_CDEPS='$(srcdir)/proc-service.list' 63 LOADLIBES='-ldl $(RDYNAMIC)' 64 ;; 65 fbsd*) 66 NATDEPFILES='fork-child.o nat/fork-inferior.o inf-ptrace.o fbsd-nat.o' 67 HAVE_NATIVE_GCORE_HOST=1 68 LOADLIBES='-lkvm' 69 ;; 70 nbsd*) 71 NATDEPFILES='fork-child.o nat/fork-inferior.o nat/netbsd-nat.o \ 72 inf-ptrace.o bsd-kvm.o' 73 LOADLIBES='-lkvm' 74 HAVE_NATIVE_GCORE_HOST=1 75 ;; 76 obsd*) 77 NATDEPFILES='fork-child.o nat/fork-inferior.o inf-ptrace.o' 78 ;; 79 cygwin*) 80 NATDEPFILES='x86-nat.o nat/x86-dregs.o windows-nat.o nat/windows-nat.o' 81 ;; 82 mingw*) 83 NATDEPFILES='x86-nat.o nat/x86-dregs.o windows-nat.o nat/windows-nat.o' 84 ;; 85 aix) 86 NATDEPFILES='nat/fork-inferior.o fork-child.o inf-ptrace.o' 87 ;; 88 darwin) 89 NATDEPFILES='fork-child.o nat/fork-inferior.o darwin-nat.o \ 90 darwin-nat-info.o' 91 ;; 92 sol2) 93 NATDEPFILES='fork-child.o nat/fork-inferior.o \ 94 procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o \ 95 sol-thread.o' 96 HAVE_NATIVE_GCORE_HOST=1 97 ;; 98esac 99 100# This is where we actually filter by host and host CPU. 101case ${gdb_host} in 102 aix) 103 case ${gdb_host_cpu} in 104 powerpc) 105 # Host: IBM PowerPC running AIX aix-thread.o is not 106 # listed in NATDEPFILES as it is pulled in by 107 # configure. 108 NATDEPFILES="${NATDEPFILES} rs6000-aix-nat.o" 109 110 # When compiled with cc, for debugging, this argument 111 # should be passed. We have no idea who our current 112 # compiler is though, so we skip it. 113 # MH_CFLAGS='-bnodelcsect' 114 ;; 115 esac 116 ;; 117 alpha-linux) 118 case ${gdb_host_cpu} in 119 alpha) 120 # Host: Little-endian Alpha running Linux 121 NATDEPFILES="${NATDEPFILES} linux-nat-trad.o alpha-linux-nat.o" 122 # doublest.c currently assumes some properties of FP arithmetic 123 # on the host which require this. 124 MH_CFLAGS='-mieee' 125 ;; 126 esac 127 ;; 128 cygwin) 129 case ${gdb_host_cpu} in 130 i386) 131 # Native config information for GDB on i386 132 # systems running Cygwin. 133 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o" 134 ;; 135 esac 136 ;; 137 cygwin64) 138 case ${gdb_host_cpu} in 139 i386) 140 # Native config information for GDB on amd64 141 # systems running Cygwin. 142 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o amd64-windows-nat.o" 143 ;; 144 esac 145 ;; 146 darwin) 147 case ${gdb_host_cpu} in 148 i386) 149 # Host: IA86 running Darwin 150 NATDEPFILES="${NATDEPFILES} i386-darwin-nat.o x86-nat.o \ 151 nat/x86-dregs.o amd64-nat.o" 152 ;; 153 esac 154 ;; 155 fbsd) 156 case ${gdb_host_cpu} in 157 aarch64) 158 # Host: FreeBSD/aarch64 159 NATDEPFILES="${NATDEPFILES} aarch64-nat.o \ 160 nat/aarch64-hw-point.o aarch64-fbsd-nat.o" 161 LOADLIBES= 162 ;; 163 arm) 164 # Host: FreeBSD/arm 165 NATDEPFILES="${NATDEPFILES} arm-fbsd-nat.o" 166 LOADLIBES= 167 ;; 168 i386) 169 # Host: FreeBSD/i386 170 NATDEPFILES="${NATDEPFILES} x86-nat.o nat/x86-dregs.o \ 171 x86-bsd-nat.o x86-fbsd-nat.o i386-fbsd-nat.o bsd-kvm.o" 172 ;; 173 mips) 174 # Host: FreeBSD/mips 175 NATDEPFILES="${NATDEPFILES} mips-fbsd-nat.o" 176 LOADLIBES= 177 ;; 178 powerpc) 179 # Native config information for GDB on PowerPC 180 # systems running FreeBSD. 181 NATDEPFILES="${NATDEPFILES} ppc-fbsd-nat.o bsd-kvm.o" 182 ;; 183 riscv*) 184 # Host: FreeBSD/riscv 185 NATDEPFILES="${NATDEPFILES} riscv-fbsd-nat.o" 186 ;; 187 sparc) 188 # Host: FreeBSD/sparc64 189 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \ 190 sparc64-fbsd-nat.o bsd-kvm.o" 191 ;; 192 esac 193 ;; 194 fbsd64) 195 case ${gdb_host_cpu} in 196 i386) 197 # Host: FreeBSD/amd64 198 NATDEPFILES="${NATDEPFILES} amd64-nat.o \ 199 amd64-fbsd-nat.o bsd-kvm.o x86-nat.o nat/x86-dregs.o \ 200 x86-bsd-nat.o x86-fbsd-nat.o" 201 ;; 202 esac 203 ;; 204 go32) 205 case ${gdb_host_cpu} in 206 i386) 207 # Host: Intel x86 running DJGPP 208 # We include several header files from config/djgpp 209 MH_CFLAGS='-I$(srcdir)/config/djgpp' 210 NATDEPFILES='go32-nat.o x86-nat.o nat/x86-dregs.o' 211 XM_CLIBS='-ldbg' 212 ;; 213 esac 214 ;; 215 i386gnu) 216 case ${gdb_host_cpu} in 217 i386) 218 # Host: Intel 386 running the GNU Hurd 219 NATDEPFILES='i386-gnu-nat.o gnu-nat.o \ 220 x86-nat.o nat/x86-dregs.o fork-child.o \ 221 nat/fork-inferior.o \ 222 notify_S.o process_reply_S.o msg_reply_S.o \ 223 msg_U.o exc_request_U.o exc_request_S.o' 224 HAVE_NATIVE_GCORE_HOST=1 225 226 NAT_FILE='nm-i386gnu.h' 227 MH_CFLAGS='-D_GNU_SOURCE' 228 229 XM_CLIBS='-lshouldbeinlibc' 230 231 nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn" 232 ;; 233 esac 234 ;; 235 linux) 236 case ${gdb_host_cpu} in 237 aarch64) 238 # Host: AArch64 based machine running GNU/Linux 239 NATDEPFILES="${NATDEPFILES} aarch64-nat.o aarch64-linux-nat.o \ 240 aarch32-linux-nat.o nat/aarch64-hw-point.o \ 241 nat/aarch64-linux-hw-point.o \ 242 nat/aarch64-linux.o \ 243 nat/aarch64-sve-linux-ptrace.o \ 244 nat/aarch64-mte-linux-ptrace.o" 245 ;; 246 arc) 247 # Host: ARC based machine running GNU/Linux 248 NATDEPFILES="${NATDEPFILES} arc-linux-nat.o" 249 ;; 250 arm) 251 # Host: ARM based machine running GNU/Linux 252 NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \ 253 aarch32-linux-nat.o" 254 ;; 255 i386) 256 # Host: Intel 386 running GNU/Linux. 257 NATDEPFILES="${NATDEPFILES} x86-nat.o nat/x86-dregs.o \ 258 i386-linux-nat.o x86-linux-nat.o nat/linux-btrace.o \ 259 nat/x86-linux.o nat/x86-linux-dregs.o" 260 ;; 261 ia64) 262 # Host: Intel IA-64 running GNU/Linux 263 NATDEPFILES="${NATDEPFILES} ia64-linux-nat.o" 264 ;; 265 loongarch) 266 # Host: LoongArch, running GNU/Linux. 267 NATDEPFILES="${NATDEPFILES} loongarch-linux-nat.o linux-nat-trad.o" 268 ;; 269 m32r) 270 # Host: M32R based machine running GNU/Linux 271 NATDEPFILES="${NATDEPFILES} m32r-linux-nat.o" 272 ;; 273 m68k) 274 # Host: Motorola m68k running GNU/Linux. 275 NATDEPFILES="${NATDEPFILES} m68k-linux-nat.o" 276 ;; 277 mips) 278 # Host: Linux/MIPS 279 NATDEPFILES="${NATDEPFILES} linux-nat-trad.o \ 280 mips-linux-nat.o nat/mips-linux-watch.o" 281 ;; 282 or1k) 283 # Host: Linux/OpenRISC 284 NATDEPFILES="${NATDEPFILES} or1k-linux-nat.o" 285 ;; 286 pa) 287 # Host: Hewlett-Packard PA-RISC machine, running Linux 288 NATDEPFILES="${NATDEPFILES} hppa-linux-nat.o" 289 ;; 290 powerpc) 291 # Host: PowerPC, running Linux 292 NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o nat/ppc-linux.o" 293 ;; 294 riscv*) 295 # Host: RISC-V, running Linux 296 NATDEPFILES="${NATDEPFILES} riscv-linux-nat.o \ 297 nat/riscv-linux-tdesc.o" 298 ;; 299 s390) 300 # Host: S390, running Linux 301 NATDEPFILES="${NATDEPFILES} s390-linux-nat.o" 302 ;; 303 sparc) 304 # Host: GNU/Linux SPARC 305 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-linux-nat.o" 306 ;; 307 tilegx) 308 # Host: Tilera TILE-Gx running GNU/Linux. 309 NATDEPFILES="${NATDEPFILES} tilegx-linux-nat.o" 310 NAT_CDEPS= 311 ;; 312 xtensa) 313 # Host: Xtensa, running GNU/Linux. 314 NATDEPFILES="${NATDEPFILES} xtensa-linux-nat.o" 315 ;; 316 esac 317 ;; 318 linux64) 319 case ${gdb_host_cpu} in 320 i386) 321 # Host: GNU/Linux x86-64 322 NATDEPFILES="${NATDEPFILES} x86-nat.o nat/x86-dregs.o \ 323 amd64-nat.o amd64-linux-nat.o x86-linux-nat.o \ 324 nat/linux-btrace.o \ 325 nat/x86-linux.o nat/x86-linux-dregs.o \ 326 nat/amd64-linux-siginfo.o" 327 ;; 328 sparc) 329 # Host: GNU/Linux UltraSPARC 330 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \ 331 sparc64-linux-nat.o" 332 ;; 333 esac 334 ;; 335 mingw) 336 case ${gdb_host_cpu} in 337 i386) 338 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o" 339 ;; 340 esac 341 ;; 342 mingw64) 343 case ${gdb_host_cpu} in 344 i386) 345 NATDEPFILES="${NATDEPFILES} i386-windows-nat.o amd64-windows-nat.o" 346 ;; 347 esac 348 ;; 349 nbsd) 350 case ${gdb_host_cpu} in 351 aarch64) 352 # Host: NetBSD/aarch64 353 NATDEPFILES="${NATDEPFILES} aarch64-netbsd-nat.o" 354 ;; 355 alpha) 356 # Host: NetBSD/alpha 357 NATDEPFILES="${NATDEPFILES} alpha-bsd-nat.o" 358 ;; 359 arm) 360 # Host: NetBSD/arm 361 NATDEPFILES="${NATDEPFILES} arm-netbsd-nat.o" 362 ;; 363 i386) 364 # Host: NetBSD/i386 ELF 365 NATDEPFILES="${NATDEPFILES} x86-nat.o \ 366 nat/x86-dregs.o \ 367 x86-bsd-nat.o i386-bsd-nat.o i386-netbsd-nat.o" 368 ;; 369 m68k) 370 # Host: NetBSD/m68k ELF 371 NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o" 372 ;; 373 mips) 374 # Host: NetBSD/mips 375 NATDEPFILES="${NATDEPFILES} mips-netbsd-nat.o" 376 ;; 377 pa) 378 # Host: NetBSD/hppa 379 NATDEPFILES="${NATDEPFILES} hppa-netbsd-nat.o" 380 ;; 381 powerpc) 382 # Host: NetBSD/powerpc 383 NATDEPFILES="${NATDEPFILES} ppc-netbsd-nat.o" 384 ;; 385 riscv*) 386 # Host: NetBSD/riscv 387 NATDEPFILES="${NATDEPFILES} riscv-netbsd-nat.o" 388 ;; 389 sh) 390 # Host: NetBSD/sh 391 NATDEPFILES="${NATDEPFILES} sh-netbsd-nat.o" 392 ;; 393 sparc) 394 # Host: NetBSD/sparc ELF 395 NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-netbsd-nat.o" 396 ;; 397 vax) 398 # Host: NetBSD/vax ELF 399 NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o" 400 ;; 401 402 esac 403 ;; 404 nbsd64) 405 case ${gdb_host_cpu} in 406 i386) 407 # Host: NetBSD/amd64 408 NATDEPFILES="${NATDEPFILES} amd64-nat.o x86-nat.o \ 409 nat/x86-dregs.o x86-bsd-nat.o amd64-bsd-nat.o amd64-netbsd-nat.o" 410 ;; 411 sparc) 412 # Host: NetBSD/sparc64 413 NATDEPFILES="${NATDEPFILES} sparc64-netbsd-nat.o sparc-nat.o" 414 ;; 415 416 esac 417 ;; 418 nto) 419 case ${gdb_host_cpu} in 420 i386) 421 # Host: Intel 386 running QNX. 422 NATDEPFILES='nto-procfs.o' 423 NAT_FILE='config/nm-nto.h' 424 ;; 425 esac 426 ;; 427 obsd) 428 case ${gdb_host_cpu} in 429 i386) 430 # Host: OpenBSD/i386 ELF 431 NATDEPFILES="${NATDEPFILES} obsd-nat.o x86-bsd-nat.o \ 432 i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o" 433 LOADLIBES='-lkvm' 434 ;; 435 m68k) 436 # Host: OpenBSD/m68k 437 NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o" 438 LOADLIBES='-lkvm' 439 ;; 440 pa) 441 # Host: OpenBSD/hppa 442 NATDEPFILES="${NATDEPFILES} obsd-nat.o hppa-obsd-nat.o" 443 ;; 444 powerpc) 445 # Host: OpenBSD/powerpc 446 NATDEPFILES="${NATDEPFILES} obsd-nat.o ppc-obsd-nat.o bsd-kvm.o" 447 LOADLIBES='-lkvm' 448 ;; 449 vax) 450 # Host: OpenBSD/vax 451 NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o" 452 LOADLIBES='-lkvm' 453 ;; 454 esac 455 ;; 456 obsd64) 457 case ${gdb_host_cpu} in 458 i386) 459 # Host: OpenBSD/amd64 460 NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \ 461 x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o" 462 LOADLIBES='-lkvm' 463 ;; 464 mips) 465 # Host: OpenBSD/mips64 466 NATDEPFILES="${NATDEPFILES} obsd-nat.o mips64-obsd-nat.o" 467 ;; 468 sparc) 469 # Host: OpenBSD/sparc64 470 NATDEPFILES="${NATDEPFILES} obsd-nat.o sparc64-obsd-nat.o \ 471 sparc-nat.o bsd-kvm.o" 472 LOADLIBES='-lkvm' 473 ;; 474 esac 475 ;; 476 ppc64-linux) 477 case ${gdb_host_cpu} in 478 powerpc) 479 # Host: PowerPC64, running Linux 480 XM_CLIBS= 481 NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o nat/ppc-linux.o" 482 ;; 483 esac 484 ;; 485 sol2) 486 case ${gdb_host_cpu} in 487 i386) 488 # Host: Solaris x86_64 489 NATDEPFILES="${NATDEPFILES} \ 490 amd64-nat.o i386-sol2-nat.o" 491 ;; 492 sparc) 493 # Host: Solaris SPARC & UltraSPARC 494 NAT_FILE='nm-sol2.h' 495 NATDEPFILES="${NATDEPFILES} sparc-sol2-nat.o" 496 ;; 497 esac 498 ;; 499esac 500