Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Crosscompile CFLAGS & CHOST
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Sat Nov 12, 2011 5:41 am    Post subject: Crosscompile CFLAGS & CHOST Reply with quote

Hallo Leute,

bisher bin ich immer ohne diese Sache ausgekommen. Hintergrund: Ich kompiliere auf meinem i7-System auch mein Gentoo für meinen Atom-Prozessor. Mit der nun "neuen" GCC-Version 4.5.3 habe ich mal "-march=atom" versucht und prompt kommt "ungültiger Maschinenbefehl".

Liegt das an unterschiedlichen CHOST-Einträgen (i7=x86_64-pc-linux-gnu und Atom=i686-pc-linux-gnu)? Ich vermute mal ja und diese Seite sollte mein Freund sein. Und da meine Frage wie Eure Erfahrungen sind. Würdet Ihr mir zu "Creating a Cross-Compiler" oder zu "Cross-Compiling With Portage" raten. Ich würde es ja lieber mit Portage machen, da "kümmern" sich dann ja mehrere drum. ;)

Oder an etwas anderem? Andere HowTo's?

Und was ich gerade fand ist diese Seite. Da nun meine Frage: Gibt es ein HowTo ein laufendes System im CHOST umzustellen oder muss ich da Gentoo neu aufsetzen. Das wäre echt blöd. Lieber CHOST umsetzen und "emerge -e word" und gcc, binutils und glibc vorziehen.
Back to top
View user's profile Send private message
Treborius
Guru
Guru


Joined: 18 Oct 2005
Posts: 582
Location: Berlin

PostPosted: Sat Nov 12, 2011 8:14 pm    Post subject: Re: Crosscompile CFLAGS & CHOST Reply with quote

1. wie kompilierst du denn für den atom?
distcc oder was? ich weiss gerade nicht worum es bdabei geht ...

2. deine beiden CHOSTS sind grundverschieden, einer ist ein 64bit system, das andere ist 32bit
das sorgt bei mir für weitere verwirrung

ich kann garnicht verstehen, wie du bisher OHNE crosscompiler ausgekommen bist,
auch ohne neuen gcc

bitte mehr details, was du unter
Quote:

Hintergrund: Ich kompiliere auf meinem i7-System auch mein Gentoo für meinen Atom-Prozessor.


verstehst

was du meinst ist mir klar, aber nicht auf welchem weg

edit : zu der frage nach dem ändern von CHOST :
das geht, habs selber schon gemacht www.gentoo.org/doc/en/change-chost.xml

aber damit kannst du nicht einfach von 32bit auf 64bit wechseln (oder umgekehrt)
_________________
Systems running gentoo :
Desktop, Laptop, ZOTAC AD-10 media-center, odroid-xu4 server / wLan-router
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Sun Nov 13, 2011 6:12 am    Post subject: Re: Crosscompile CFLAGS & CHOST Reply with quote

Treborius wrote:
deine beiden CHOSTS sind grundverschieden, einer ist ein 64bit system, das andere ist 32bit
das sorgt bei mir für weitere verwirrung

Bisher ohne Probleme da ich in einer i686-chroot gearbeitet habe und da mein CFLAGS nicht für den Atom waren.
Quote:
www.gentoo.org/doc/en/change-chost.xml

Prima, genau das habe ich gesucht.
Quote:
aber damit kannst du nicht einfach von 32bit auf 64bit wechseln (oder umgekehrt)

Und wieso nicht?
Back to top
View user's profile Send private message
Treborius
Guru
Guru


Joined: 18 Oct 2005
Posts: 582
Location: Berlin

PostPosted: Sun Nov 13, 2011 6:37 am    Post subject: Re: Crosscompile CFLAGS & CHOST Reply with quote

Quote:
aber damit kannst du nicht einfach von 32bit auf 64bit wechseln (oder umgekehrt)


in einer chroot habe ich das noch nicht versucht
ich habe damals versucht ein laufendes system umzustellen

ohne erfolg

in einer chroot könnte das vllt sogar gehen
_________________
Systems running gentoo :
Desktop, Laptop, ZOTAC AD-10 media-center, odroid-xu4 server / wLan-router
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Sun Nov 13, 2011 6:44 am    Post subject: Re: Crosscompile CFLAGS & CHOST Reply with quote

Treborius wrote:
in einer chroot könnte das vllt sogar gehen

Aber leider auch nicht mit dieser Anleitung ohne Änderung. Mal sehen. Ganz habe ich es noch nicht aufgegeben.
Back to top
View user's profile Send private message
Treborius
Guru
Guru


Joined: 18 Oct 2005
Posts: 582
Location: Berlin

PostPosted: Sun Nov 13, 2011 1:29 pm    Post subject: Re: Crosscompile CFLAGS & CHOST Reply with quote

LinuxTom wrote:
Treborius wrote:
in einer chroot könnte das vllt sogar gehen

Aber leider auch nicht mit dieser Anleitung ohne Änderung. Mal sehen. Ganz habe ich es noch nicht aufgegeben.


in welche richtung soll es denn gehen?
64bit ==> 32 bit?
_________________
Systems running gentoo :
Desktop, Laptop, ZOTAC AD-10 media-center, odroid-xu4 server / wLan-router
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Sun Nov 13, 2011 6:00 pm    Post subject: Reply with quote

Jetzt noch i686 dann x86_64.

Aber das ist nicht so einfach. Ich müsste wohl über Stage 1 und 2. Da ich derzeit jedoch keine Zeit habe sieht mein jetziges Szenario erst einmal so aus:
  • Auf einem 64-Bit Host (Intel) richte ich eine minimale 64-Bit-Chroot ein, um in dieser die Binaries für meinen Atom zu erzeugen.
  • In dieser 64-Bit-Chroot richte ich einen Cross-Compiler für i686 ein und mit speziellen CFLAGS. Bspw. -march=atom.
  • Zusammenstellen des Systems und erzeugen der Binaries.
  • Verteilen der 32-Bit-Binaries auf meinen kleinen MSI-Laptop.


Ich werde einfach eine neue 64-Bit-Chroot installieren. Geht letztlich schneller, zumal derzeit meine Zeit sehr knapp ist.
Back to top
View user's profile Send private message
firefly
Advocate
Advocate


Joined: 31 Oct 2002
Posts: 4459

PostPosted: Sun Nov 13, 2011 6:54 pm    Post subject: Reply with quote

wiso ein 64bit chroot? Du kannst doch gleich ein 32Bit chroot erstellen.
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Sun Nov 13, 2011 7:39 pm    Post subject: Reply with quote

Eine 32-Bit-Chroot verwende ich ja jetzt schon, doch da kommt halt "ungültiger Maschinenbefehl", wenn ich "-march=atom" nehme (CHOST="i686-pc-linux-gnu"). Wenn es einfacher geht, dann sprich. Es kann natürlich auch sein, dass alle Mozilla-Programme, denn das sind die ganzen Programme die damit nicht klar kommen, nur das Problem haben.
Code:
i686-pc-linux-gnu-g++ -o nsMemoryReporterManager.o -c -I../../dist/system_wrappers -include ../../config/gcc_hidden.h -DMOZILLA_INTERNAL_API -DMOZ_THUNDERBIRD=1 -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -D_IMPL_NS_COM -I./../build -I. -I. -I../../dist/include -I../../dist/include/nsprpub  -I/usr/include/nspr -I/usr/include/nss      -I/usr/include   -fPIC  -I/usr/include -fno-rtti -fno-handle-exceptions  -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long -pipe -march=atom -mtune=atom -Wno-return-type -w -fno-strict-aliasing -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2 -pthread -D_REENTRANT -DQT_SHARED -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng15 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/libdrm -I/usr/include/qt4/QtCore -I/usr/include/gtk-unix-print-2.0    -I/usr/include -DMOZILLA_CLIENT -include ../../mozilla-config.h -Wp,-MD,.deps/nsMemoryReporterManager.pp nsMemoryReporterManager.cpp
nsIConsoleListener.idl
/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/dist/bin/xpidl -m typelib -w -I. -I../../dist/idl -e _xpidlgen/nsIConsoleListener.xpt -d .deps/nsIConsoleListener.pp nsIConsoleListener.idl
nsIConsoleMessage.idl
/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/dist/bin/xpidl -m typelib -w -I. -I../../dist/idl -e _xpidlgen/nsIConsoleMessage.xpt -d .deps/nsIConsoleMessage.pp nsIConsoleMessage.idl
make[2]: *** [_xpidlgen/nsIConsoleListener.xpt] Illegal instruction
make[2]: *** Deleting file `_xpidlgen/nsIConsoleListener.xpt'
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [_xpidlgen/nsIConsoleMessage.xpt] Illegal instruction
make[2]: *** Deleting file `_xpidlgen/nsIConsoleMessage.xpt'
nsIConsoleService.idl
/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/dist/bin/xpidl -m typelib -w -I. -I../../dist/idl -e _xpidlgen/nsIConsoleService.xpt -d .deps/nsIConsoleService.pp nsIConsoleService.idl
make[2]: *** [_xpidlgen/nsIConsoleService.xpt] Illegal instruction
make[2]: *** Deleting file `_xpidlgen/nsIConsoleService.xpt'
make[2]: Leaving directory `/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/xpcom/base'
make[1]: *** [libs] Error 2
make[1]: Leaving directory `/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/xpcom'
make: *** [default] Error 2
make: Leaving directory `/tmp/pool/msi/portage/x11-plugins/enigmail-1.1.2-r2/work/comm-1.9.2/mozilla/xpcom'
emake failed
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Tue Jan 31, 2012 11:39 pm    Post subject: Reply with quote

So, nachdem ich mich u.a. durch dieses hier gewühlt habe eine Frage:
Wie kann ich die CFLAGS für das Cross-Compiling-Binary ändern? Bei mir bleibt dieses konstant auf
Code:
CFLAGS="-Os -pipe  -fomit-frame-pointer -I/usr/i686-pc-linux-gnu/usr/include/ -I/usr/i686-pc-linux-gnu/include/"

Die Angabe in /usr/i686-pc-linux-gnu/etc/make.conf greift nicht. :(
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum