PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rpm-Source-Pakete bei SuSE



Hein
17.11.99, 07:54
Liebe Pinguine,

kann mir jemand sagen, welchen Code man erhält, wenn man ohne Veränderung irgendwelcher Konfigurationsdateien mit rpm bei SuSE 6.1 ein Quellpaket aus der Serie zq kompiliert? Ist das dann wieder 386er-Code oder richtet sich der Compiler nach dem tatsächlich vorhandenen System?

Leider konnte ich im SuSE-Handbuch und in der Support-Datenbank keine Antwort auf diese Frage finden.

Hein

pitu
17.11.99, 20:04
Das kommt darauf an, was für Optionen du im
Makefile eingibst, bzw was das default ist.

(Ich bin leider kein Programmierer http://www.linuxforen.de/ubb/wink.gif )

Nähere Infos:
Nikolaus Schüler, Der gcc-Compiler

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

[Diese Nachricht wurde von Thorsten Wandersmann am 18. November 1999 editiert.]

Hein
19.11.99, 07:57
Hi!

Tja, Programmierer bin ich auch nicht - will ich auch nicht werden. Aber meine Frage war eigentlich etwas anders gemeint:

Wenn ich normale Sourcen (z.B. von kde.org) aus dem Internet beziehe, dann erzeuge ich erst mit "./configure" ein Makefile. Dabei wird in der Regel mein System erkannt und die entsprechenden Flags für den Compiler werden gesetzt (-O2, -mpentium etc.). Wenn ich sicher gehen will, kann ich anschließend das Makefile editieren und alles so einstellen, wie es mir passt.

Meine Frage war nun, ob bei SuSE die Source-rpm-Pakete, die ja via rpm -b(X) kompiliert und installiert werden, ebenfalls zuvor mein System abfragen und automatisch die Flags entsprechend setzen oder ob SuSE in den Source-rpm-Paketen eine Standardeinstellung vornimmt. Die Dinger sind naemlich so komplex, dass man nicht mal eben so ein Makefile finden kann http://www.linuxforen.de/ubb/frown.gif.

Insofern betrifft die Frage nicht den Compiler selbst, sondern die Vorgehensweise bei SuSE.

Na, weiss das jemand???

Schönes W.E. allerseits
Hein

Hagen von Tronje
24.11.99, 01:16
Hallo,

oh knifflig,
nehmen wir doch mal das Paket
asedit.spm
Wenn Du das Paket mittels yast instalierst
oder in Deine eigen Versuchs-rpm-Datenbank,
dann findest Du unter dem SPECS-Verzeichnis
doch asedit.spec

Dort liest Du
xmkmf
Also hast Du es hier mit imake
und nicht mit dem automake (das z. B.
KDE benutzt zu tun)
Doch es ist wohl etwas ähnliches wie
configure.
[Da gibt es auch noch ein drittes "make"-System,
aber ich weiß nicht mehr, wie das heißt]
Jedenfalls wird dadurch ein
Makefile
produziert
und mit
make
der Compiliervorgang angestoßen.

Vielleicht wenn Du im spec-file
make asedit CXXFLAGS="-mpentium"
eingibst??

Mehr weiß ich auch nicht http://www.linuxforen.de/ubb/frown.gif

Hagen

PS
Also
-O2
wird anscheinend öfters benützt,
aber
-mpentium
glaub ich jetzt nicht http://www.linuxforen.de/ubb/frown.gif

global C
24.11.99, 17:46
Ich denke, SuSE kann die Packete nur mit den vorsichtigsten Einstellungen ausliefern.

Auf der Packung steht sinngemäß ´Mindestanforderung 386er´. Da mit der rpm-Installation ja nichts mehr kompiliert wird, kann das Packet also nur für das ´Mindestsystem´ kompiliert worden sein.

´Ist aber ne Spitzen Idee Hein!
Da müßte ja einiges Potential liegen, die Sourcen mal für Pentium usw. optimiert zu kompilieren!

Weiß jemand was sowas bringt? Z.B. KDE oder XF86 neu, optimiert zu kompilieren?

global C
25.11.99, 18:38
Alle Achtung, das Du so große Packete anfasst.
Bei meiner kaum aktualisierten SuSE6.1 scheitern inzwischen auch schon kleinere Sachen.

'ne RedHat Distri sollte ja mit speziellen Pentium-binaries ausgeliefert werden, dafür werden aber insgesamt weniger proggys ausgeliefert.

Mit meiner nächsten Distri werd' ich das 586er-kompilieren auch mal probieren.

Viel Spaß!

Hein
25.11.99, 23:46
Hi globalC!

Genau dieses Experiment wollte ich starten! Dass die vorkompilierten SuSE-RPM-Pakete für den 386er kompiliert wurden, ist klar. Aber es gibt ja auch noch die Source-RPMs (Suffix .spm). Die müssen deshalb ja nicht zwangsläufig auch 386er Code produzieren.

Zur Info: Mit KDE 1.1.2 habe ich das bereits ausprobiert. Ich hatte bisher die RPM-Version vom SuSE FTP-Server laufen. Jetzt habe ich mir die Sourcen runtergeladen und selbst kompiliert. Dabei hat "configure" erkannt, dass bei mir ein 586er-System läuft und die entsprechenden Infos an das Makefile weitergegeben, wodurch dann entsprechend kompiliert wurde. Anschließend konnte ich tatsächlich eine (wenn auch nicht umwerfende) Performance-Steigerung feststellen.

Also dachte ich mir, es müsste doch was bringen, das gesamte XF86-System neu zu kompilieren. Ich habe mir von der SuSE-CD das entsprechende SPM-Paket installiert und via rpm -bb kompiliert. Dabei konnte ich jedoch nicht erkennen, dass Systeminformationen abgefragt wurden. Auch die Bildschirmausgaben beim kompilieren sahen nicht danach aus.

In der RPM-Howto habe ich gelesen, dass man in der Datei /etc/rpmrc entsprechende Flags für jede Plattform einstellen kann. Aber anscheinend wird diese Datei von den SuSE-Paketen ignoriert.

http://www.linuxforen.de/ubb/frown.gif
Hein

hirsch
26.11.99, 10:02
Hallo

Man könnte ja auch schon auf eine Distri umsteigen, welche schon für 586 kompiliert wurde...die Stampede ist eine davon (hab ich schon selber getestet) das Teil ist aber nur für die Konfigurierwütigen unter Euch....es ist nämlich noch ne Beta...
Der Geschwindigkeitsunterschied ist aber nicht so berauschend...wenn Du darauf hinaus willst. Ich würd einfach mehr Ra(h)m (ist die Sahne eines Systems..) in Deine Kiste reinstopfen...

Servus

Hein
26.11.99, 23:27
Nee, Hirsch, mit meiner SuSE bin ich durchaus zufrieden! Wo sonst kriegt man denn so viel Software? Ich spiele halt nur gern!
http://www.linuxforen.de/ubb/wink.gif
Hein

Catonga
27.11.99, 00:18
Wie wärs mit Mandrake 6.1
Die basiert auf Red Hat und läuft erst ab Pentium Prozessoren, da sie nämlich schon dafür kompiliert ist.
Mit dem Mandrake Power Pack ist auch relativ viel Software dabei.
www.mandrake.org (http://www.mandrake.org)

Bernhard Koschnick
27.11.99, 02:38
Hi Hein

Darf ich mal die Werbetrommel rühren? http://www.linuxforen.de/ubb/biggrin.gif : Der Performans-Unterschied zwischen i386 und i586 Code ist sicher nicht so gewaltig. Aber wie wär's mit Pentium? Ich fahr den AMD-K6-2-350 und hab 64 MB SDRAM. Ist im Vergleich zu Athlon oder ähnlichen Leckereien und zum doppelten RAM fast nur Spielzeug, aber immerhin...

Mein letztes $Win-Vwerbrechen vor dem Linux-Start war, den $Win-Notepad gegen einen eigenen mit Child-Window zu ersetzen. Die Compiler-Standard-Vorgabe war i386. Nach Erscheinen des Hauptfensters benötigte das Child nochmal ca. 1/2 sec. Nachdem hier mal 'ne Diskussion gelaufen war, hab ich das Teilchen nochmal frisch auf Pentium compiliert. Das Öffnen des Childs war nun ein nahtloser Übergang und nur noch vergleichbar zu einem kurzen Refreshing wahrnehmbar. Erst als ich das Teilchen dann Linux-Like gemacht habe (alle Menübefehle über Tastenkombination verfügbar) + ein paar Extra-Features, war der Zeitbedarf wieder nahe bei der Ursprungs-Version, allerdings mit optisch nahtlosem Übergang.

Unter Stichworten wie: "Stampede Linux", "http://www.stampede.org" oder "bis zu 30%schneller" sollte der vorangegangene Thread zum Thema zu finden sein (den Thread-Namen weiß ich natürlich nicht mehr).

Aber zum Thema: Bis letzten Weihnachten hatte ich eine 'feuerschnelle' 486-Peacock-Maschine mit richtig gecachetem 100-ter Prozessor (von einem Profi gebraucht gekauft). Da ich nur langsameres kannte, war ich stolz auf mein superschnelles Maschinchen (ungeachtet der längst aktuellen Pentiums). Nur ein für diese Maschinen ganz typischer plötzlicher Hardware-Gau zwang mich zum 'Aktualisieren'. Der Preis ist nun, daß manche klassische Spiele, die ich gern noch mal spielen wollte, einfach viel zu schnell laufen. Auch fragte ich mal in den Foren, ob sich das Scrollen der Editoren per Konfiguration verlangsamen lässt (bei Nutzung der Scroll-Tasten sind die 'durchjagenden' Texte praktisch nur noch schemenhaft erkennbar, geschweige denn lesbar). - Das meint, wie Hirsch schon gesagt hat, das Schnellermachen wird sich nicht lohnen, es sei denn, Dir macht die Bastelarbeit wirklich Spass. Vom Performance-Gewinn her lohnt es sich sicher erst für Pentium incl. aller Vor- und Nachteile, denn die Bibliothehen sind offensichtlich noch auf i386 ausgelegt.

Gruss

Bernhard

pitu
01.12.99, 02:31
Hmmm, es gibt 2 Arten, die Sachen auszupacken.
Eine, indem die specfiles und Diffs mit eingespielt werden (über rpm)
aber frag nicht wie das geht. Die andere packt einfach nur den
Orginal Source aus (tar.gz).

Und dan hängt eigentlich alles davon ab was Du einstellst.
Eventuell nach einem .configure.

Die Sourcen sind von uns nicht verändert sondern im Orginal dabei.

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

pitu
01.12.99, 10:57
Antwort eines Kollegen, mit bestem Dank:

----------------------------------------------------------------------
SRPM sollten beim Kompilieren mit den in /usr/lib/rpm/rpmrc angegebenen
Optionen kompiliert werden. Guck einfach mal ins RPM-HOWTO,
/usr/doc/packages/rpm/RPM-HOWTO/RPM-HOWTO-7.html unter den Punkt 7.2

Generell muß das Makefile darauf vorbereitet werden, wenn man im Paket ein
RPM_OPT_FLAGS findet, sieht es schon mal gut aus, dann werden nämlich die
Einstellungen aus rpmrc übernommen.

----------------------------------------------------------------------

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

Hagen von Tronje
01.12.99, 23:26
Hallo Hein,

Du kannst Dir ja eine komplett eigene rpm-Datenbank
zusaetzlich zur vorhandenen testhalber einrichten.
Auch ein anderes rpmrc file kannst Du erzwingen
z. B. mittels
--rcfile=/usr/tmp/rpm2rc

Mit rpm -U --rcfile/.... packet.srpm
"installiert" Du sie z.B. in
/usr/tmp/SPECS
/usr/tmp/SOURCES
etc.

Hagen

Hein
01.12.99, 23:53
Danke, Thorsten!

Werd's mal ausprobieren. Aber so wie ich das bisher sehen kann, ignorieren die meisten Pakete der SuSE 6.1 die rpmrc.

Gruss
Hein

Hein
02.12.99, 07:14
Danke, Hagen - aber so weit war ich auch schon! Ich habe es einfach mit --rcfile=/etc/rpmrc versucht. Dorthin habe ich die Originaldatei aus der SuSE 6.1 kopiert und speziell an meine Wünsche angepasst. Das ganze kann aber ja nur funktionieren, wenn das spm-Paket irgendwo die Anweisung enthält, sich diese Informationen aus einem rcfile zu holen. Das ist aber offensichtlich bei den meisten Paketen nicht der Fall. Und da ich kein Programmierer bin, weiss ich auch nicht, wo ich das in den z.T. sehr grossen Paketen (z.B. XF86.spm) einstellen kann.

Hein

[Diese Nachricht wurde von Hein am 02. Dezember 1999 editiert.]

Hagen von Tronje
03.12.99, 03:14
Es scheint so, als würde das Hauptmakefile
Makefile.Linux
sein.
Jetzt weiss ich nicht ,da nicht vor einer SuSE hocke,
was in
/usr/i486-glibc20-linux/lib/gcc-lib/i486-glibc20-linux/egcs-2.91.66/specs
drinsteht.
(Schau mal nach, bitte)
Jedenfalls könntest Du in
.../SOURCES/XFree86-3.3.4.dif
(dort wird ja 'Makefile.Linux' generiert)
ein
+MAKE_OPTS ="-march= ...."
reinflicken.

Viel Erfolg
Hagen

Hein
03.12.99, 06:39
Hey, danke!

Das habe ich bislang noch nicht versucht. Werd's am Wochenende mal testen!

Hein