This patch refactors recent changes to move mingw-related functionality to the mingw folder. More renamings to the mingw_ prefix will be done in follow-up commits.
This is the first commit in the second patch series to add DLL import/export implementation to AArch64. Coauthors: Zac Walker <zacwal...@microsoft.com>, Mark Harmstone <m...@harmstone.com> and Ron Riddle <ron.rid...@microsoft.com> Refactored, prepared, and validated by Radek Barton <radek.bar...@microsoft.com> and Evgeny Karpov <evgeny.kar...@microsoft.com> gcc/ChangeLog: * config/aarch64/aarch64-protos.h (mingw_pe_maybe_record_exported_symbol): Move mingw_* declarations to mingw. (mingw_pe_section_type_flags): Likewise. (mingw_pe_unique_section): Likewise. (mingw_pe_encode_section_info): Likewise. * config/aarch64/cygming.h (mingw_pe_asm_named_section): Likewise. (mingw_pe_declare_function_type): Likewise. * config/i386/i386-protos.h (mingw_pe_unique_section): Likewise. (mingw_pe_declare_function_type): Likewise. (mingw_pe_maybe_record_exported_symbol): Likewise. (mingw_pe_encode_section_info): Likewise. (mingw_pe_section_type_flags): Likewise. (mingw_pe_asm_named_section): Likewise. * config/mingw/winnt.h: New file. --- gcc/config/aarch64/aarch64-protos.h | 6 +----- gcc/config/aarch64/cygming.h | 4 ---- gcc/config/i386/i386-protos.h | 8 ++------ gcc/config/mingw/winnt.h | 29 +++++++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 gcc/config/mingw/winnt.h diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 1d3f94c813e..95972556c56 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -24,6 +24,7 @@ #include "input.h" #include "config/arm/aarch-common.h" +#include "config/mingw/winnt.h" /* SYMBOL_SMALL_ABSOLUTE: Generate symbol accesses through high and lo relocs that calculate the base address using a PC @@ -1110,11 +1111,6 @@ extern void aarch64_output_patchable_area (unsigned int, bool); extern void aarch64_adjust_reg_alloc_order (); -extern void mingw_pe_maybe_record_exported_symbol (tree, const char *, int); -extern unsigned int mingw_pe_section_type_flags (tree, const char *, int); -extern void mingw_pe_unique_section (tree, int); -extern void mingw_pe_encode_section_info (tree, rtx, int); - bool aarch64_optimize_mode_switching (aarch64_mode_entity); void aarch64_restore_za (rtx); diff --git a/gcc/config/aarch64/cygming.h b/gcc/config/aarch64/cygming.h index 2e7b01feb76..0d048879311 100644 --- a/gcc/config/aarch64/cygming.h +++ b/gcc/config/aarch64/cygming.h @@ -51,10 +51,6 @@ still needed for compilation. */ #include <stdio.h> #endif -extern void mingw_pe_asm_named_section (const char *, unsigned int, tree); -extern void mingw_pe_declare_function_type (FILE *file, const char *name, - int pub); - #define TARGET_ASM_NAMED_SECTION mingw_pe_asm_named_section /* Select attributes for named sections. */ diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index dbc861fb1ea..96368521380 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ +#include "config/mingw/winnt.h" + /* In i386-common.cc. */ extern bool ix86_handle_option (struct gcc_options *opts, struct gcc_options *opts_set ATTRIBUTE_UNUSED, @@ -295,16 +297,10 @@ extern void ix86_target_macros (void); extern void ix86_register_pragmas (void); /* In winnt.cc */ -extern void mingw_pe_unique_section (tree, int); -extern void mingw_pe_declare_function_type (FILE *, const char *, int); extern void i386_pe_record_external_function (tree, const char *); -extern void mingw_pe_maybe_record_exported_symbol (tree, const char *, int); -extern void mingw_pe_encode_section_info (tree, rtx, int); extern bool i386_pe_binds_local_p (const_tree); extern const char *i386_pe_strip_name_encoding_full (const char *); extern bool i386_pe_valid_dllimport_attribute_p (const_tree); -extern unsigned int mingw_pe_section_type_flags (tree, const char *, int); -extern void mingw_pe_asm_named_section (const char *, unsigned int, tree); extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree, const char *, HOST_WIDE_INT, diff --git a/gcc/config/mingw/winnt.h b/gcc/config/mingw/winnt.h new file mode 100644 index 00000000000..da8445904ce --- /dev/null +++ b/gcc/config/mingw/winnt.h @@ -0,0 +1,29 @@ +/* Subroutines for targets on Windows. +Copyright (C) 2024 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +http://www.gnu.org/licenses/. */ + +#ifndef GCC_MINGW_WINNT_H +#define GCC_MINGW_WINNT_H + +extern void mingw_pe_asm_named_section (const char *, unsigned int, tree); +extern void mingw_pe_declare_function_type (FILE *file, const char *name, + int pub); +extern void mingw_pe_encode_section_info (tree, rtx, int); +extern void mingw_pe_maybe_record_exported_symbol (tree, const char *, int); +extern unsigned int mingw_pe_section_type_flags (tree, const char *, int); +extern void mingw_pe_unique_section (tree, int); + +#endif -- 2.25.1