skyjake / lagrange

A Beautiful Gemini Client
https://gmi.skyjake.fi/lagrange/
BSD 2-Clause "Simplified" License
1.19k stars 62 forks source link

stdatomic.h: sorry, unimplemented: '_Atomic' in Objective-C #608

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago

Not sure if this is to be fixed in lagrange or rather in the_Foundation:

:info:build In file included from /opt/local/include/the_Foundation/atomic.h:31,
:info:build                  from /opt/local/include/the_Foundation/block.h:32,
:info:build                  from /opt/local/include/the_Foundation/string.h:39,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/lang.h:25,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/defs.h:25,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/ui/mobile.h:25,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/ui/util.h:25,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/macos.h:25,
:info:build                  from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_net_lagrange/lagrange/work/lagrange/src/macos.m:23:
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:40:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    40 | typedef _Atomic _Bool atomic_bool;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:41:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    41 | typedef _Atomic char atomic_char;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:42:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    42 | typedef _Atomic signed char atomic_schar;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:43:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    43 | typedef _Atomic unsigned char atomic_uchar;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:44:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    44 | typedef _Atomic short atomic_short;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:45:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    45 | typedef _Atomic unsigned short atomic_ushort;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:46:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    46 | typedef _Atomic int atomic_int;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:47:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    47 | typedef _Atomic unsigned int atomic_uint;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:48:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    48 | typedef _Atomic long atomic_long;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:49:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    49 | typedef _Atomic unsigned long atomic_ulong;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:50:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    50 | typedef _Atomic long long atomic_llong;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:51:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    51 | typedef _Atomic unsigned long long atomic_ullong;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:52:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    52 | typedef _Atomic __CHAR16_TYPE__ atomic_char16_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:53:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    53 | typedef _Atomic __CHAR32_TYPE__ atomic_char32_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:54:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    54 | typedef _Atomic __WCHAR_TYPE__ atomic_wchar_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:55:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    55 | typedef _Atomic __INT_LEAST8_TYPE__ atomic_int_least8_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:56:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    56 | typedef _Atomic __UINT_LEAST8_TYPE__ atomic_uint_least8_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:57:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    57 | typedef _Atomic __INT_LEAST16_TYPE__ atomic_int_least16_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:58:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    58 | typedef _Atomic __UINT_LEAST16_TYPE__ atomic_uint_least16_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:59:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    59 | typedef _Atomic __INT_LEAST32_TYPE__ atomic_int_least32_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:60:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    60 | typedef _Atomic __UINT_LEAST32_TYPE__ atomic_uint_least32_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:61:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    61 | typedef _Atomic __INT_LEAST64_TYPE__ atomic_int_least64_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:62:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    62 | typedef _Atomic __UINT_LEAST64_TYPE__ atomic_uint_least64_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:63:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    63 | typedef _Atomic __INT_FAST8_TYPE__ atomic_int_fast8_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:64:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    64 | typedef _Atomic __UINT_FAST8_TYPE__ atomic_uint_fast8_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:65:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    65 | typedef _Atomic __INT_FAST16_TYPE__ atomic_int_fast16_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:66:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    66 | typedef _Atomic __UINT_FAST16_TYPE__ atomic_uint_fast16_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:67:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    67 | typedef _Atomic __INT_FAST32_TYPE__ atomic_int_fast32_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:68:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    68 | typedef _Atomic __UINT_FAST32_TYPE__ atomic_uint_fast32_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:69:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    69 | typedef _Atomic __INT_FAST64_TYPE__ atomic_int_fast64_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:70:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    70 | typedef _Atomic __UINT_FAST64_TYPE__ atomic_uint_fast64_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:71:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    71 | typedef _Atomic __INTPTR_TYPE__ atomic_intptr_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:72:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    72 | typedef _Atomic __UINTPTR_TYPE__ atomic_uintptr_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:73:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    73 | typedef _Atomic __SIZE_TYPE__ atomic_size_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:74:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    74 | typedef _Atomic __PTRDIFF_TYPE__ atomic_ptrdiff_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:75:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    75 | typedef _Atomic __INTMAX_TYPE__ atomic_intmax_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:76:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build    76 | typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
:info:build       | ^~~~~~~
:info:build /opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.3.0/include/stdatomic.h:218:1: sorry, unimplemented: '_Atomic' in Objective-C
:info:build   218 | typedef _Atomic struct
:info:build       | ^~~~~~~
skyjake commented 1 year ago

The atomic types defined in the_Foundation are also used directly in Lagrange, so the issue affects both the library and the app.

However, I'm not sure what the actual problem is. Should these C11 atomic types be replaced with something else when compiling Objective-C in this configuration?

barracuda156 commented 1 year ago

Should these C11 atomic types be replaced with something else when compiling Objective-C in this configuration?

It seems so from the GCC output. If it looks like a GCC bug to you, I can open a ticket on GCC Bugzilla. Myself I am not sure if those are supposed to be supported in ObjC. But in any case, they do not work as-is.