View previous topic :: View next topic |
Author |
Message |
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Sat Sep 26, 2009 12:58 pm Post subject: Ldflags |
|
|
ciao a tutti... è da tempo che uso le ldflags e devo dire che l'ottimizzazione va meglio...ma leggendo:
mi accorgo che ce ne sono svariate...e desideravo avere un'ottimizzazione maggiore aggiungendone qualcun'altra..ma onde evitare di fare test gradirei sapere se potete consigliarmene qualcuna voi che usate e non crea problemi e/o instabilità...per ora ho:
Code: | "-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common" |
grazie in anticipo per le risposte |
|
Back to top |
|
|
mack1 Guru
Joined: 18 Mar 2006 Posts: 315
|
Posted: Sat Sep 26, 2009 4:02 pm Post subject: |
|
|
Ciao anche io uso le LDFLAGS e non incappo in problemi da un bel pezzo (uso kde3/4,xfce e E17 ), comunque qui trovi il numero dei bug segnalati in relazione a "--as-neened":
https://bugs.gentoo.org/show_bug.cgi?id=129413
E qui ci sono le "safe ldfags" di gentoo wiki:
http://en.gentoo-wiki.com/wiki/Safe_LDFLAGS
Le tue mi sembrano sicure (imho), visto poi che gentoo attiva di default solo "-Wl,-O1" la tua è già un'ottimizzazione "spinta", io di più non farei (ameno che tu non voglia sperimentare, mettendo in conto la possibilità di rompere il sistema).
Ciao |
|
Back to top |
|
|
K.a.o.s. n00b
Joined: 19 Mar 2009 Posts: 20 Location: /dev/null
|
Posted: Sat Sep 26, 2009 4:30 pm Post subject: |
|
|
Le mie sono:
Code: | LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,combreloc -Wl,--hash-style=gnu"
|
Per ora nessun problema (~amd64, sia Gnome che Kde), tranne uno con Gimp poco tempo fa. Ovviamente sono, come detto da mack1, da considerarsi "spinte".
Combreloc la sto utilizzando da relativamente poco (qualche mese) per provare e mi sembra porti un buon incremento. Non so dirne però oggettivamente i vantaggi e gli svantaggi, quindi se qualcuno sa qualcosa in proposito... si faccia avanti .
Se vuoi qualcosa per una maggiore stabilità, puoi usare now al posto di combreloc, visto che carica i simboli all'avvio (avvio più lento) e... se c'è qualcosa di rotto, non parte proprio l'applicazione evitando crash durante l'esecuzione. _________________ A river too pure, yields no fish. |
|
Back to top |
|
|
table Apprentice
Joined: 17 Feb 2007 Posts: 279 Location: Gazzaniga (BG) Italy
|
Posted: Sat Sep 26, 2009 7:43 pm Post subject: |
|
|
mack1 wrote: |
Le tue mi sembrano sicure (imho), visto poi che gentoo attiva di default solo "-Wl,-O1"
|
mi intrometto, cosa intendi con questa frase? Intendi che se non specifico alcuna LDFLAGS è come se impostassi "-Wl,-O1" nel make.conf? _________________ Pulisci l'html con:
Code: | sed 's/<[Bb][Rr][ \t]*\/*>/\n/g;s/<\/*[^>]\+\/*>//g' |
skype: matteopinguino |
|
Back to top |
|
|
mack1 Guru
Joined: 18 Mar 2006 Posts: 315
|
Posted: Sat Sep 26, 2009 9:01 pm Post subject: |
|
|
@table
Esatto fanno parte del profilo e vengono impostate di default (controlla con un "emerge --info" ), se vuoi disabilitarle devi aggiungere a make.conf:
Vedo che anche con un profilo hardened sono abilitate di delault e non danno problemi , quindi credo siano sicure .
Ciao |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Sat Sep 26, 2009 11:05 pm Post subject: |
|
|
mm bene di nuovo leggo zombreloc, e poi dopo un occhiatina in giro ho trovato --relax --no-keep-memory e Wl,--export-dynamic....vediamo cosa esce fuori di nuovo |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Sun Sep 27, 2009 2:44 pm Post subject: Re: Ldflags |
|
|
ago88 wrote: | -Wl,--hash-style=gnu -Wl,--sort-common | già non sono del tutto sicure, o meglio possono dare qualche problema con alcuni pacchetti. Tieni conto che tutte le ldflag, a parte -O1 e --as-needed (che sono in fase di stabilizzazione e prima o poi diventeranno di default), sono non supportate e non è detto che diano benefici.
Il discorso vale in generale per tutte le ottimizzazioni, anche quelle del compilatore, ed alcuni pacchetti hanno seri problemi; al momento negli ebuild non è previsto il mascheramento delle ottimizzazioni dannose del linker, questo vuol dire non supportate.
A livello di codice dei singoli pacchetti quasi tutte le ottimizzazioni non sono supportate ovvero non sono previste di default nel makefile e gli autotool non disabilitano quelle dannose.
In generale sarebbe una buona idea usare una ottimizzazione per pacchetto ed evitare di toccare la toolchain se proprio vuoi sbizzarrirti. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Sun Sep 27, 2009 6:09 pm Post subject: |
|
|
@djinnZ
In generale uso quelle flag da quasi un anno e non ho mai avuto un problema ( o se meglio vogliamo dire un problema noto... )
Cmq in caso mi dovessero capitare problemi e/o errori prima di postare ricompilo comentando le ldflags! |
|
Back to top |
|
|
devilheart l33t
Joined: 17 Mar 2005 Posts: 848 Location: Villach, Austria
|
Posted: Wed Sep 30, 2009 10:05 am Post subject: |
|
|
usare -Wl,--hash-style=both aumenta la dimensione dei files? |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Wed Sep 30, 2009 12:13 pm Post subject: |
|
|
sul man non dice nulla... |
|
Back to top |
|
|
K.a.o.s. n00b
Joined: 19 Mar 2009 Posts: 20 Location: /dev/null
|
Posted: Sun Oct 04, 2009 11:48 am Post subject: |
|
|
Quote: | usare -Wl,--hash-style=both aumenta la dimensione dei files? |
Fai prima a provare con un pacchetto, a occhio direi di sì , visto che per mantenere la retrocompatilibità tiene due tabelle degli hash. _________________ A river too pure, yields no fish. |
|
Back to top |
|
|
table Apprentice
Joined: 17 Feb 2007 Posts: 279 Location: Gazzaniga (BG) Italy
|
Posted: Mon Oct 05, 2009 3:42 pm Post subject: |
|
|
ho impostato da qualche giorno:
Code: | LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,combreloc -Wl,--hash-style=gnu" |
non ho notato grossi cambiamenti, né in prestazioni né in stabilità del sistema _________________ Pulisci l'html con:
Code: | sed 's/<[Bb][Rr][ \t]*\/*>/\n/g;s/<\/*[^>]\+\/*>//g' |
skype: matteopinguino |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Mon Oct 05, 2009 5:26 pm Post subject: |
|
|
ma hai ricompilato qualche pacchetto dopo aver messo le flag? |
|
Back to top |
|
|
table Apprentice
Joined: 17 Feb 2007 Posts: 279 Location: Gazzaniga (BG) Italy
|
Posted: Mon Oct 05, 2009 7:06 pm Post subject: |
|
|
ago88 wrote: | ma hai ricompilato qualche pacchetto dopo aver messo le flag? |
sì, ho ricompilato tutto il sistema _________________ Pulisci l'html con:
Code: | sed 's/<[Bb][Rr][ \t]*\/*>/\n/g;s/<\/*[^>]\+\/*>//g' |
skype: matteopinguino |
|
Back to top |
|
|
riverdragon Veteran
Joined: 14 Sep 2006 Posts: 1269 Location: Verona
|
Posted: Mon Oct 05, 2009 9:40 pm Post subject: |
|
|
Ma infatti le uniche ldflags che mostrano una differenza sensibile sono -Wl,--as-needed, le altre sono opzioni poco chiare, non si capisce bene che vantaggi diano, e fanno parte di quella "zona nera" dove uno giura che migliorino le performance del sistema ma nessun altro riesce a replicare gli stessi risultati. |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Tue Oct 06, 2009 4:49 pm Post subject: |
|
|
Direi più che come portano benefici su alcuni pacchetti ma in ogni caso mettono a rischio la possibilità di compilare correttamente, quindi sarebbe bene tenerle lontano da libc/gcc e simili. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Tue Oct 13, 2009 8:05 pm Post subject: |
|
|
djinnZ wrote: | Direi più che come portano benefici su alcuni pacchetti ma in ogni caso mettono a rischio la possibilità di compilare correttamente, quindi sarebbe bene tenerle lontano da libc/gcc e simili. |
puoi sempre creare package.ldflags come indica qui.. http://en.gentoo-wiki.com/wiki/Safe_LDFLAGS#Per_package_LDFLAGS .magari a tutto il system non applichi ldflags |
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Wed Oct 14, 2009 11:05 am Post subject: |
|
|
table wrote: | LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,combreloc -Wl,--hash-style=gnu" |
giusto per fare chiarezza su un paio di cose:
- -Wl,-O1 migliora le performance (poco);
- -Wl,--as-needed migliora le performance (sensibilmente);
- -Wl,--sort-common pericoloso;
- -Wl,-z,now non apporta nessun miglioramento di performance, ma è molto utile per scovare subito problemi nelle librerie, le quali non vengono compilate se ci sono problemi di linking (anzichè compilarle e farti poi impazzire con i segfault);
- -Wl,-z,combreloc pericoloso;
- -Wl,--hash-style=gnu migliora le performance (sensibilmente);
detto ciò, va aggiunto che i miglioramenti sensibili delle performance si riducono un bel po quando si hanno DualCore, QuadCore, SixCore e mostri del genere, visto che tutto è notoriamente iper-veloce e quindi le migliorie non sono nemmeno percettibili perchè si riducono a millisecondi (questo non vuol dire che le ottimizzazioni del linker non vanno usate sulle moderne arch, perchè comunque si risparmia moltissima RAM e spazio su disco). _________________ Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe
all my contents are released under the Creative Commons Licence by-nc-nd 2.5
Last edited by !equilibrium on Wed Oct 14, 2009 2:54 pm; edited 2 times in total |
|
Back to top |
|
|
K.a.o.s. n00b
Joined: 19 Mar 2009 Posts: 20 Location: /dev/null
|
Posted: Wed Oct 14, 2009 11:45 am Post subject: |
|
|
Solo per curiosità, non per protestare o sostenere qualcosa , perchè -Wl,combreloc sarebbe pericolosa? _________________ A river too pure, yields no fish. |
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Wed Oct 14, 2009 12:18 pm Post subject: |
|
|
K.a.o.s. wrote: | Solo per curiosità, non per protestare o sostenere qualcosa , perchè -Wl,combreloc sarebbe pericolosa? |
l'ho scritto apposta per provocazione, voglio vedere chi sa darmi una motivazione plausibile per abilitarlo _________________ Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe
all my contents are released under the Creative Commons Licence by-nc-nd 2.5 |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Wed Oct 14, 2009 2:43 pm Post subject: |
|
|
!equilibrium wrote: | K.a.o.s. wrote: | Solo per curiosità, non per protestare o sostenere qualcosa , perchè -Wl,combreloc sarebbe pericolosa? |
l'ho scritto apposta per provocazione, voglio vedere chi sa darmi una motivazione plausibile per abilitarlo |
la curiosità la consideri una motivazione plausibile ? _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Wed Oct 14, 2009 2:52 pm Post subject: |
|
|
Kernel78 wrote: | la curiosità la consideri una motivazione plausibile ? |
ok, non la tiro troppo per le lunghe: -z,combreloc è abilitata di default in binutils dal lontano 2001 quindi metterla in LDFLAGS, oltre ad essere ridondante, non produce nessun miglioramento di performance; quindi chi ha asserito che combreloc fa miraloci, se li è sognati la notte. _________________ Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe
all my contents are released under the Creative Commons Licence by-nc-nd 2.5 |
|
Back to top |
|
|
K.a.o.s. n00b
Joined: 19 Mar 2009 Posts: 20 Location: /dev/null
|
Posted: Wed Oct 14, 2009 3:25 pm Post subject: |
|
|
Quote: | -z,combreloc è abilitata di default in binutils dal lontano 2001 |
Ma non era lazy di default?
Quote: | lazy
When generating an executable or shared library, mark it to
tell the dynamic linker to defer function call resolution to
the point when the function is called (lazy binding), rather
than at load time. Lazy binding is the default.
|
O i dev di Gentoo l'hanno abilitata in maniera forzata? _________________ A river too pure, yields no fish. |
|
Back to top |
|
|
riverdragon Veteran
Joined: 14 Sep 2006 Posts: 1269 Location: Verona
|
Posted: Wed Oct 14, 2009 3:38 pm Post subject: |
|
|
!equilibrium wrote: | - -Wl,--sort-common pericoloso; | Stesse motivazioni di 'combreloc' o questa volta è pericoloso sul serio? Da me è abilitata da un bel pezzo (non ricordo il motivo sinceramente). |
|
Back to top |
|
|
!equilibrium Bodhisattva
Joined: 06 Jun 2004 Posts: 2109 Location: MI/BG/LC
|
Posted: Wed Oct 14, 2009 3:39 pm Post subject: |
|
|
K.a.o.s. wrote: | Ma non era lazy di default?
O i dev di Gentoo l'hanno abilitata in maniera forzata? |
non cercare di rigirare la frittata, io non ho mai parlato dei devel gentoo, ho detto che è il default in binutils, quindi è il default per tutte le distro linux, non solo per Gentoo; direttamente dal ChangeLog di binutils:
Quote: | Changes from binutils 2.11.93.0.2:
1. Update from binutils 2002 0307.
2. Add the .preinit_array/.init_array/.fini_array support.
3. Fix eh_frame.
4. Turn on combreloc by default.
5. Enable gprof for Linux/mips. |
_________________ Arch Tester for Gentoo/FreeBSD
Equilibrium's Universe
all my contents are released under the Creative Commons Licence by-nc-nd 2.5 |
|
Back to top |
|
|
|