Summary: | app-admin/systemrescuecd-x86-5.3.2 with dev-util/dialog-1.3.20181107 - usb_inst.sh: dialog: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | Michał Górny <mgorny> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | toolchain |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | dialog-x86-systemrescuecd |
Description
Juergen Rose
2019-01-02 16:28:11 UTC
loadlocale.c is from glibc. It doesn't appear to be dev-util/dialog that is failing. Is there a reproducer for toolchain@ outside of systemrescuecd? Reproduced it locally after downloading systemrescuecd .iso. ./usb_inst.sh is running statically linked 'dialog' binary: $ file /var/tmp/usb_inst.tmp/dialog /var/tmp/usb_inst.tmp/dialog: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped and attempts to load locale data from host. If libc versions don't match (x86 vs amd64) loading locale-archive will not succeed. As a workaround I suggest forcing C locale as: LANG=C ./usb_inst.sh Given that ./usb_inst.sh does not have localisation support it could as well contain LANG=C export LANG to sanitize the environment. We can look at better error handling on glibc side but it won't fix static binary as it already embeds old libc. Looks like this dialog binary was built with gcc-4.4.4-r1 (added in Gentoo in 2011). Don't know which glibc version is that. Perhaps something around 2.12. Created attachment 559766 [details]
dialog-x86-systemrescuecd
> We can look at better error handling on glibc side but it won't fix static > binary as it already embeds old libc. glibc was fixed in 2015 as: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0062ace2292effc4135c15ea99b1931fea5e0203 Relinking dialog against glibc-2.23 or newer should be enough. (In reply to Sergei Trofimovich from comment #3) > Reproduced it locally after downloading systemrescuecd .iso. > > ./usb_inst.sh is running statically linked 'dialog' binary: > > $ file /var/tmp/usb_inst.tmp/dialog > /var/tmp/usb_inst.tmp/dialog: ELF 32-bit LSB executable, Intel 80386, > version 1 (GNU/Linux), statically linked, stripped > > and attempts to load locale data from host. If libc versions don't match > (x86 vs amd64) loading locale-archive will not succeed. > > As a workaround I suggest forcing C locale as: > LANG=C ./usb_inst.sh Thanks, 'LANG=C ./usb_inst.sh' worked. @Juergen: For the record, the .iso file we're installing with USE=isohybrid is USB-friendly, so you can just 'dd' it into your stick. I've tried reporting this upstream but their official support channel seem to be the forum, and it doesn't allow registering new accounts. I've also tried contacting the maintainer via sf mail but with no response so far. If someone's got account on the Forums, I'd appreciate proxying this bug. (In reply to Michał Górny from comment #8) > I've tried reporting this upstream but their official support channel seem > to be the forum, and it doesn't allow registering new accounts. I've also > tried contacting the maintainer via sf mail but with no response so far. If > someone's got account on the Forums, I'd appreciate proxying this bug. ( http://forums.system-rescue-cd.org/ ) Package removed. |