Issue with locale (sysroot installation)

Oleg Smolsky osmolsky@netskope.com
Sun Mar 21 18:27:22 GMT 2021


On 2021-03-21 08:17, Oleg Smolsky wrote:
> On 2021-03-21 01:19, Florian Weimer wrote:
>>
>>> 4. Glibc was configured with:
>>>
>>> CC=$boostrap_gcc/bin/gcc CXX=$boostrap_gcc/bin/g++ 
>>> PATH=/opt/3p/bin:$PATH \
>>>       ../configure \
>>>           --prefix=/usr --libdir=/usr/lib \
>>>           --host=x86_64-pc-linux \
>>>           --enable-kernel=4.4.0 \
>>>           --with-headers=$sysroot/usr/include
>> Due to --prefix=/usr, the built glibc will locate ancillary in the
>> standard paths.  Therefore, you have to set LOCPATH and GCONV_PATH to
>> tell the glibc in the sysroot to use files at non-standard locations.
>> (The system files are not necessarily compatible.)
>
> Ah, I see. Thank you for the hint, Florian! The run-time solution 
> works, but I would like to bake the locale location into glibc.
>
> My current build recipe configures GLibc with "--prefix=/usr 
> --libdir=/usr/lib" and then I do "make install_root=$sysroot install". 
> This generates the right directory structure for GCC to discover 
> everything and for the generated executables to run (given the minimal 
> rpath tweaks).
>
> Is there a different way to configure/install so that the locale path 
> gets baked in and discovered at run-time?

After a few experiments, I got the following to work: glibc is built 
with --prefix=$sysroot/usr. The only kink is that during GCC build I 
have to create $sysroot hierarchy inside $sysroot - so I cheated with a 
symlink.

The test program finds the locale at the right place now.

Thanks!
Oleg.



More information about the Libc-help mailing list