[PATCH] algol68: Use correct exports section name for Mach-O
Pietro Monteiro
pietro@sociotechnical.xyz
Mon Jun 8 15:21:43 GMT 2026
On Mon, Jun 8, 2026, at 10:41 AM, Iain Sandoe wrote:
>> On 8 Jun 2026, at 15:33, Iain Sandoe <iain@sandoe.co.uk> wrote:
>>
>>
>>
>>> On 8 Jun 2026, at 15:23, Pietro Monteiro <pietro@sociotechnical.xyz> wrote:
>>>
>>> On Mon, Jun 8, 2026, at 9:59 AM, Iain Sandoe wrote:
>>>>> On 8 Jun 2026, at 14:53, Jose E. Marchesi <jemarch@gnu.org> wrote:
>>>>>
>>>>>>>
>>>>>>> On 8 Jun 2026, at 14:09, Pietro Monteiro <pietro@sociotechnical.xyz> wrote:
>>>>>>>
>>>>>>> Mach-O objects prefix section names with double underscore instead of
>>>>>>> period. Use correct exports section name on systems that use Mach-O.
>>>>>>>
>>>>>>> gcc/algol68/ChangeLog:
>>>>>>>
>>>>>>> * a68.h (A68_EXPORT_SECTION_NAME): Prefix name with double
>>>>>>> underscores for Mach-O objects.
>>>>>>
>>>>>> I am a bit puzzled by this - since I had memory that we (Jose and I) had already
>>>>>> fixed things so that Darwin’s segment and section names were correct.
>>>>>> (indeed, AFAIK a68 exports in object files and convenience libraries are already
>>>>>> working)?
>>>>>
>>>>> I am also a bit confused. From our past testing, it looked like in
>>>>> Darwin it was ok to create a section .a68_exports and then read it in,
>>>>> conventions notwithstanding.
>>>>
>>>> That is my expectation - that, at the binary level, all that matters is that the
>>>> segment and section names are <= 16 chars in length (there is no terminating
>>>> nul in the file).
>>>
>>> Without the patch `otool` shows the libga68 .dylib having a __GNU_A68
>>> segment with a __a68_exports section in it. Maybe the system `as`
>>> (clang) "fixes" the name ?
>>
>> I don’t think so.
>>
>> e.g. posix.s ==> posix.o
>>
>> .build_version macos, 15, 0
>> .section __GNU_A68,__a68_exports
>>
>> It looks like we are emitting this from the compiler already .. which kinda stacks
>> up with my recollection that we’d already been down this road - I do apologise
>> that my recollection is fuzzy ..
>
> config/darwin.h:
>
> /* Algol68 */
> #undef A68_EXPORT_SECTION_NAME
> #define A68_EXPORT_SECTION_NAME "__a68_exports"
>
> Which, I believe already overides because of...
>
> #ifndef A68_EXPORT_SECTION_NAME
>
> so the proposed patch is not needed (already done).
>
> sorry for taking time to recall the details.
sorry I got mixed up. I guess I only grep'ed the algol68 dir. lesson learned :)
pietro
> Iain
>
>
>>
>> Iain
More information about the Algol68
mailing list