Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 319705 - Unable to compile perl-5.10.1 with gcc-4.5.0, no such instruction "movbe" (+gettext too)
Summary: Unable to compile perl-5.10.1 with gcc-4.5.0, no such instruction "movbe" (+g...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-14 14:03 UTC by Piotrek Juzwiak
Modified: 2010-05-14 21:22 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Piotrek Juzwiak 2010-05-14 14:03:59 UTC
Unable to compile perl-5.10.1 with gcc-4.5.0

with message 

{standard input}: Assembler messages:
{standard input}:5488: Error: no such instruction: `movbe 212(%esp),%eax'
{standard input}:6473: Error: no such instruction: `movbe 264(%esp),%eax'
make: *** [pp_pack.o] Error 1


Reproducible: Always

Steps to Reproduce:
1.Rebuilding system with "emerge -euvr system"
2.perl fails to compile
3.

Actual Results:  
Perl 5.10.1 fails to compile

Expected Results:  
Perl should compile just fine

emerge --info 

Portage 2.1.8.3 (default/linux/x86/10.0/desktop/kde, gcc-4.5.0, glibc-2.11.1-r0, 2.6.32-21-generic i686)
=================================================================
System uname: Linux-2.6.32-21-generic-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-2.0.1
Timestamp of tree: Thu, 13 May 2010 20:00:01 +0000
app-shells/bash:     4.1_p5
dev-lang/python:     2.6.4-r1
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.65
sys-devel/automake:  1.11.1
sys-devel/binutils:  2.18-r3
sys-devel/gcc:       4.3.4, 4.5.0
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.33
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=atom -mtune=atom -m32 -mfpmath=sse -mssse3 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=atom -mtune=atom -m32 -mfpmath=sse -mssse3 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j2"
PKGDIR="/var/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="32bit X a52 aac acl acpi akonadi alsa archive aspell bash-completion bindist branding bzip2 cairo cli consolekit cracklib cups cxx dbus dhcpcd dri dts emboss encode exif fam ffmpeg firefox fortran gif gnutls graphite hyperestraier iconv inotify ipod jpeg kde kipi laptop lcms libnotify lzma lzo mad matroska metalink mikmod minimal mmap mmx mng modules mp3 mp4 mpeg mudflap mysql ncurses networkmanager nls nptl nptlonly nsplugin nss ogg opengl openmp optimized-qmake pam pango pcre pdf perl phonon plasma png policykit ppds python qt3support qt4 readline rss samba scanner sdl semantic-desktop session smp solid spell sse sse2 ssl ssse3 startup-notification svg svga symlink sysfs taglib tcpd theora threads tiff truetype udev unicode usb v4l2 virtuoso vorbis wifi x264 x86 xattr xcb xcomposite xine xml xorg xulrunner xv xvid xvmc zeroconf zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" RUBY_TARGETS="ruby18" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Piotrek Juzwiak 2010-05-14 14:05:03 UTC
If that changes anything i am compiling it while chrooting (fresh system).
Comment 2 Rafał Mużyło 2010-05-14 16:30:43 UTC
Are you sure about '-mfpmath=sse -mssse3' part of your CFLAGS ?
Also, on ~x86 '-m32' is rather redundant.
Comment 3 Piotrek Juzwiak 2010-05-14 17:01:22 UTC
Why shouldn't i be sure about those settings? From what i gathered (forums, mailing lists) it is safe and if i don't explicitly use -mssse3 (at least with native, no idea if it is the same with -march=atom) it won't be used. I put -m32 since there are 64 bit atom chips but i want only 32 bit code without 64 bit optimizations (of course i may be wrong).

If i understand it right -mssse3 is the same as -msse3 (or not?) otherwise it would say that there is no such command/flag ?

Atom has sse,sse2,ssse3 and mmx so i guess ssse3 is safe since it will automatically enable sse,sse2,ssse3 and mmx?
Comment 4 Piotrek Juzwiak 2010-05-14 17:06:16 UTC
I just read online docs for gcc 4.5.0 so it looks like atom already activates sse,sse2,ssse3 and mmx (ssse3 is correct from what i see and it shouldn't result in compile failures)
Comment 5 Piotrek Juzwiak 2010-05-14 17:09:54 UTC
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html

The docs introduce new instructions (aforementioned movbe) which DO NOT exist in gcc 4.4.3 (just change the numbers after gcc in above link to check 4.4.3 docs. 
Comment 6 Piotrek Juzwiak 2010-05-14 17:13:35 UTC
I found the same bug with not found instruction (movbe) in gettext, should i file another bug report?
Comment 7 Piotrek Juzwiak 2010-05-14 17:22:09 UTC
From what i see my CPU supports movbe instructions. Is it possible i get those errors because i am compiling the system (chroot) while using ubuntu 10.4 or should i use system rescue cd (which is gentoo based from what i remember)


cat /proc/cpuinfo

cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 28
model name	: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
stepping	: 2
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm
bogomips	: 3191.91
clflush size	: 64
cache_alignment	: 64
address sizes	: 32 bits physical, 32 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 28
model name	: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
stepping	: 2
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm
bogomips	: 3191.94
clflush size	: 64
cache_alignment	: 64
address sizes	: 32 bits physical, 32 bits virtual
power management:


Comment 8 Piotrek Juzwiak 2010-05-14 17:36:17 UTC
Is it possible that by using Ubuntu 10.4 (and in fact using that kernel) and it's GENERIC kernel (which probably doesn't suport movbe) i am unable to use those instructions when chrooting to my installation?
Comment 9 Piotrek Juzwiak 2010-05-14 21:22:54 UTC
I found answer to my bug, as it was a fresh system i had old binutils 2.8.x while movbe is available from binutils version 2.10.x

After recompiling binutils with old gcc 4.3.4 i can now use gcc 4.5.0 without problems