make: Entering directory `/var/tmp/portage/ocaml-3.08.1/work/ocaml-3.08.1/otherlibs/num'
gcc -O -I../../byterun -fno-defer-pop -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -march=pentium3 -O3 -pipe -fno-stack-protector -fPIC -DBNG_ARCH_ia32 -DBNG_ASM_LEVEL=2 -c -o bng.o bng.c
bng_ia32.c: In function `bng_ia32_mult_add_digit':
bng_ia32.c:111: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
make: *** [bng.o] Error 1
make: Leaving directory `/var/tmp/portage/ocaml-3.08.1/work/ocaml-3.08.1/otherlibs/num'
make: *** [otherlibraries] Error 2
similar problem to here:
other apps are also experiencing this to varying degree:
I added a replace-flags -O3 -O2 to the ebuild locally, but i suspect there isn't much to be done except to be aware of the problem if we are using gcc 3.4
Exactly, the code is already hand-tuned to get the most of x86's reduced register space. I don't see the flag handling in the ebuild actually, you can commit it.
i still have this problem,the ebuild also has no replace-flags....
It should have, i'll add it tomorrow, in the mean time you can build with CFLAGS="".
I added strip-flags which removes -O3 and other quite untested flags.
"strip-flags" doesn't remove -O3. Still the same ;)
Use "replace-flags -O? -O2"
I fixed that in CVS, now closing the bug :)