В Tue, 20 Nov 2012 17:50:36 +0200
Yannis Kontekakis <[email protected]> пишет:

> On 11/20/2012 05:34 PM, Alexander Tsoy wrote:
> > В Tue, 20 Nov 2012 16:54:39 +0200
> > Yannis Kontekakis<[email protected]>  пишет:
> >
> >> Hello,
> >>
> >> I am trying to install erlang on a hardened amd64 gentoo system running
> >> on a kvm guest. The use flags and version of erlang are the following:
> >>
> >> dev-lang/erlang-15.2  USE="hipe java kpoll odbc smp ssl -compat-ethread
> >> -doc -emacs -halfword -sctp -tk -wxwidgets"
> >>
> >> my CFLAGS are:
> >> CFLAGS="-march=core2 -O2 -pipe"
> >> CXXFLAGS="${CFLAGS}"
> >>
> >> cat /proc/cpuinfo reports 4 cores of:
> >>
> >> processor    : 3
> >> vendor_id    : AuthenticAMD
> >> cpu family    : 6
> >> model        : 2
> >> model name    : QEMU Virtual CPU version 1.0
> >> stepping    : 3
> >> microcode    : 0x1000065
> >> cpu MHz        : 2100.278
> >> cache size    : 512 KB
> >> fpu        : yes
> >> fpu_exception    : yes
> >> cpuid level    : 4
> >> wp        : yes
> >> flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> >> pat pse36 clflush mmx fxsr sse sse2 syscall nx lm nopl pni cx16 popcnt
> >> hypervisor lahf_lm svm abm sse4a
> >> bogomips    : 4200.55
> >> TLB size    : 1024 4K pages
> >> clflush size    : 64
> >> cache_alignment    : 64
> >> address sizes    : 40 bits physical, 48 bits virtual
> >> power management:
> >>
> >> the error message that emerge prints while dying:
> >>
> >> === Entering application hipe
> >> make[3]: Entering directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib/hipe/rtl'
> >> (cd ../main&&  make hipe.hrl)
> >> make[4]: Entering directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib/hipe/main'
> >> sed -e "s;%VSN%;3.9;" ../../hipe/main/hipe.hrl.src>
> >> ../../hipe/main/hipe.hrl
> >> make[4]: Leaving directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib/hipe/main'
> >> erlc -W  +debug_info +inline -o../ebin hipe_rtl.erl
> >> make[3]: *** [../ebin/hipe_rtl.beam] Illegal instruction
> >> make[3]: Leaving directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib/hipe/rtl'
> >> make[2]: *** [opt] Error 2
> >> make[2]: Leaving directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib/hipe'
> >> make[1]: *** [opt] Error 2
> >> make[1]: Leaving directory
> >> `/var/tmp/portage/dev-lang/erlang-15.2/work/otp_src_R15B/lib'
> >> make: *** [secondary_bootstrap_build] Error 2
> >> emake failed
> >>    * ERROR: dev-lang/erlang-15.2 failed (compile phase):
> >>    *   (no error message)
> >>    *
> >>    * Call stack:
> >>    *     ebuild.sh, line  93:  Called src_compile
> >>    *   environment, line 3965:  Called die
> >>    * The specific snippet of code:
> >>    *       emake -j1 || die;
> >>    *
> >>
> >> And finally, dmesg reports:
> >> beam.smp[27752] trap invalid opcode ip:54b49c00c4 sp:3d9f459d3f0 error:0
> >> in beam.smp[54b48e4000+261000]
> >>
> >> Emerging erlang on my desktop(a similar hardened gentoo setup) completes
> >> successfully. The only thing I can think of is that something is wrong
> >> with my CFLAGS(but this is just an assumption).
> >>
> >> Any help would be appreciated
> >>
> >> Regards,
> >>
> >> Yannis
> >>
> > It seems that KVM host is and AMD-based system. I suggest you to drop
> > "-march=core2" from CFLAGS. Or if you do not plan to migrate this VM
> > you can also try to replace it with something like "-march=amdfam10
> > -mno-3dnow". :)
> >
> 
> I thought so... I now have to rebuild the whole world :) Is anyone aware 
> of an -march value that can be used interchangeably between 64bit intel 
> & amd cpus? The kvm host is not under my administration, so at any time 
> my guest could be switched between hosts.
> 

Simply do not use -march:
CFLAGS="-O2 -pipe"
Binaries compiled with this cflags should work on any x86_64 system.

-- 
With best regards,
Alexander Tsoy

Reply via email to