Summary: | x11-libs/pixman-0.28.0 USE=iwmmxt - configure: error: IWMMXT intrinsics not detected | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alex <kav1979> |
Component: | [OLD] Library | Assignee: | Matt Turner <mattst88> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | x11 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
URL: | https://bugs.freedesktop.org/show_bug.cgi?id=55519 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 462736 | ||
Bug Blocks: | |||
Attachments: |
/var/tmp/portage/x11-libs/pixman-0.28.0/work/pixman-0.28.0_build/config.log
iwmmxt-for-4.7.patch gcc-4.8.2. pixman-0.32.4. build.log |
Description
Alex
2013-01-21 07:56:31 UTC
Created attachment 336316 [details]
/var/tmp/portage/x11-libs/pixman-0.28.0/work/pixman-0.28.0_build/config.log
This log added from /var/tmp/portage/x11-libs/pixman-0.28.0/work/pixman-0.28.0_build/config.log, because that is specified after the message when compiling.
/usr/lib/gcc/armv5te-iwmmxt-linux-gnueabi/4.5.4/include/mmintrin.h:552:39: internal compiler error: in arm_expand_binop_builtin, at config/arm/arm.c:17922 Hi Alex. The problem is that gcc's support for iwMMXt intrinsics was broken for a very long time before gcc-4.7. Trying to use them causes an internal compiler error. I'm not sure how to handle this in the ebuild, since gcc-4.7 is masked. If you'd like, I can help you work around this (you'll have to install gcc-4.7). Also, by default pixman builds iwMMXt code with -march=iwmmxt2 (since that's the processor I was targeting when I wrote it). You can set EXTRA_ECONF (like is done at the bottom of http://wiki.gentoo.org/wiki/Gold) for pixman to EXTRA_ECONF="--disable-arm-iwmmxt2" and it will only build with iwmmxt(1). Hi, Matt. I did: hx4700 ~ # echo "sys-devel/gcc" >> /etc/portage/package.unmask hx4700 ~ # echo "sys-devel/gcc ~arm" >> /etc/portage/package.keywords hx4700 ~ # emerge linux-headers glibc binutils gcc-config gcc hx4700 ~ # gcc-config -l [1] armv5te-iwmmxt-linux-gnueabi-4.5.4 * [2] armv5te-iwmmxt-linux-gnueabi-4.7.2 hx4700 ~ # gcc-config 2 hx4700 ~ # gcc-config -l [1] armv5te-iwmmxt-linux-gnueabi-4.5.4 [2] armv5te-iwmmxt-linux-gnueabi-4.7.2 * hx4700 ~ # echo "x11-libs/pixman pixman.conf" >> /etc/portage/package.env hx4700 ~ # mkdir /etc/portage/env hx4700 ~ # echo 'EXTRA_ECONF="--disable-arm-iwmmxt2"' >> /etc/portage/env/pixman.conf hx4700 ~ # env-update && source /etc/profile hx4700 ~ # emerge pixman But the error is repeated, though the configuration is performed: /var/tmp/portage/x11-libs/pixman-0.28.0/work/pixman-0.28.0/configure --prefix=/usr --build=armv5te-iwmmxt-linux-gnueabi --host=armv5te-iwmmxt-linux-gnueabi --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --docdir=/usr/share/doc/pixman-0.28.0 --enable-shared --disable-static --disable-mmx --disable-sse2 --disable-vmx --disable-arm-neon --enable-arm-iwmmxt --disable-gtk --disable-arm-iwmmxt2 Created attachment 341316 [details, diff]
iwmmxt-for-4.7.patch
Hi Alex,
Sorry -- I was somewhat mistaken. The iwMMXt support patch is in gcc-4.8 and a smaller fix was backported to (unreleased) gcc-4.7.3.
Attached is a patch that should apply to 4.7.2. It is what was committed to 4.8.
gcc-4.8 is now released (with working iwMMXt support). Marking it as a blocker of this bug. I think gcc-4.7.3 (not hard masked) also will compile this code, but I have not tested it myself. Created attachment 370308 [details]
gcc-4.8.2. pixman-0.32.4. build.log
gcc-4.8.2 compiling pixman with an error in attachment "gcc-4.8.2. pixman-0.32.4. build.log". (In reply to Alex from comment #9) Your error appears not related to this bug report. (In reply to Chí-Thanh Christopher Nguyễn from comment #10) Then the bug can be resolved to note, since gcc-4.8.2 initial error does not appear. Thanks! I think that's because it didn't get to build pixman-mmx.c. :( I had to hack the automake build system to make it work before, so it probably needs a fix-up. I just built with iwmmxt enabled using an ARM cross compiler. No problems encountered, so I can't reproduce. CFLAGS="-O2 -march=armv7-a -mtune=marvell-pj4 -pipe" ./configure --disable-arm-neon --enable-arm-iwmmxt2 --host=armv5tel-unknown-linux-gnueabi --build=x86_64-pc-linux-gnu Appropriate versions of gcc are stable on ARM and I couldn't reproduce. Marking as WORKSFORME. |