[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