Summary: | media-libs/imlib2: unmask USE=mmx on amd64 profiles. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Patrik Larsson <patrik.mrx> |
Component: | New packages | Assignee: | AMD64 Project <amd64> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | ainsaar, coldwind, emmanuel.anne, jer, martin, vapier, yrusinov |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | The build output requested |
Description
Patrik Larsson
2008-04-19 10:13:24 UTC
Could you post more of the build log, please? Created attachment 150303 [details]
The build output requested
According to the ebuild, there's good reason to: src_compile() { # imlib2 has diff configure options for x86/amd64 mmx local mymmx="" if [[ $(tc-arch) == "amd64" ]] ; then mymmx="$(use_enable mmx amd64) --disable-mmx" else mymmx="--disable-amd64 $(use_enable mmx)" So what you are saying is that the use of AMD64 optimized code is not to be turned on? Is there some way of getting statement "Use AMD64 for speed" to say yes here that can apply to other ebuilds with similar options for using optimized code? So what you are saying is that the use of AMD64 optimized code is not to be turned on? Is there some way of getting statement "Use AMD64 for speed" to say yes here that can apply to other ebuilds with similar options for using optimized code? the profiles in question need to be updated to not mask the mmx flag OK, now i am getting confused. Jeroen Roovers is saying one thing and SpanKY says another as i understand this. What is going on? What is going to happen here? Some clarification would be nice here. if I read this: > if [[ $(tc-arch) == "amd64" ]] ; then > mymmx="$(use_enable mmx amd64) --disable-mmx" I would say: no profile change, but an ebuild change would be THE solution: > if [[ $(tc-arch) == "amd64" ]] ; then > mymmx="--enable-amd64 --disable-mmx" I guess, there is no excuse for not enabling "amd64" on that platform. ;-) Ok, one should not use 3Dnow on Intel, but MMX compatible code should work everywhere on AMD64/EMT64. vapier, is there anything that prevents --enable-amd64 to be enabled unconditionally for amd64? Leaving mmx masked and just using $(use_enable amd64) seems ok to me. ahha. This use flag is masked from bug 166240. I compiled imlib2 with USE=mmx and tested a few programs that depended on it and didn't find an issue. So, unmasked the use flag on 2007 and 2008 profiles. Open another bug if there are additional problems. Thanks. Unmasking USE flags "mmx" results in problem in idesk, see bug http://bugs.gentoo.org/show_bug.cgi?id=253619 Compiling imlib2 with the mmx USE-flag enabled breaks pypanel for me. It crashes with an segmentation fault. After disabling the mmx USE-flag it works flawlessly again. Cheers, Seerp ok fine, masked again. In the future you shouldn't append comments to old bugs, they are likely to get overlooked. *** Bug 260746 has been marked as a duplicate of this bug. *** How could this bug be FIXED if the flag is still masked? If the newest imlib2[mmx] works, then the mask should be lifted. If not, then perhaps a better resolution would be WONTFIX together with a fixing request upstream. Certainly not yet FIXED. Re-opening per user request If this flag could break something...no need to force to enable it. Closed for now as cantfix *** Bug 519710 has been marked as a duplicate of this bug. *** I took the time to test the 2 programs mentioned, idesk and pypanel. idesk doesn't crash anymore with my build using amd64 assembler (default configuration for imlib2). For pypanel I am not sure because I can't make it work, it seems lost in my e18 environment, it outputs this error on startup : Xlib.protocol.request.QueryExtension Traceback (most recent call last): File "/usr/bin/pypanel", line 957, in <module> PyPanel(display.Display()) File "/usr/bin/pypanel", line 94, in __init__ self.getDesktopNames() File "/usr/bin/pypanel", line 360, in getDesktopNames desktop.total = self.root.get_full_property(self._DESKTOP_COUNT, 0).value[0] AttributeError: 'NoneType' object has no attribute 'value' But it isn't a crash anyway, it just can't seem to be able to find the desktop here. I don't think the disabling of optimizations is still usefull, but anyway I use my own build of imlib2, so it's not a problem for me... (In reply to Patrik Larsson from comment #7) Jeroen misread the code -- the imlib2 configure script is confusing and provides two different options for enabling assembly code for the arch. --enable-mmx controls 32bit mmx code and --enable-amd64 controls 64bit sse2 code. trying to enable mmx in a 64bit build or amd64 in a 32bit build leads to hard failures. that said, the amd64 code path is sse2 based, not mmx (even though the routines are based on the mmx originally), so i can change flags to sse2. i'll do that in the 9999 ebuild and it'll be in the next release if no one complains. http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f0496dcd57987019ba99c2e6c1bfc607d15b07f |