aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Pages: [1] 2

Author Topic: wie der ./configure Zeile bestimmte Parameter hinzufügen  (Read 11219 times)

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
wie der ./configure Zeile bestimmte Parameter hinzufügen
« on: June 08, 2009, 08:51:40 PM »

Ich will mal auf Nummer sicher gehen.

Ich würde gerne gcc falgs wie mcpu oder mtune hinzufügen.
Und zwar in der ./configure Zeile.
Wie geht man am deppensichersten for?
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #1 on: June 08, 2009, 09:05:23 PM »

Wenn man die CFLAGS vorher setzt sollten sie eigentlich vom configure übernommen werden.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

wuischke

  • Developer
  • Hero Member
  • *****
  • Karma: 183
  • Offline Offline
  • Posts: 4292
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #2 on: June 08, 2009, 09:11:32 PM »

Hinweis: Es gibt CLAGS und CXXFLAGS. Die ersten werden für den C Compiler und zweitere für den C++ Compiler benutzt.

Beispielaufruf:
Code: [Select]
CXXFLAGS="-Os --ffunction-section --fdata-section" ./configure --disable-debug
Logged

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #3 on: June 08, 2009, 09:43:17 PM »

Hinweis: Es gibt CLAGS und CXXFLAGS. Die ersten werden für den C Compiler und zweitere für den C++ Compiler benutzt.

Beispielaufruf:
Code: [Select]
CXXFLAGS="-Os --ffunction-section --fdata-section" ./configure --disable-debug

Wo setze ich das?
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #4 on: June 08, 2009, 09:58:34 PM »

Einfach im Terminalfenster so eintippen.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #5 on: June 08, 2009, 10:28:55 PM »

Einfach im Terminalfenster so eintippen.

Aha.
Danke, werde ich beim nächsten TAR gleich mal testen.
Wirklich verwenden werde ich es erst ab Donnrstag da ich dann an meinem Zweitwohnsitz bin mit dem Rechner meines Vaters.
Das ist im Gegensatz zu meinem eine echte Rakete (Athlon XP 1600+ :) und ich möchte da mal mit ein paar Optimierungen experimentieren.

Welche Compiler Flags haben sich dann entweder bei einem PII oder einem Athlon XP als sinnvoll erwiesen?
Ich weiss anhand eines Artikels auf planet64bit dass da die SSE Einheit eine andere Genauigkeit hat:

http://planet64bit.de/node/1458 (auf Seite 2 des ARtikels gibt es ein DIFF Bild zwischen i387 und SSE)

Kann man die FP Abarbeitung mittels mfpmath= ungefährlich auf SSE beschränken oder ist das zu ungenau für amule.
Der Athlon XP ist kein 64bitter und kann kein SSE2.
Logged

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #6 on: June 08, 2009, 11:07:32 PM »

Einfach im Terminalfenster so eintippen.

1.) ist die Reihenfolge irgendwie relevant oder kann man das ./configure da einfach druntermischen?
2.) Die gesetzten Flags gelten aber schon nur für dieses eine Build?
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #7 on: June 08, 2009, 11:10:11 PM »

aMule verwendet ziemlich wenig Floatingpoint. Ich glaube, diese Optimierungen kannst du getrost vergessen.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #8 on: June 08, 2009, 11:22:39 PM »

aMule verwendet ziemlich wenig Floatingpoint. Ich glaube, diese Optimierungen kannst du getrost vergessen.

Ok, das hatte ich eigentlich schon vermutet da amule oder das ganze ed2k System mehr eine datenbankähnliche Sache ist.
Und die Verschlüsselungen sind ja auch eigentlich reine integer Berechnungen?
MMX ist ja angeblich keine FP ERweiterung, würde die etwas verbessern?
« Last Edit: June 08, 2009, 11:25:19 PM by Schuttwegraeumer »
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #9 on: June 09, 2009, 12:16:59 AM »

Wohl kaum. Cryptopp enthält bereits Optimierungen dafür.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #10 on: June 09, 2009, 06:40:39 AM »

Ok.

Bleibt jtzt nur noch die Frage ob diese Settings dann dauerhaft sind oder nur für den einen make Lauf gelten.
Und in welcher Reihenfolge müssen die in die configure Zeile rein?
Logged

Vollstrecker

  • Administrator
  • Hero Member
  • *****
  • Karma: 67
  • Offline Offline
  • Posts: 1546
  • Unofficial Debian Packager
    • http://vollstreckernet.de
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #11 on: June 09, 2009, 07:46:56 AM »

Wenn du sie mit `CFLAGS=...  ./configure` arbeitest, gelten sie nur für den build. Wenn du erst ein `export CFLAGS=...` und dann `./configure` startest gelten sie für alle builds (auch andere als aMule) die du in dieser Konsole, und Kindern davon, startest. Wenn du es überall haben willst, dann schreibe die export-Zeile in deine ~/.bashrc, nach einem Login is es dann dauerhaft eingestellt, bei bereits bestehenden Sitzungen kannst du mit `source ~/.bashrc` die Einstellungen neu einlesen und dort auch verwenden.
Logged
Homefucking is killing prostitution

wuischke

  • Developer
  • Hero Member
  • *****
  • Karma: 183
  • Offline Offline
  • Posts: 4292
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #12 on: June 09, 2009, 07:57:48 AM »

oh-oh, das Gentoo-Syndrom...;)

OK, zuerst deine Frage: Die Werte vor dem configure-Befehl gelten nur für den ./configure-Befehl, dieser schreibt sie dann in Dateien, von denen sie im make benutzt werden.
Achtung: --enable-optimize fügt "-O2" zu den CXXFLAGS hinzu, so dass aus CXXFLAGS="-Os" CXXFLAGS="-Os -O2" wird -- und der Compiler nutzt die letzte angegebene Flag. Also kein --enable-optimize nutzen, wenn du eine andere Optimierungsstufe willst.

Nun allgemein zu Kompileroptimierungen: Ich will dir den Spass nicht verderben, aber es ist der Mühe selten wert. Kompilerbauer wissen was sie tun -- sie haben alle sinnvollen (d.h. geschwindigkeitssteigernd und nicht gefährlichen) Optionen genommen und hinter der Option "-O2" versteckt. Sie haben sich da viele Gedanken gemacht und wenn du das zu kompilierende Programm nicht besser kennst als sie, sind die Chancen gering, dass du bessere Flags findest. Prozessoroptimierung kann Vorteile bringen, da der Compiler nicht mehr nach dem kleinsten gemeinsamen Nenner - dem 386 - gehen muss und mehr Fähigkeiten der CPU nutzt.
aMule nutzt diese Flag mit --enable-optimize.

Es gibt auch noch "-O3", das ist eine Sammlung von Flags, die versprechen noch schneller zu sein. Leider kann das auf Kosten der Korrektheit gehen, unsicheren Code produzieren oder sogar langsamer als -O2 sein.
(Das hängt dann mit Caches zusammen. Früher (<94)¹ gab es die Taktik "loops unzurollen", d.h. anstatt dem Computer zu sagen "Mach 100mal das." hat man 100mal 'das' hingeschrieben. Der Code war dadurch viel größer, lief aber auf langsamen CPUs schneller. Heute ist es in der Regel schneller Code direkt aus dem Cache auszuführen, anstatt neuen Code nachzuladen, so dass das heute nicht mehr so gemacht wird.)

Meine persönliche Lieblingseinstellung habe ich dir oben gegeben. -Os ist fast wie -O2, allerdings werden nur Optimierungen durchgeführt, die den Code nicht größer machen. Das kann gut für Caches sein, sorgt aber allgemein für kleinere Programme. Die beiden anderen Flags in der Kombination mit LDFLAGS="--Wl,--gc-sections" helfen die Größe noch weiter zu reduzieren.
Logged

GonoszTopi

  • The current man in charge of most things.
  • Administrator
  • Hero Member
  • *****
  • Karma: 169
  • Offline Offline
  • Posts: 2685
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #13 on: June 09, 2009, 11:48:24 AM »

Achtung: --enable-optimize fügt "-O2" zu den CXXFLAGS hinzu, so dass aus CXXFLAGS="-Os" CXXFLAGS="-Os -O2" wird -- und der Compiler nutzt die letzte angegebene Flag.
Nicht wahr. Längst arbeitet es so, aber jetzt Benutzeroptionen sind die Letzte.
Logged
concordia cum veritate

Schuttwegraeumer

  • Sr. Member
  • ****
  • Karma: 2
  • Offline Offline
  • Posts: 421
Re: wie der ./configure Zeile bestimmte Parameter hinzufügen
« Reply #14 on: June 09, 2009, 01:30:46 PM »

Achtung: --enable-optimize fügt "-O2" zu den CXXFLAGS hinzu, so dass aus CXXFLAGS="-Os" CXXFLAGS="-Os -O2" wird -- und der Compiler nutzt die letzte angegebene Flag.
Nicht wahr. Längst arbeitet es so, aber jetzt Benutzeroptionen sind die Letzte.

Oh.
Du meinst die Settings bleiben bis ich was anderes setze?

You mean this settings will be in use until I set other flags?
Logged
Pages: [1] 2