Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 300062 - sys-devel/gcc-4.3.4: powerpc-softfloat-linux-uclibc fails with sys-libc/uclibc-0.9.28* (no fenv.h)
Summary: sys-devel/gcc-4.3.4: powerpc-softfloat-linux-uclibc fails with sys-libc/uclib...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-07 17:22 UTC by Daren Hayward
Modified: 2010-03-09 17:20 UTC (History)
1 user (show)

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


Attachments
cross-powerpc-softfloat-linux-uclibc-info (cross-powerpc-softfloat-linux-uclibc-info.log,23.10 KB, text/plain)
2010-01-07 17:23 UTC, Daren Hayward
Details
cross-powerpc-softfloat-linux-uclibc-gcc-stage2 (cross-powerpc-softfloat-linux-uclibc-gcc-stage2.log,995.87 KB, text/plain)
2010-01-07 17:24 UTC, Daren Hayward
Details
emerge info (emerge.info,12.26 KB, text/plain)
2010-01-07 17:29 UTC, Daren Hayward
Details
64_all_uClibc-add-glibc-fenvh.patch (64_all_uClibc-add-glibc-fenvh.patch,5.45 KB, patch)
2010-03-09 17:11 UTC, Christopher Friedt
Details | Diff
65_all_uClibc-kernel-fsid-t.patch (65_all_uClibc-kernel-fsid-t.patch,659 bytes, patch)
2010-03-09 17:12 UTC, Christopher Friedt
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daren Hayward 2010-01-07 17:22:09 UTC
Trying to update powerpc cross compiler to 4.3.4 from 4.1.2 fails during emerge with missing fenv.h, tested on x86 and amd64 and both fail in the same way.

Reproducible: Always

Steps to Reproduce:
1. crossdev -S --target powerpc-softfloat-linux-uclibc
2.
3.

Actual Results:  
gcc failed :(

decExcept.c:30:18: error: fenv.h: No such file or directory


Expected Results:  
Successful install of cross compiler.

To fix the problem copy /usr/include/fenv.h to /usr/powerpc-softfloat-linux-uclibc/usr/include/fenv.h

This should be included with uclibc.

powerpc-softfloat-linux-uclibc-gcc successfully builds and compiles binaries.
Comment 1 Daren Hayward 2010-01-07 17:23:31 UTC
Created attachment 215568 [details]
cross-powerpc-softfloat-linux-uclibc-info
Comment 2 Daren Hayward 2010-01-07 17:24:23 UTC
Created attachment 215570 [details]
cross-powerpc-softfloat-linux-uclibc-gcc-stage2
Comment 3 Daren Hayward 2010-01-07 17:29:31 UTC
Created attachment 215573 [details]
emerge info
Comment 4 SpanKY gentoo-dev 2010-01-11 09:24:35 UTC
use a newer uclibc that provides fenv.h
Comment 5 Daren Hayward 2010-01-12 08:50:01 UTC
(In reply to comment #4)
> use a newer uclibc that provides fenv.h
> 

Sorry Spanky but this does not wash with me, this is supposed to be the stable build and I have not selected the uclibc to use other than stable and it doesn't work.

crossdev -S --target powerpc-softfloat-linux-uclibc


Comment 6 solar (RETIRED) gentoo-dev 2010-01-12 16:08:50 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > use a newer uclibc that provides fenv.h
> > 
> 
> Sorry Spanky but this does not wash with me, this is supposed to be the stable
> build and I have not selected the uclibc to use other than stable and it
> doesn't work.

Then you should file a bug to request a newer uClibc be marked stable for your platform/arch.
Comment 7 Daren Hayward 2010-01-12 17:31:55 UTC
> Then you should file a bug to request a newer uClibc be marked stable for your
> platform/arch.
> 

Thanks Solar,

Would it be wise to change this bug or link to it in some way?
Comment 8 solar (RETIRED) gentoo-dev 2010-01-12 17:52:29 UTC
Mark this one as a dep on the "new" one you file for the arch maintainers. 

imo it's time to move all the arches away from the .28 uClibc. But sadly it's not a clean upgrade path.
Comment 9 SpanKY gentoo-dev 2010-01-12 19:54:12 UTC
> Sorry Spanky but this does not wash with me, this is supposed to be the stable
> build and I have not selected the uclibc to use other than stable and it
> doesn't work.

i really dont care.  unless you're assisting in maintenance, no one else is, which means only the latest gets attention.
Comment 10 Denis Dupeyron (RETIRED) gentoo-dev 2010-01-12 22:20:32 UTC
(In reply to comment #9)
> > Sorry Spanky but this does not wash with me, this is supposed to be the stable
> > build and I have not selected the uclibc to use other than stable and it
> > doesn't work.
> 
> i really dont care.  unless you're assisting in maintenance, no one else is,
> which means only the latest gets attention.

Here's what Mike meant, translated into English:
"Please send a patch, I'll be happy to commit it. Thanks in advance."

Or, if you're young (and thus lucky) enough to understand Twittish:
"plz2patch kthxbye"
You'll note the lack of punctuation which is one of the major features of Twittish.

Denis.
Comment 11 Daren Hayward 2010-01-12 23:25:01 UTC
Sorry SpanKY, what I wrote earlier came across wrong. I happen to maintain with a colleague a collection of cross compilers including powerpc arm, x86 and x86_64, from a collection of x86 and x86_64 hosts. We will possibly be creating more cross compilers in the future depending on what CPU will be used in our next product. If we can be of use in the testing and maintenance of cross compilers please let me know how. The cross build platform to date has been good and is one of the main reasons we use gentoo. I was just expecting the stable build to work.

Comment 12 SpanKY gentoo-dev 2010-01-13 14:54:08 UTC
the stable build used to work until a newer version of gcc went stable.  as Denis mentioned, we'll add patches, but generally when it comes to cross-compiling, i only have time to make sure unstable works (and some might say i dont even do that enough).  the stable policy here has not changed -- it's been a pure trickle down effect.

so we can either do Bug 289522 (and make sure outstanding regressions there are resolved), or someone can post a patch for me to merge.
Comment 13 Daren Hayward 2010-01-13 23:07:15 UTC
I understand where you are coming from.. you only have so much time to get things working... I see uclibc-0.9.30.2 is out today to add to the fun!

Comment 14 Christopher Friedt 2010-03-09 17:11:37 UTC
Created attachment 222857 [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 c
Comment 15 Christopher Friedt 2010-03-09 17:12:26 UTC
Created attachment 222859 [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 16 Christopher Friedt 2010-03-09 17:15:12 UTC
(In reply to comment #9)
> i really dont care.  unless you're assisting in maintenance, no one else is,
> which means only the latest gets attention.
> 

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
...


NOTES:

 * requires a new uClibc-0.9.28.3-patches-2.0.tar.bz2, and 
 * alter uCibc-0.9.28.3-r8.ebuild or make a new uCibc-0.9.28.3-r9.ebuild: change PATCH_VER="1.9" to "2.0"
Comment 17 Christopher Friedt 2010-03-09 17:17:10 UTC
Just to clarify, my first solution was to use a newer uClibc, like SpanKY said, but there is likely some person (e.g. the person who reported this bug) who would like it to 'just work' with -S .
Comment 18 Christopher Friedt 2010-03-09 17:20:27 UTC
(In reply to comment #15)
> Created an attachment (id=222859) [details]
> 65_all_uClibc-kernel-fsid-t.patch

Also thought that I should mention, the reason that this is necessary is because of:

...
/usr/i686-pc-linux-uclibc/sys-include/asm/posix_types_32.h:43: error: conflicting types for ‘__kernel_fsid_t’
/usr/i686-pc-linux-uclibc/sys-include/bits/kernel_types.h:46: error: previous declaration of ‘__kernel_fsid_t’ was here
make[2]: *** [unwind-dw2.o] Error 1
...