# Ungültiger Maschinencode nach Board/Prozessorwechsel.

## Max Steel

ohje ohje ohje,

Also ich hab hier einen Rechner bei dem ich das Board ausgewechselt hab, vorher ein Board mit VIA Chipsatz und jetzt eins mit Intel 8180 oder so Chipsatz.

Der Prozessor ist von Pentium 3 auf Pentium 4 2,4Ghz.

Nun hab ich ein PRoblem, alles was ich neubaue endet darin das das Programm dann ungültige Maschinencodes hat.

Wie löse ich das Problem?

Ich habe bereits libtool und coreutils neugebaut und dann noch ein bisschen system in dem Glauben das es daann besser wird, aber nix is.

Hilft da nurnoch neu aufsetzen, oder was soll ich da machne?

----------

## firefly

vermutlich falsche -march in der make.conf gesetzt. Zum testen würde ich "-march" aus den CFLAGS entfernen.

----------

## schachti

Mit dem Board sollte das nichts zu tun haben, wenn, dann mit dem Prozessor. Ich hätte allerdings erwartet, dass Code für den Pentium 3 binärkompatibel zum Pentium 4 ist - das scheint nicht so zu sein.

----------

## firefly

 *schachti wrote:*   

> Mit dem Board sollte das nichts zu tun haben, wenn, dann mit dem Prozessor. Ich hätte allerdings erwartet, dass Code für den Pentium 3 binärkompatibel zum Pentium 4 ist - das scheint nicht so zu sein.

 

ähm alles was er neu baut macht probleme nicht was schon vor des prozessor-wechsel übersetzt wurde.

----------

## Max Steel

Vorhin hatte ich -march=pentium3 und jetzt -march=presscott nach Save_CFlags in gentoo-wiki.

ODer sollte ich das doch nur auf -march=pentium4 stellen?

----------

## schachti

Er schreibt aber nichts davon, dass er CFLAGS/CHOST geändert hat, also gehe ich davon aus, dass in der make.conf noch die Pentium 3 - Einstellungen stecken. Und ein Pentium 4 sollte damit umgehen können.   :Wink: 

EDIT: ok, mit dem neuen Posting ist das auch geklärt.   :Wink: 

----------

## Max Steel

Ääähm, ja doch ich hab sie geändert siehe vorigen Post

-march=pentium3 -O2 -pipe

auf

-march=presscott -O2 -pipe -fomit-frame-pointer

Den Rest hab ich so gelassen.

----------

## schachti

 *Max Steel wrote:*   

> Vorhin hatte ich -march=pentium3 und jetzt -march=presscott nach Save_CFlags in gentoo-wiki.
> 
> ODer sollte ich das doch nur auf -march=pentium4 stellen?

 

Was sagt denn

```

grep model /proc/cpuinfo

```

----------

## Max Steel

```
# cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 2

model name      : Intel(R) Pentium(R) 4 CPU 2.40GHz

stepping        : 7

cpu MHz         : 2399.940

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts sync_rdtsc

bogomips        : 3603.69

clflush size    : 64

```

wie gesagt, seeehr komisch,

/etc/make.conf

```
# These settings were set by the catalyst build script that automatically built this stage

# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--enable-new-dtags"

CHOST="i686-pc-linux-gnu"

MAKEOPTS="-j3"

ACCEPT_KEYWORDS="x86"

USE="-* 16bit 3dfx 3dnow 3dnowext 7zip X a52 aac aalib accessibility acl acpi

     adns aiglx aio akode alac alsa amarok amr ao aoss aotuv apm ares arts

     artswrappersuid asf async audacious audiofile autoipd avahi avantgo avi

     berkdb bidi bitmap-fonts bzip2 cairo caps cdda cddb cdio cdparanoia cdr

     cdrom chm cjk cli cracklib crypt css ctype cups curl cvs dba dbus dga

     djbfft dmi dmx dpms dri dts dv dvd dvdr dvdread dynamic encode enscript

     esd ethereal exif expat exscalibar extrafilters fam fame fastbuild ffmpeg

     fftw flac fontconfig foomaticdb force-cgi-redirect fortran ftp gd

     gdbm gif glibc-omitfp glitz glut glx gmp gpgme gphoto2 gpm

     graphviz gs gsm gstreamer gstreamer010 gzip h323 hal ical icu idea idn

     ifp imagemagick imlib immqt-bc ipod isdnlog javascript jbig

     joystick jpeg jpeg2k kde kdeenablefinal kdepim kernel_linux kig-scripting

     kipi lame lcms ldap lha libcaca libg++ libsamplerate libwww

     linuxthreads-tls live lm_sensors logitech-mouse logrotate lua lzo mad

     matroska md5sum memlimit mikmod mjpeg mmap mmx mmxext mng modplug motif

     mozsvg mp3 mp4 mpeg mtp musepack musicbrainz ncurses network new-login njb nls

     no-old-linux nptl nptlonly nsplugin ogg oggvorbis on-the-fly-crypt openal

     openexr opengl oss pam pam-console pcre pda pdf pdflib perl pic png posix pppd python

     qt qt4 qt3support quicktime rar rdesktop readline real reflection rle rtc samba

     screen sdl session shorten sid simplexml slang sms sndfile soap sockets

     speex spell spl sqlite sqlite3 sse sse-filters ssl svg syslog tcpd tetex

     tga theora threads tidy tiff tokenizer truetype truetype-fonts

     type1-fonts udev unicode unzip urandom usb userland_GNU userlocales

     utempter utf8 v4l v4l2 vcd vidix voodoo1 voodoo2 voodoo3 voodoo5 vorbis

     vorbis-psy win32codecs wma wmf x264 xanim xattr xcomposite xine xinerama

     xml xml2 xorg xpm xprint xrandr xscreensaver xsl xv xvid xvmc yv12 zip

     zlib zvbi"

AUTOCLEAN="yes"

FEATURES="-ccache -distcc -metadata-transfer"

LINGUAS="de"

CCACHE_DIR="/root/.ccache"

CCACHE_SIZE="2G"

PORTAGE_ELOG_SYSTEM="save"

PORTAGE_ELOG_CLASSES="info warn error"

ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol"

VIDEO_CARDS="nv nvidia vesa fbdev"

INPUT_DEVICES="keyboard mouse joystick"

EMERGE_DEFAULT_OPTS="-tv --with-bdeps y"

source /usr/portage/local/layman/make.conf

```

Hmm vll sind die LDFlags ja die Übeltäter.

OOkay, jetz weiß ich was los ist, ich darfs doch nur auf pentium4 stellen.

----------

## schachti

 *Max Steel wrote:*   

> 
> 
> ```
> vendor_id: GenuineIntel
> 
> ...

 

Das ist kein Prescott, da kann es auch nicht gehen. Du mußt -march=pentium4 verwenden (der Prescott hat model 3 und 4, wie im gentoo-wiki nachzulesen ist   :Wink: ).

----------

## Max Steel

Okay danke,

So also nochmal Compilierorgie.

Danach solts klappen.

DAnkeschön.

Und wenn net dann gibts aber *Gewehrhol* *PCanglotz* und wehe du machst auch nur ein Mucks das was nich geht.

Edith:

Ich muss jetzt eh erstmal die coreutils per https://forums.gentoo.org/viewtopic-t-504315.html neubauen.

----------

## furanku

Spricht eigentlich etwas gegen das -march=native der neueren gcc? Damit sollten sich doch solche Probleme, zumindest auf x86 basierten Architekturen, erledigen.

----------

## Inte

@MaxSteel: Hast Du auch schon 'nen neuen Kernel gebaut? (Processor type and features -> Processor family)

 *furanku wrote:*   

> Spricht eigentlich etwas gegen das -march=native der neueren gcc?

 Solange man kein distcc verwendet  :Wink: 

 *furanku wrote:*   

> Damit sollten sich doch solche Probleme, zumindest auf x86 basierten Architekturen, erledigen.

 Das einzige, das sich erledigt, ist das umstellen der /etc/make.conf. Der Code bleibt der Alte, solange er nicht auf der neuen Maschine übersetzt wurde. Aber Du hast schon recht, gegen PEBKAC hilft das in diesen Fällen sicherlich.

----------

## furanku

 *Inte wrote:*   

> Solange man kein distcc verwendet 

 Dass man keine hostspezifischen Architekturflags verwenden sollte, wenn man crosscompilieren möchte, sollte wohl jedem klar sein, und wurde vom OP ja auch nicht gefragt.   :Wink: 

----------

## Max Steel

ja, den Kernel hab ich neugemacht. (per normalem make dürfte das ja passen, oder?)

----------

