[Buildroot] [PATCH] package/glibc: Fix x86_64 builds with -Os
Romain Naour
romain.naour at smile.fr
Mon Oct 10 07:34:51 UTC 2022
Hello James,
Le 10/10/2022 à 01:37, James Hilliard a écrit :
> On Sun, Oct 9, 2022 at 11:35 AM Romain Naour <romain.naour at gmail.com> wrote:
>>
>> Backport upstream commit for x86_64 builds with -Os reported by [1].
>>
>> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=29576
>>
>> Fixes:
>> https://gitlab.com/buildroot.org/buildroot/-/jobs/3134229902
>> https://gitlab.com/buildroot.org/buildroot/-/jobs/3134229956
>
> I think this also fixes an issue in autobuilders, see:
> https://patchwork.ozlabs.org/project/buildroot/patch/20220927031702.2918414-1-james.hilliard1@gmail.com/
Sorry I missed it in the patchwork it was on the second page already...
>
> http://autobuild.buildroot.net/results/5b4/5b442f95587ddc65a995bbd9e310c88a66c55b1f
>
>>
>> Signed-off-by: Romain Naour <romain.naour at gmail.com>
>
> Reviewed-by: James Hilliard <james.hilliard1 at gmail.com>
>
>> ---
>> .../0002-x86-Fix-Os-build-BZ-29576.patch | 48 +++++++++++++++++++
>> 1 file changed, 48 insertions(+)
>> create mode 100644 package/glibc/0002-x86-Fix-Os-build-BZ-29576.patch
>>
>> diff --git a/package/glibc/0002-x86-Fix-Os-build-BZ-29576.patch b/package/glibc/0002-x86-Fix-Os-build-BZ-29576.patch
>> new file mode 100644
>> index 0000000000..4470324f1c
>> --- /dev/null
>> +++ b/package/glibc/0002-x86-Fix-Os-build-BZ-29576.patch
>> @@ -0,0 +1,48 @@
>> +From 3935b543adcb9a46ab79f8931bc489068b049378 Mon Sep 17 00:00:00 2001
>> +From: Adhemerval Zanella Netto <adhemerval.zanella at linaro.org>
>> +Date: Wed, 21 Sep 2022 10:51:08 -0300
>> +Subject: [PATCH] x86: Fix -Os build (BZ #29576)
>> +
>> +The compiler might transform __stpcpy calls (which are routed to
>> +__builtin_stpcpy as an optimization) to strcpy and x86_64 strcpy
>> +multiarch implementation does not build any working symbol due
>> +ISA_SHOULD_BUILD not being evaluated for IS_IN(rtld).
>> +
>> +Checked on x86_64-linux-gnu.
>> +Reviewed-by: Carlos O'Donell <carlos at redhat.com>
>> +Tested-by: Carlos O'Donell <carlos at redhat.com>
>> +
>> +(cherry picked from commit 9dc4e29f630c6ef8299120b275e503321dc0c8c7)
>
> This is probably better than mine since I had applied from patchwork before
> it was applied upstream.
Yes maybe... even it doesn't come from the 2.36 stable branch.
I replied on the bug report, so the commit may be backported soon.
Best regards,
Romain
>
>> +Signed-off-by: Romain Naour <romain.naour at gmail.com>
>> +---
>> + sysdeps/x86_64/multiarch/rtld-strcpy.S | 18 ++++++++++++++++++
>> + 1 file changed, 18 insertions(+)
>> + create mode 100644 sysdeps/x86_64/multiarch/rtld-strcpy.S
>> +
>> +diff --git a/sysdeps/x86_64/multiarch/rtld-strcpy.S b/sysdeps/x86_64/multiarch/rtld-strcpy.S
>> +new file mode 100644
>> +index 0000000000..19439c553d
>> +--- /dev/null
>> ++++ b/sysdeps/x86_64/multiarch/rtld-strcpy.S
>> +@@ -0,0 +1,18 @@
>> ++/* Copyright (C) 2022 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 "../strcpy.S"
>> +--
>> +2.34.3
>> +
>> --
>> 2.34.3
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
More information about the buildroot
mailing list