]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
lto, Darwin: Fix offload section names.
authorIain Sandoe <iain@sandoe.co.uk>
Tue, 16 Jan 2024 08:45:26 +0000 (08:45 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Thu, 18 Jan 2024 14:02:19 +0000 (14:02 +0000)
Currently, these section names have wrong syntax for Mach-O.
Although they were added some time ago; recently added tests are
now emitting them leading to new fails on Darwin.

This adds a Mach-O variant for each.

gcc/ChangeLog:

* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
versions when the object format is Mach-O.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/lto-section-names.h

index a743deb4efb0ca6679101c6c1f8aa4f1d70510b3..1cdadf36ec018a90f402c067e7e6d77d0eca6d87 100644 (file)
@@ -25,7 +25,11 @@ along with GCC; see the file COPYING3.  If not see
    name for the functions and static_initializers.  For other types of
    sections a '.' and the section type are appended.  */
 #define LTO_SECTION_NAME_PREFIX ".gnu.lto_"
+#if OBJECT_FORMAT_MACHO
+#define OFFLOAD_SECTION_NAME_PREFIX "__GNU_OFFLD_LTO,"
+#else
 #define OFFLOAD_SECTION_NAME_PREFIX ".gnu.offload_lto_"
+#endif
 
 /* Can be either OFFLOAD_SECTION_NAME_PREFIX when we stream IR for offload
    compiler, or LTO_SECTION_NAME_PREFIX for LTO case.  */
@@ -35,8 +39,14 @@ extern const char *section_name_prefix;
 
 #define LTO_SEGMENT_NAME "__GNU_LTO"
 
+#if OBJECT_FORMAT_MACHO
+#define OFFLOAD_VAR_TABLE_SECTION_NAME "__GNU_OFFLOAD,__vars"
+#define OFFLOAD_FUNC_TABLE_SECTION_NAME "__GNU_OFFLOAD,__funcs"
+#define OFFLOAD_IND_FUNC_TABLE_SECTION_NAME "__GNU_OFFLOAD,__ind_fns"
+#else
 #define OFFLOAD_VAR_TABLE_SECTION_NAME ".gnu.offload_vars"
 #define OFFLOAD_FUNC_TABLE_SECTION_NAME ".gnu.offload_funcs"
 #define OFFLOAD_IND_FUNC_TABLE_SECTION_NAME ".gnu.offload_ind_funcs"
+#endif
 
 #endif /* GCC_LTO_SECTION_NAMES_H */