cross compiling Verständnisfrage

sammy2ooo

voll Tohuwabohu
Hallo Leute,

ich habe ein Alpha System und ein SMP i386 System im Netzwerk die beide mit NetBSD 3.0 laufen. Auf meiner Workstation läuft Gentoo Linux. Da die zwei Server meistens unterfordert sind möchte ich sie etwas mehr beanspruchen. Die Rede ist von distccd.

Wenn ich richtig im Bilde bin benötige ich hierfür allerdings einen Crosscompiler, den ich auf der Alpha und auf dem MultiCPU System mit den Linuxlibs bauen muss (gcc-3.4.3) Also habe ich cross-binutils-2.15.0.0nb3 und cross-i386-linux-2.0.7.1nb1 auf den NetBSD Kisten installiert. Und dann versucht die

Code:
/home/sammy/crossdev/src/gcc-3.4.3 # ./configure \
--prefix=/home/sammy/crossdev \
--target=i686-pc-linux \
--with-headers=/usr/pkg/cross/include \
--with-libs=/usr/pkg/cross/lib

Allerdings bleibt der Kompiliervorgang mti folgender Fehlermeldung stehen:

Code:
/bin/sh ./mkconfig.sh tconfig.h
/home/sammy/crossdev/src/gcc-3.4.3/gcc/xgcc
-B/home/sammy/crossdev/src/gcc-3.4.3/gcc/
-B/home/sammy/crossdev/i686-pc-linux/bin/
-B/home/sammy/crossdev/i686-pc-linux/lib/
-isystem /home/sammy/crossdev/i686-pc-linux/include
-isystem /home/sammy/crossdev/i686-pc-linux/sys-include -O2 -DIN_GCC
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -I. -I.
-I. -I./. -I./../include -I../intl  -g0 -finhibit-size-directive
-fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss
-fno-unit-at-a-time -fno-omit-frame-pointer \
   -c ./crtstuff.c -DCRT_BEGIN \
  -o crtbegin.o
In file included from ./crtstuff.c:62:
./tsystem.h:79:19: stdio.h: No such file or directory
./tsystem.h:82:23: sys/types.h: No such file or directory
./tsystem.h:85:19: errno.h: No such file or directory
./tsystem.h:92:20: string.h: No such file or directory
./tsystem.h:93:20: stdlib.h: No such file or directory
./tsystem.h:94:20: unistd.h: No such file or directory
./tsystem.h:100:18: time.h: No such file or directory
make[1]: *** [crtbegin.o] Error 1
make[1]: Leaving directory `/home/sammy/crossdev/src/gcc-3.4.3/gcc'
make: *** [all-gcc] Error 2

Diese header Dateien scheinen zum Linuxkernel zu gehören. Allerdings habe ich den Zusammenhang nicht verstanden. Wäre nett wenn mir jemand auf die Sprünge helfen könnte. Was hat es mit den binutils auf sich? Kann ich den crosscompiler nicht mit den binutils von NetBSD kompilieren?

Gruß
 
Okay, nach ein paar harten Tagen und zig Kompilierversuchen hab ichs endlich geschaft den Crosscompiler zu bauen. :ugly: Hier meine pseudocode script

Code:
# ensure no flags are set
unset CFLAGS
unset CXXFLAGS

# lets create our dirs
mkdir $HOME/crossdev
mkdir $HOME/src
mkdir $HOME/src/build

# building binutils
mkdir $HOME/src/build/binutils-build
cd $HOME/src/build/binutils-build && $HOME/src/binutils/configure \
--prefix=$HOME/crossdev \
--target=i686-pc-linux-gnu 
make -j6 && make install

# extending our PATH
OLDPATH=$PATH
PATH=$HOME/crossdev/bin:$PATH

# copy the headers and libs to there proper place
scp -r /usr/include host:~/crossdev/i686-pc-linux-gnu/include
scp -r /usr/lib host:~/crossdev/i686-pc-linux-gnu/lib

# building gcc
mkdir $HOME/src/build/gcc-build && cd $HOME/src/build/gcc-build
$HOME/src/build/gcc-build/configure \
--prefix=$HOME/crossdev \
--target=i686-pc-linux-gnu \
--with-gnu-ld \
--with-gnu-as
make -j6 && make install

# restoring our PATH
PATH=$OLDPATH

echo "Done..."

Der größte Stress besteht darin, die Header files und libs an die richtige Stelle zu bekommen. Ist sicher nicht die sauberste Lösung aber sie hat für mich funktioniert.

Happy crosscompiling
 
Das ganze ist auch irgendwie ein Problem der Sprache. Wenn du z.B. FreePascal verwendest geht es einfach so, mit einem simplen zusätzlichen Parameter.
 
Dank eines Stromausfalles, wie er so ca. 2-3mal im Monat hier vorkommt *argh @#!?* durfte ich nochmal von vorne beginnen. Hab dabei festgestellt das es so, wie ich es notiert habe nicht funktioniert. Hiernochmal ein update....

Code:
# ensure no flags are set
unset CFLAGS
unset CXXFLAGS

# install the libs 
pkg_add cross-i386-linux-2.0.7.1nb1.tgz

# lets create our dirs
mkdir /usr/pkg/cross/src
mkdir /usr/pkg/cross/src/build-binutils
mkdir /usr/pkg/cross/src/build-gcc

# upack the sources
# gcc 3.4.5 does not seems to work for me
# if you use any other versions you are on your own :)
tar -xvzf gcc-3.4.4.tar.bz2 -C /usr/pkg/cross/src
tar -xvzf binutils-2.15.tar.bz2 -C /usr/pkg/cross/src

# configuring binutils
cd /usr/pkg/cross/src/build-binutls
../binutils-2.15/configure \
--prefix=$HOME/crossdev \
--target=i686-pc-linux-gnu \
--disable-nls \
--disable-multilib

# building binutils and install them
make -j6 && make install

# extending our PATH
OLDPATH=$PATH
PATH=/usr/pkg/cross/bin:$PATH

# copy the headers and libs to there proper place
scp -r /usr/include host:/usr/pkg/cross/i686-pc-linux-gnu/include
cp -Rv /usr/pkg/cross/i386-linux/lib/* /usr/pkg/cross/i686-pc-linux-gnu/lib

# configuring gcc
# for gcc 3.3.5
#cd /usr/pkg/cross/src/build-gcc
#../gcc-3.3.5/configure \
#--prefix=/usr/pkg/cross \
#--target=i686-pc-linux-gnu \
#--with-gnu-ld \
#--with-gnu-as \
#--disable-nls \
#--disable-multilib 

# configuring gcc 
# for gcc 3.4.4
cd /usr/pkg/cross/src/build-gcc
../gcc-3.4.4/configure \
--prefix=/usr/pkg/cross \
--target=i686-pc-linux-gnu \
--with-gnu-ld \
--with-gnu-as \
--disable-nls \

# building gcc
make -j6 && make install

# restoring our PATH
PATH=$OLDPATH

echo "Done..."

falls beim gccbau ein "Memory exhausted" Fehler auftaucht sollte folgendes helfen:
# limit
# unlimit datasize
 
Wo wohnst du armer Kerl denn?

Ich hatte hier nen Server mit >750 Tagen uptime ohne USV, auch danach kann ich mich an keinen Ausfall erinnern, und das ist jetzt schon >2 Jahre her.
 
maledictus schrieb:
Wo wohnst du armer Kerl denn?

Ich hatte hier nen Server mit >750 Tagen uptime ohne USV, auch danach kann ich mich an keinen Ausfall erinnern, und das ist jetzt schon >2 Jahre her.

ich wohne im tiefsten Schwarzwald... Ein wirklich üble Gegend für einen Technikfreak. DSL werden wir hier so schnell nicht sehen und der Handyempfang (D1/D2) ist auch bescheiden... :grumble: [sarkasmus=on]Ich habe manchmal das Gefühl, dass in unserem Kaff gerademal ein Stromkabel (230V) zum nächsten Kaff gelegt worden ist...nix mit Ringleitungen usw. [sarkassmus=off] Früher wurden Stromausfällge bedingt durch Wartungsarbeiten zumindest noch angekündigt. Heute stellen die einfach den Strom ab wie es denen (NBW) passt. Kurz Strom weg und zack wieder da....herrlich der Schlag auf die Platten und das Netzteil....mir ist erst wieder eine von meiner Alpha abgeraucht ;'( Anfangs dachte ich erst dass sei nur in unserem Haus so wegen zu schwachen Sicherungen etc. Allerdings ist wirklich das ganze Dorf betroffen... :zitter:

Ehrlich ich hab die Schnauze voll.... Time to move
 
Ich habe eine USV, und man bekommt auch immer wieder das Klacken des Überspannungsschutzes mit, wenn mal wieder Spannungsstöße im Netz auftreten. Der privatisierte Strom ist kein besonders zuverlässiger 240V Sinus.
 
Nuja, was soll ich da sagen: Herzlichen Dank an die Stadtwerke von Au-Heerbrugg-Berneck, da fällt schonmal der Strom für läppische 7 Stunden am Stück aus, viel Spass mit der USV... Also heult hier mal nicht so rum...
 
Das ist ja übel. Wir haben hier alle Jubeljahre mal einen Ausfall.

Aber bei uns hat vor ca. 3 Wochen voll Murphys-Gesetz zugeschlagen. Unsere USV piepte wegen schwachen Akkus rum, die waren schon bestellt und eigentlich überfällig und genau in der Zeit, wo wir mit 'heruntergelassenen Hosen' dastanden, gab es den Tornado in HH Harburg. Da schlug ein Teil von einem Blechdach in eine Hochspannungsleitung ein.
Das muss einen richtigen Satz im Stromnetz gegeben haben. Ausgerechnet die Maschinen, die an der USV hingen, hat es erwischt. Das Teil hat sich wohl eine kleine Auszeit genommen. Die ungeschützten PCs lief unbeeindruckt weiter.

Gruß c.
 
Hehe, da hab ichs gut:

In der Gemeinde, in der ich wohne, haben wir ein eigenes Wasserkraftwerk, und auch sonst ist die Stromversorgung ziemlich zuverlässig :)
 
Haben uns bei Conrad vor vier Wochen einen Generator gekauft. Dieser sollte innert
20 Minuten zum Laufen gebracht werden. :)

Nur dumm, dass die Spritpreise so steigen.
 
Ihr habt Probleme ich hab bei jeden Tag 2-3 Stromausfälle. Die meisten zwar unter einer Minute, aber kann auch bis zu einer halben Stunde dauern. Und wenns nach 1 Uhr passiert bleibts dunkel bis die Frühschicht um 5 Uhr wieder da ist.

So siehts in einem 3-te Weltland aus. Aber dafür zahle ich auch nur 7 Cent pro KW.
 
Zurück
Oben