Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 211325

Summary: sys-libs/uclibc[pregen]: ebuild logic error
Product: Gentoo Linux Reporter: Andrew Bevitt <andrewbevitt>
Component: New packagesAssignee: Embedded Gentoo Team <embedded>
Status: RESOLVED WONTFIX    
Severity: normal    
Priority: High    
Version: 2007.0   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: 64_all_uClibc-add-glibc-fenvh.patch
65_all_uClibc-kernel-fsid-t.patch

Description Andrew Bevitt 2008-02-25 00:53:53 UTC
There is a logic error in all of the uClibc ebuilds.

The SRC_URI variable includes a file uClibc-locale-030818.tgz if USE="nls pregen -userlocales". However in src_unpack there is a block 

if use pregen ; then
...
fi

In this block the file "${DISTDIR}"/${MY_P}-$(tc-arch)-full-locale.tar.gz is used, when USE="pregen -userlocales", instead of uClibc-locale-030818.tgz. The full-locale.tar.gz file does not exist in the SRC_URI so does not exist in DISTFILES to be copied.

Possible fixes:
1) Replace "${DISTDIR}"/${MY_P}-$(tc-arch)-full-locale.tar.gz with uClibc-locale-030818.tgz when USE="iconv pregen -userlocales" in src_unpack.

2) Update SRC_URI to include "${DISTDIR}"/${MY_P}-$(tc-arch)-full-locale.tar.gz
Comment 1 Christopher Friedt 2010-03-09 16:52:23 UTC
Created attachment 222851 [details, diff]
64_all_uClibc-add-glibc-fenvh.patch

adds the fenv.h header from glibc (this is identical to what they do in later versions uClibc)

alters makefile to remove the installed header if no floating point environment is available. (is this correct?)
Comment 2 Christopher Friedt 2010-03-09 16:54:18 UTC
Created attachment 222853 [details, diff]
65_all_uClibc-kernel-fsid-t.patch

I guess some define mangling occurred with the newer stable gcc. This adds the new define as well as the older ones to prevent namespace collision.
Comment 3 Christopher Friedt 2010-03-09 16:57:57 UTC
Should be fixed with the above two patches. Builds for me, but only with USE="-iconv". That is probably an unrelated bug, but in either case the relevent output is:

...
gcc -O2 -Wall  -DCTYPE_PACKED=1 -DDO_WIDE_CHAR=1 -D__UCLIBC_GEN_LOCALE gen_wc8bi
t.c -o gen_wc8bit
gen_wc8bit.c: In function 'main':
gen_wc8bit.c:462: warning: pointer targets in assignment differ in signedness
gen_wc8bit.c:613: warning: pointer targets in assignment differ in signedness
gen_wc8bit.c:351: warning: array subscript is above array bounds
gen_wc8bit.c:410: warning: array subscript is above array bounds
gen_wc8bit.c:476: warning: array subscript is above array bounds

...
ishift 1  tshift 10  size 23636
ishift 2  tshift 10  size 23636
smallest = 6136
setting ishift 5  tshift 1
make: *** [wctables.h] Segmentation fault
 * ERROR: cross-i686-pc-linux-uclibc/uclibc-0.9.28.3-r9 failed:
 *   make locales failed
...
Comment 4 Christopher Friedt 2010-03-09 17:08:30 UTC
Sorry :S

This is the completely wrong bug - these patches should go to #300062

(In reply to comment #3)
> Should be fixed with the above two patches. Builds for me, but only with
> USE="-iconv". That is probably an unrelated bug, but in either case the
> relevent output is:
Comment 5 SpanKY gentoo-dev 2013-12-22 14:18:37 UTC
we've dropped USE=pregen in newer versions