Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 938580 - =sys-boot/gnu-efi-3.0.18-r4: build error if LC_ALL is defined system wide
Summary: =sys-boot/gnu-efi-3.0.18-r4: build error if LC_ALL is defined system wide
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Viorel Munteanu
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2024-08-28 06:04 UTC by Guillaume Castagnino
Modified: 2024-08-28 15:14 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gnu-efi-3.0.18-r4.ebuild.patch (gnu-efi-3.0.18-r4.ebuild.patch,818 bytes, patch)
2024-08-28 06:04 UTC, Guillaume Castagnino
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Guillaume Castagnino 2024-08-28 06:04:00 UTC
The modification introduced in =sys-boot/gnu-efi-3.0.18-r4 relies on parsing the compiler output in C locale.

The C locale is switched using the LANG env var.
The problem is that LANG is the locale var with the lowest precedence. On system setting LC_ALL system wide, this results in parsing the compiler with the wrong locale.
The ebuild should use the env var with the highest precedence value instead to cover all use cases, which is LC_ALL.

Reproducible: Always

Steps to Reproduce:
1. set LC_ALL system wide to something not english
2. emerge gnu-efi
3.
Actual Results:  
>>> Unpacking source...
>>> Unpacking gnu-efi-3.0.18.tar.bz2 to /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work                                                                                                                                                                                                                                       
>>> Source unpacked in /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work
>>> Preparing source in /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18 ...
 * Applying gnu-efi-3.0.18-clang.patch ...[ ok ] 
 * Applying gnu-efi-3.0.18-remove-linux-headers.patch ...[ ok ] 
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18 ...
make -j13 -j1 ARCH=x86_64 HOSTCC=x86_64-pc-linux-gnu-gcc CC=x86_64-pc-linux-gnu-gcc AS=x86_64-pc-linux-gnu-as LD=x86_64-pc-linux-gnu-ld AR=x86_64-pc-linux-gnu-ar OBJCOPY=x86_64-pc-linux-gnu-objcopy PREFIX=/usr LIBDIR=$(PREFIX)/lib64
mkdir -p /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18/x86_64/lib
make -C /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18/x86_64/lib -f /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/Makefile SRCDIR=/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib ARCH=x86_64
make[1] : on entre dans le répertoire « /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18/x86_64/lib »
x86_64-pc-linux-gnu-gcc -I/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib -I/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/../inc -I/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/../inc/x86_64 -I/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.
0.18//lib/../inc/protocol  -nostdinc -isystem /include -isystem /usr/include -Wno-error=pragmas -mno-red-zone -mno-avx -fPIE  -g -O2 -Wall -Wextra -Wno-pointer-sign -funsigned-char -fshort-wchar -fno-strict-aliasing -ffreestanding -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wno-error=pragmas -mno-r
ed-zone -mno-avx -fPIE  -g -O2 -Wall -Wextra -Wno-pointer-sign -funsigned-char -fshort-wchar -fno-strict-aliasing -ffreestanding -fno-stack-protector -fno-stack-check -fno-merge-all-constants -DCONFIG_x86_64 -std=c11 -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args -c /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gn
u-efi-3.0.18//lib/boxdraw.c -o boxdraw.o
Dans le fichier inclus depuis /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/../inc/efi.h:46,
                 depuis /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/../inc/lib.h:23,
                 depuis /var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/boxdraw.c:18:
/var/tmp/portage/sys-boot/gnu-efi-3.0.18-r4/work/gnu-efi-3.0.18//lib/../inc/x86_64/efibind.h:99:10: erreur fatale: stddef.h : Aucun fichier ou dossier de ce nom
   99 | #include <stddef.h>
      |          ^~~~~~~~~~
Comment 1 Guillaume Castagnino 2024-08-28 06:04:43 UTC
Created attachment 901400 [details, diff]
gnu-efi-3.0.18-r4.ebuild.patch

Patch of the ebuild fixing the issue.
Comment 2 Greg Kubaryk 2024-08-28 06:10:59 UTC
emerge --info as a comment, build.log (compressed if necessary) as an attachment?
Comment 3 Viorel Munteanu gentoo-dev 2024-08-28 15:03:16 UTC
I usually specify both LANG and LC_ALL, I did it above for objcopy.  But that's unnecessary, so I'll set only LC_ALL in all places.

Thanks!
Comment 4 Larry the Git Cow gentoo-dev 2024-08-28 15:14:22 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a786643b846ca4f1c12121f3a3a82b47229e8c25

commit a786643b846ca4f1c12121f3a3a82b47229e8c25
Author:     Viorel Munteanu <ceamac@gentoo.org>
AuthorDate: 2024-08-28 15:07:01 +0000
Commit:     Viorel Munteanu <ceamac@gentoo.org>
CommitDate: 2024-08-28 15:13:59 +0000

    sys-boot/gnu-efi: fix compilation on different locales
    
    Closes: https://bugs.gentoo.org/938580
    Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>

 sys-boot/gnu-efi/gnu-efi-3.0.18-r4.ebuild | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08a69400ed7aa6f0b3d522f012924f547f31e4bb

commit 08a69400ed7aa6f0b3d522f012924f547f31e4bb
Author:     Viorel Munteanu <ceamac@gentoo.org>
AuthorDate: 2024-08-28 15:07:24 +0000
Commit:     Viorel Munteanu <ceamac@gentoo.org>
CommitDate: 2024-08-28 15:14:00 +0000

    sys-boot/refind: fix compilation on different locales
    
    Bug: https://bugs.gentoo.org/938580
    Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>

 sys-boot/refind/refind-0.14.2-r2.ebuild | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)