powerpc64: Remove strcspn ifunc from the loader
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
5 years ago, commit 8f1b841e452dbb083112fd036033b7f4af506ba0
unintentionally added an ifunc to the loader.
That modification has not caused any harm so far, but it doesn't add any
value either, because the hwcap information is available later during
libc initialization.
Suggested-by: Anton Blanchard <anton@ozlabs.org>
---
.../powerpc/powerpc64/multiarch/rtld-strcspn.c | 18 ++++++++++++++++++
sysdeps/powerpc/powerpc64/multiarch/strcspn.c | 2 ++
2 files changed, 20 insertions(+)
create mode 100644 sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
Comments
On 7/2/21 2:32 PM, Tulio Magno Quites Machado Filho via Libc-alpha wrote:
> 5 years ago, commit 8f1b841e452dbb083112fd036033b7f4af506ba0
> unintentionally added an ifunc to the loader.
> That modification has not caused any harm so far, but it doesn't add any
> value either, because the hwcap information is available later during
> libc initialization.
Oh, oops. Thanks for fixing this!
> Suggested-by: Anton Blanchard <anton@ozlabs.org>
> ---
> .../powerpc/powerpc64/multiarch/rtld-strcspn.c | 18 ++++++++++++++++++
> sysdeps/powerpc/powerpc64/multiarch/strcspn.c | 2 ++
> 2 files changed, 20 insertions(+)
> create mode 100644 sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
>
> diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
> new file mode 100644
> index 0000000000..fcb9682e58
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-strcspn.c
> @@ -0,0 +1,18 @@
> +/* Copyright (C) 2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#include <string/strcspn.c>
> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
> index 683aa104d7..bb4d54620f 100644
> --- a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
> +++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
> @@ -16,6 +16,7 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> +#if IS_IN (libc)
> #include <string.h>
> #include <shlib-compat.h>
> #include "init-arch.h"
> @@ -33,3 +34,4 @@ libc_ifunc (__libc_strcspn,
>
> weak_alias (__libc_strcspn, strcspn)
> libc_hidden_builtin_def (strcspn)
> +#endif
Is the macro guard needed if you're directly bypassing via
rtld-strcspn.c above? Otherwise, LGTM either way.
Paul E Murphy via Libc-alpha <libc-alpha@sourceware.org> writes:
> On 7/2/21 2:32 PM, Tulio Magno Quites Machado Filho via Libc-alpha wrote:
>> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
>> index 683aa104d7..bb4d54620f 100644
>> --- a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
>> +++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
>> @@ -16,6 +16,7 @@
>> License along with the GNU C Library; if not, see
>> <https://www.gnu.org/licenses/>. */
>>
>> +#if IS_IN (libc)
>> #include <string.h>
>> #include <shlib-compat.h>
>> #include "init-arch.h"
>> @@ -33,3 +34,4 @@ libc_ifunc (__libc_strcspn,
>>
>> weak_alias (__libc_strcspn, strcspn)
>> libc_hidden_builtin_def (strcspn)
>> +#endif
>
> Is the macro guard needed if you're directly bypassing via
> rtld-strcspn.c above? Otherwise, LGTM either way.
No, it isn't.
I'm removing it.
Thanks!
new file mode 100644
@@ -0,0 +1,18 @@
+/* Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <string/strcspn.c>
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#if IS_IN (libc)
#include <string.h>
#include <shlib-compat.h>
#include "init-arch.h"
@@ -33,3 +34,4 @@ libc_ifunc (__libc_strcspn,
weak_alias (__libc_strcspn, strcspn)
libc_hidden_builtin_def (strcspn)
+#endif