[PATCH] AArch64: Add support for MOPS memcpy/memmove/memset
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Fri Oct 20 15:56:42 GMT 2023
On 20/10/23 12:19, Wilco Dijkstra wrote:
> Hi Adhemerval,
>
>> I think it would be better to move each function to its own file.
>
> I can do that, but it's just extra effort, more files, more maintenance for no gain...
It helps on static linking (although due function size not that much).
The multiarch is usually quite messy already (x86_64 is example), so I
am not sure if packing implementation does not really related is the
best way forward.
>
>> Also, the libc_hidden_builtin_def is superflous here, libc does not use
>> internal names in any place (other aarch64 implementation have the same
>> directive).
>>
>> The libc_hidden_builtin_def does not really make the symbol hidden
>> on assembly, but rather add an alias to a __GI_##name symbol. To
>> actually sets the symbol hidden you will need to add a .hidden symbol
>> directive.
>
> It's unclear to me what all these magic defines do... So you're saying all
> of the internal implementations should use .hidden instead of one of the
> [libc_]hidden_[builtin_]def macros? Ie. they should not be used inside
> the multiarch directory at all?
The issue is libc_hidden_def is different for assembly implementation,
compare to its C counterpart. The C macro will create a __GI_##symbol
global hidden symbol alias, where for assembly it will create a global
symb alias. It should not really matter if the caller always see
the libc_hidden_proto (so compiler will call the __GI_ symbol.
More information about the Libc-alpha
mailing list