Hi Thomas,

> On 29 Feb 2024, at 14:37, Thomas Schwinge <tschwi...@baylibre.com> wrote:

> On 2024-01-16T15:00:16+0000, Iain Sandoe <iains....@gmail.com> wrote:
>> 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/lto-section-names.h | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>> 
>> diff --git a/gcc/lto-section-names.h b/gcc/lto-section-names.h
>> index a743deb4efb..1cdadf36ec0 100644
>> --- a/gcc/lto-section-names.h
>> +++ b/gcc/lto-section-names.h
>> @@ -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 */
> 
> Just to note that, per my understanding, this will require corresponding
> changes elsewhere, once you attempt to actually enable offloading
> compilation for Darwin (which -- ;-) I suspect -- is not on your agenda
> right now):

It is disappointing, but adding offloading to Darwin seems to be out of reach 
at the moment.

AFAIK, we have no support for NVidia after macOS 10.13 and the AMD units fitted 
to new(ish)
boxes are high-end graphics cards (when last I discussed with Andrew, we could 
not conclude
whether they would be handled usefully).

Adding arbitrary extension cards is (technically) feasible to some of the 
2019-era server-style
machines - but that would still need approved and signed kernel drivers.  I 
have not looked into
whether the “studio” Arm64 machine might support such additions (the 
constraints on kernel-
side addtions would surely be even more strict on the newer OS versions).

So, indeed (for now at least) sadly, this is not even on the distant horizon :-(

Iain

> 
>    $ git grep --cached -F .gnu.offload_
>    gcc/config/gcn/mkoffload.cc:      if (sscanf (buf, " .section 
> .gnu.offload_vars%c", &dummy) > 0)
>    gcc/config/gcn/mkoffload.cc:      else if (sscanf (buf, " .section 
> .gnu.offload_funcs%c", &dummy) > 0)
>    gcc/config/gcn/mkoffload.cc:      /* Likewise for .gnu.offload_vars; used 
> for reverse offload. */
>    gcc/config/gcn/mkoffload.cc:      else if (sscanf (buf, " .section 
> .gnu.offload_ind_funcs%c", &dummy) > 0)
>    ['gcc/lto-section-names.h' adjusted per above.]
>    libgcc/offloadstuff.c:#define OFFLOAD_FUNC_TABLE_SECTION_NAME 
> ".gnu.offload_funcs"
>    libgcc/offloadstuff.c:#define OFFLOAD_IND_FUNC_TABLE_SECTION_NAME 
> ".gnu.offload_ind_funcs"
>    libgcc/offloadstuff.c:#define OFFLOAD_VAR_TABLE_SECTION_NAME 
> ".gnu.offload_vars"
>    lto-plugin/lto-plugin.c:  if (startswith (name, ".gnu.offload_lto_.opts"))
> 
> 
> Grüße
> Thomas

Reply via email to