d: Fix #error You must define PREFERRED_DEBUGGING_TYPE if DWARF is not supported
commitd5ad6f8415171798adaff5787400505ce9882144
authorIain Buclaw <ibuclaw@gdcproject.org>
Tue, 16 Aug 2022 14:18:02 +0000 (16 16:18 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Fri, 2 Sep 2022 20:20:26 +0000 (2 22:20 +0200)
treef317623f379959fa1fda7c065704d3ba327fccdf
parentbb9d434404b559a11bd2f85f0ce8085c77b8c4c8
d: Fix #error You must define PREFERRED_DEBUGGING_TYPE if DWARF is not supported

This moves all D front-end specific target definitions out of the main
target headers, and into its own header that is included by tm_d.h
instead of pulling in the same headers as tm_p.h.

This fixes the build on target configurations that pull in the default D
language target hooks, and subsequently trigger an error because the
definition of PREFERRED_DEBUGGING_TYPE is behind tm.h, the one header
that is avoided from being included in default-d.cc.

PR d/105659

gcc/ChangeLog:

* config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
* config/aarch64/aarch64-d.cc: Include tm_d.h.
* config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
config/aarch64/aarch64-d.h.
(aarch64_d_register_target_info): Likewise.
* config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
tm_p.h.
* config/arm/arm-protos.h (arm_d_target_versions): Move to
config/arm/arm-d.h.
(arm_d_register_target_info): Likewise.
* config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/default-d.cc: Remove memmodel.h include.
* config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
* config/glibc-d.cc: Likewise.
* config/i386/i386-d.cc: Include tm_d.h.
* config/i386/i386-protos.h (ix86_d_target_versions): Move to
config/i386/i386-d.h.
(ix86_d_register_target_info): Likewise.
(ix86_d_has_stdcall_convention): Likewise.
* config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
(TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
* config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
* config/mips/mips-d.cc: Include tm_d.h.
* config/mips/mips-protos.h (mips_d_target_versions): Move to
config/mips/mips-d.h.
(mips_d_register_target_info): Likewise.
* config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
* config/openbsd-d.cc: Likewise.
* config/pa/pa-d.cc: Include tm_d.h.
* config/pa/pa-protos.h (pa_d_target_versions): Move to
config/pa/pa-d.h.
(pa_d_register_target_info): Likewise.
* config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/riscv/riscv-d.cc: Include tm_d.h.
* config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
config/riscv/riscv-d.h.
(riscv_d_register_target_info): Likewise.
* config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/rs6000/rs6000-d.cc: Include tm_d.h.
* config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
config/rs6000/rs6000-d.h.
(rs6000_d_register_target_info): Likewise.
* config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
(TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
* config/s390/s390-d.cc: Include tm_d.h.
* config/s390/s390-protos.h (s390_d_target_versions): Move to
config/s390/s390-d.h.
(s390_d_register_target_info): Likewise.
* config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
* config/sparc/sparc-d.cc: Include tm_d.h.
* config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
config/sparc/sparc-d.h.
(sparc_d_register_target_info): Likewise.
* config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
(TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
* configure: Regenerate.
* configure.ac (tm_d_file): Remove defaults.h.
(tm_d_include_list): Remove options.h and insn-constants.h.
* config/aarch64/aarch64-d.h: New file.
* config/arm/arm-d.h: New file.
* config/i386/i386-d.h: New file.
* config/mips/mips-d.h: New file.
* config/pa/pa-d.h: New file.
* config/riscv/riscv-d.h: New file.
* config/rs6000/rs6000-d.h: New file.
* config/s390/s390-d.h: New file.
* config/sparc/sparc-d.h: New file.
46 files changed:
gcc/config.gcc
gcc/config/aarch64/aarch64-d.cc
gcc/config/aarch64/aarch64-d.h [new file with mode: 0644]
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.h
gcc/config/arm/arm-d.cc
gcc/config/arm/arm-d.h [new file with mode: 0644]
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.h
gcc/config/default-d.cc
gcc/config/freebsd-d.cc
gcc/config/glibc-d.cc
gcc/config/i386/i386-d.cc
gcc/config/i386/i386-d.h [new file with mode: 0644]
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.h
gcc/config/i386/winnt-d.cc
gcc/config/mips/mips-d.cc
gcc/config/mips/mips-d.h [new file with mode: 0644]
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.h
gcc/config/netbsd-d.cc
gcc/config/openbsd-d.cc
gcc/config/pa/pa-d.cc
gcc/config/pa/pa-d.h [new file with mode: 0644]
gcc/config/pa/pa-protos.h
gcc/config/pa/pa.h
gcc/config/riscv/riscv-d.cc
gcc/config/riscv/riscv-d.h [new file with mode: 0644]
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv.h
gcc/config/rs6000/rs6000-d.cc
gcc/config/rs6000/rs6000-d.h [new file with mode: 0644]
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.h
gcc/config/s390/s390-d.cc
gcc/config/s390/s390-d.h [new file with mode: 0644]
gcc/config/s390/s390-protos.h
gcc/config/s390/s390.h
gcc/config/sol2-d.cc
gcc/config/sparc/sparc-d.cc
gcc/config/sparc/sparc-d.h [new file with mode: 0644]
gcc/config/sparc/sparc-protos.h
gcc/config/sparc/sparc.h
gcc/configure
gcc/configure.ac