Trying to build dev-libs/gmp-4.2.1-r1 on arm results in the following output. I'm using gcc-3.4.6-r2 and binutils-2.17 (but have tried 2.16 and gcc 3.4.4) with the same troubles. tmp_mul-1.s: Assembler messages: tmp_mul-1.s:70: Error: selected processor does not support `umull r9,r12,r14,r3` I'm compiling with -march=armv3 -mtune=strongarm110 Reproducible: Always
Oh, I know this is because I'm using -march=armv3, but the Acorn RiscPC has a strongarm CPU, but it doesn't support half-word, so using armv3 is the best route.
I guess I can workaround this by disabling fortran, and it'll avoid gcc pulling in mpfr and thus gmp.
arm3 is not supported and i dont ever plan on supporting it [directly] you're free to post patches and if they're OK i'll merge them, but that's it
O.k. so the fortran hack no longer works, so I'll re-open this given you said you'd support patches if they're o.k. So I could use a little help on the best way to integrate this. I have a solution where all that needs to happen is remove the offending files from the build when CFLAGS has armv3 defined and gmp builds with the generic code. Is there a way in portage to detect what's in CFLAGS and adjust accordingly ?
This is all I need to do in src_unpack().... rm -f mpn/arm/{mul_1.asm,addmul_1.asm,invert_limb.asm,submul_1.asm} sed -i -e 's/#if 1/#if 0/' longlong.h
Also, had to do this to mpfr-2.4.1_p1.ebuild.... sed -i -e 's/#if 1/#if 0/' mpfr-longlong.h again in src_unpack().
Any help ?
Also freetype also needs a fix that I guess depends on -march=armv3 in CFLAGS. Can this be achieved ???
vapier - any help on this ?
you could change the '#if 1 ...' to: #if (!defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)) ...
I guess that'd be o.k. for mpfr, but given I need to delete some files from gmp, I guess this should be o.k. too... if is-flags -march=armv3; then... ...do stuff... fi Is that acceptable in an ebuild ?
(In reply to comment #8) > Also freetype also needs a fix that I guess depends on -march=armv3 in CFLAGS. For freetype we need this... if is-flags -march=armv3; then enable_option FT_CONFIG_OPTION_NO_ASSEMBLER fi
ping vapier ?
another ping .
i'm looking for a fix to go in the packages themselves, not be worked around in the ebuild. we cant send that upstream.
Closing this as the Acorn RiscPC can use armv3m instead, which supports these instructions.