fuer verschiedene glibcs compilieren

Post Reply
Message
Author
andre

fuer verschiedene glibcs compilieren

#1 Post by andre »

hi,
ich habe ein problem: ich muss haeufiger fuer aeltere distributionen (suse6.x/7.x redhat5.x/6.x) programme kompilieren.
ich dachte dass ich die programme auf meinem desktop-pc (suse80 gcc2.95/glibc2.2.5) einfach mit "-static" linken muesste, um das so statisch compilierte programm auf allen systemen lauffaehich zu bekommen.
leider sind die dort kompilierten programme nicht auf meinem suse70-system lauffaehich, sie stuertzen mit einem "segmentation-fault" ab. die programme sind definitiv statisch kompiliert (ldd PROGRAM), und laufen auf dem desktop-pc (suse80) einwandrfrei.
ist es moeglich auf meinem desktop-pc fuer die gewuenschten polattformen zu kompilieren?

danke,
andre

ratte

Re: fuer verschiedene glibcs compilieren

#2 Post by ratte »

nicht dass ich ein c-programmierer waere, jedoch hatte ich einmal den fall, dass ich ein wundertoll-proggy installieren wollte, dass ne neuere glibc haben musste, als ich auf dem system hatte.

da habe ich einfach eine neue glibc in einen eigenen pfad installiert, vorher sicherungen von gcc usw. angelegt. anschliessend per symlink umbiegen auf die neue glibc gezielt, kompiliert, und wunderbar. nachher wieder zurueck-symlinken und duppti.

dunno, aber vielleicht hilft das ja.

ratte

andre

Re: fuer verschiedene glibcs compilieren

#3 Post by andre »

hi,
das trifft nicht ganz genau mein problem.
ich kopmplier die anwendung statisch auf meinem desktop-pc.
bei einem statischem programm erwarte ich dann eigentlich das das programm auf jedem x-beliebigem gnu-linux-system _ohne_ neucompilierung laueft, schliesslich werden ja keine funktionen irgentwelcher bibliotheken benoetigt.

leider funktioniert dies in der praxis nicht, ich wuesst gern warum, und/oder ob das problem loesbar ist.

gruss,
andre

andre

Re: fuer verschiedene glibcs compilieren

#4 Post by andre »

achso...
ich verwende zum kompilieren die folgenden flags:

CFLAGS="-O1 -march=i386 -mcpu=i386"
LDFLAGS="-static"


andre

ratte

Re: fuer verschiedene glibcs compilieren

#5 Post by ratte »

from /etc/make.conf gentoo linux

---schnipp---
# For optimal performance, enable a CFLAGS setting appropriate for your CPU
#
# -mcpu=<cpu-type> means optimize code for the particular type of CPU without
# breaking compatibility with other CPUs.
#
# -march=<cpu-type> means to take full advantage of the ABI and instructions
# for the particular CPU; this will break compatibility with older CPUs (for
# example, -march=athlon-xp code will not run on a regular Athlon, and
# -march=i686 code will not run on a Pentium Classic.
#
# CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp, athlon-4,
# athlon-tbird, athlon, duron, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686
# (Pentium Pro), pentium, pentium-mmx, pentiumpro, pentium2, pentium3, and
# pentium4. Note that Gentoo Linux 1.4 and higher include at least gcc-3.2.
#
# CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686
# (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95*
---schnapp---

vielleicht solltest du mcpu statt march nehmen?

ratte

Post Reply