This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] aarch64: Optimized memset for falkor
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 19 Dec 2017 16:54:43 -0200
- Subject: Re: [PATCH] aarch64: Optimized memset for falkor
- Authentication-results: sourceware.org; auth=none
- References: <1510651584-21402-1-git-send-email-siddhesh@sourceware.org> <5A12CD7F.9040601@arm.com> <aecf4469-fa08-2c2b-d634-7547d6678b52@sourceware.org> <5A395CA6.3040602@arm.com>
On 19/12/2017 16:38, Szabolcs Nagy wrote:
> On 20/11/17 12:57, Siddhesh Poyarekar wrote:
>> On Monday 20 November 2017 06:11 PM, Szabolcs Nagy wrote:
>>> On 14/11/17 09:26, Siddhesh Poyarekar wrote:
>>>> +libc_ifunc (__libc_memset, (IS_FALKOR (midr) && zva_size == 64
>>>> + ? __memset_falkor
>>>> + : __memset_generic));
>>>
>>> the falkor code is probably slightly better for
>>> most of the zva==64 targets too, but this way
>>> is probably the least risky and the logic can
>>> be changed later if necessary.
>>>
>>> i don't see a way to fix falkor with smaller
>>> impact on other cores.
>>>
>>> so this is OK to commit.
>>
>> Thanks, pushed.
>>
>
> this broke --disable-multi-arch build
> string/rtld-memset.os is missing then
> i don't yet know the cause
>
> aarch64-none-linux-gnu-gcc -nostdlib -nostartfiles -shared -o B/elf/ld.so.new \
> -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs \
> B/elf/librtld.os -Wl,--version-script=B/ld.map \
> -Wl,-soname=ld-linux-aarch64.so.1 \
> -Wl,-defsym=_begin=0
> B/elf/librtld.os: In function `_dl_map_segments':
> S/elf/./dl-map-segments.h:131: undefined reference to `memset'
> ...
> collect2: error: ld returned 1 exit status
> make[2]: *** [B/elf/ld.so] Error 1
>
This should fix it:
diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S
index 45fb0a8..7f5127f 100644
--- a/sysdeps/aarch64/memset.S
+++ b/sysdeps/aarch64/memset.S
@@ -19,6 +19,10 @@
#include <sysdep.h>
#include "memset-reg.h"
+#ifndef MEMSET
+# define MEMSET memset
+#endif
+
/* Assumptions:
*
* ARMv8-a, AArch64, unaligned accesses