[opensuse-buildservice] How to build i686 only package in BuildService?
Hi, there's a bug#682 in icedtea bugzilla, that JRE fails to run on i586 machine with guarantee(VM_Version::supports_cmov()) failed: illegal instruction. After reading the code it seems JIT emits cmov* instructions, so the produced native code cannot run on i586 processors. I think the most clean way how to fix this in openSUSE is build our openjdk (and Sun Java as well?) as i686 only packages as Fedora and RedHat already does. However it seems like pretty challenging in a BuildService, because the only one package with i686 version I'm aware is glibc, but this approach seems not usable for openjdk, where only i686 and not i586 version is needed. So how can be only i686 rpm packages produced in a buildservice? [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=682 Regards Michal Vyskocil
El 29/03/11 10:48, Michal Vyskocil escribió:
Hi,
there's a bug#682 in icedtea bugzilla, that JRE fails to run on i586 machine with guarantee(VM_Version::supports_cmov()) failed: illegal instruction. After reading the code it seems JIT emits cmov* instructions, so the produced native code cannot run on i586 processors.
I think the most clean way how to fix this in openSUSE is build our openjdk (and Sun Java as well?) as i686 only packages as Fedora and RedHat already does. However it seems like pretty challenging in a BuildService, because the only one package with i686 version I'm aware is glibc, but this approach seems not usable for openjdk, where only i686 and not i586 version is needed.
So how can be only i686 rpm packages produced in a buildservice?
[1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=682
I tried to figure this out too, with no luck. Will be cool if a option is made available in the web interface to create only i686 packages for a whole project and/or specific packages. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Dienstag, 29. März 2011, 10:56:36 schrieb Cristian Rodríguez:
El 29/03/11 10:48, Michal Vyskocil escribió:
Hi,
there's a bug#682 in icedtea bugzilla, that JRE fails to run on i586 machine with guarantee(VM_Version::supports_cmov()) failed: illegal instruction. After reading the code it seems JIT emits cmov* instructions, so the produced native code cannot run on i586 processors.
I think the most clean way how to fix this in openSUSE is build our openjdk (and Sun Java as well?) as i686 only packages as Fedora and RedHat already does. However it seems like pretty challenging in a BuildService, because the only one package with i686 version I'm aware is glibc, but this approach seems not usable for openjdk, where only i686 and not i586 version is needed.
So how can be only i686 rpm packages produced in a buildservice?
Just add BuildArch: i686 to your spec file ?
[1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=682
I tried to figure this out too, with no luck. Will be cool if a option is made available in the web interface to create only i686 packages for a whole project and/or specific packages.
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
El 29/03/11 12:51, Adrian Schröter escribió:
BuildArch: i686
which Of course, doesnt work %ifarch %ix86 BuildArch: i686 %endif Helps but %optflags is still wrong should be according to the build configs "-march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0" but it is expanding to : "-fomit-frame-pointer -fmessage-length=0" -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Dienstag, 29. März 2011 schrieb Cristian Rodríguez:
El 29/03/11 12:51, Adrian Schröter escribió:
BuildArch: i686
which Of course, doesnt work
%ifarch %ix86 BuildArch: i686 %endif
Helps but %optflags is still wrong
should be according to the build configs
"-march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0"
but it is expanding to :
"-fomit-frame-pointer -fmessage-length=0"
Interesting. I wonder how long we compile the glibc.i686 with i586 optflags :( Greetings, Stephan -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Mar 30, 2011 at 6:15 AM, Stephan Kulow
Am Dienstag, 29. März 2011 schrieb Cristian Rodríguez:
should be according to the build configs
"-march=i686 -mtune=generic -fomit-frame-pointer -fmessage-length=0"
but it is expanding to :
"-fomit-frame-pointer -fmessage-length=0"
Interesting. I wonder how long we compile the glibc.i686 with i586 optflags :(
Greetings, Stephan
Even more interesting, I wonder how many archs will break when i686 optflags are finally used. (old archs of course) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 2011-03-30 11:11:46 -0300, Claudio Freire wrote:
Even more interesting, I wonder how many archs will break when i686 optflags are finally used.
(old archs of course)
do the recent via chips support all i686 stuff? darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
El 30/03/11 12:21, Marcus Rueckert escribió:
On 2011-03-30 11:11:46 -0300, Claudio Freire wrote:
Even more interesting, I wonder how many archs will break when i686 optflags are finally used.
(old archs of course)
do the recent via chips support all i686 stuff?
Yes, there are some old AMD geode micros that will stop working though. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
El 29/03/11 10:48, Michal Vyskocil escribió:
So how can be only i686 rpm packages produced in a buildservice?
I also think we should switch the complete distro to i686 as fedora [1] and Ubuntu [2] already did. Note that Im not claiming performance gains or magic improvements ;) [1] http://fedoraproject.org/wiki/Features/F12X86Support [2] http://www.thisweekinlinux.com/2010/06/ubuntu-10-10-maverick-meerkat-drops-p... -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
El 29/03/11 10:48, Michal Vyskocil escribió:
Hi,
there's a bug#682 in icedtea bugzilla, that JRE fails to run on i586 machine with guarantee(VM_Version::supports_cmov()) failed: illegal instruction. After reading the code it seems JIT emits cmov* instructions, so the produced native code cannot run on i586 processors.
I think the most clean way how to fix this in openSUSE is build our openjdk (and Sun Java as well?) as i686 only packages as Fedora and RedHat already does. However it seems like pretty challenging in a BuildService, because the only one package with i686 version I'm aware is glibc, but this approach seems not usable for openjdk, where only i686 and not i586 version is needed.
So how can be only i686 rpm packages produced in a buildservice?
[1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=682
SO, as a workaround, I suggest, adding to the spec file %ifarch %ix86 BuildArch: i686 %endif and set CFLAGS/CXXFLAGS to %ifarch %ix86 export CFLAGS="%optflags -march=i686 -mtune=atom" .... %endif -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Mar 29, 2011 at 03:48:16PM +0200, Michal Vyskocil wrote:
Hi,
there's a bug#682 in icedtea bugzilla, that JRE fails to run on i586 machine with guarantee(VM_Version::supports_cmov()) failed: illegal instruction. After reading the code it seems JIT emits cmov* instructions, so the produced native code cannot run on i586 processors.
I think the most clean way how to fix this in openSUSE is build our openjdk (and Sun Java as well?) as i686 only packages as Fedora and RedHat already does. However it seems like pretty challenging in a BuildService, because the only one package with i686 version I'm aware is glibc, but this approach seems not usable for openjdk, where only i686 and not i586 version is needed.
So how can be only i686 rpm packages produced in a buildservice?
[1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=682
So on the end Oracle devs considered this as a regression, so it has been commited into icedtea-1.10 we will distribute, so this is fixed at least for openjdk http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-March/013375.html Regards Michal Vyskocil
participants (6)
-
Adrian Schröter
-
Claudio Freire
-
Cristian Rodríguez
-
Marcus Rueckert
-
Michal Vyskocil
-
Stephan Kulow