[Fli4l_dev] [fli4l-3.9.0-rev28716] -Os vs. -O2

Christoph Schulz fli4l at kristov.de
So Nov 24 20:44:29 CET 2013


Hallo!

Bernd Kuhls schrieb:

> Hallo,
> 
> im aktuellen tarball wird, statt wie bisher -Os, nun -O2 als gcc-Option
> genutzt:

So ist es. Siehe Commit-Kommentar zu r28565:

buildroot changes:
- EXPERIMENTAL: using optimization level -O2 (optimize for speed) instead of 
-Os (optimize for size)
[...]

> [...]
> Dadurch werden die erstellten binaries größer, das base-Paket z.B. wuchs
> von 24,9MB auf 27,8MB, /usr/lib/xbmc/xbmc.bin von 12,2MB auf 17MB.

Das wäre eine Erhöhung um knapp 12% im base-Paket. Wenn es 30% oder mehr 
wären, könnte man darüber meckern, aber 12%? Dass xbmc um einiges fetter 
wird, ist bedauerlich, aber siehe auch unten.

> Beim Kompilieren des src-Pakets habe ich testweise wieder BR2_OPTIMIZE_S=y
> aktiviert, dabei bin ich auf einen gcc-Fehler gestoßen, der mit -Os
> auftritt: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58864
> 
> Ist das der Grund, warum -O2 im fbr aktiviert wurde und soll das dauerhaft
> so bleiben, auch wenn bug 58864 behoben wurde?

Das ist nicht der Grund, und bei mir ist der Fehler auch nicht aufgetreten. 
Allerdings habe ich die Umstellung durchgeführt, bevor wir auf 2013.11-rc1 
umgestiegen und somit noch gcc 4.8.1 (und nicht gcc 4.8.2) genutzt haben. 
Vielleicht macht das den entscheidenden Unterschied aus. (2013.11-rc1/2 ist 
noch nicht in den testing-Tarballs, bitte dazu FFL-658 verfolgen.)

Warum ist es ein Problem, wenn die Binarys etwas größer werden? Die 
Umstellung ist zwar experimentell, aber sollte sich auf dem Typ Maschine, 
der heute für fli4l eingesetzt wird, i.d.R. positiv auf die Geschwindigkeit 
auswirken. Bislang sind jedenfalls keine fühlbaren Verschlechterungen auf 
langsamen Rechnern mit kleinem Cache vom Typ WRAP, Soekris etc. aufgetreten. 
Das Bootmedium Floppy-Disk ist ohnehin tot, und USB-Sticks kümmert es nicht, 
ob 5 MiB mehr oder weniger verwendet werden. Klar, der Speicherverbrauch 
steigt an, aber fli4l-Router mit 16 MiB RAM o.ä. werden ohnehin nicht mehr 
unterstützt -- wir fordern inzwischen mindestens 64 MiB. Und eine Anwendung 
wie dein xbmc läuft sicherlich auch mit -Os nicht gut auf einem 64 MiB-
System.

Das soll natürlich nicht heißen, dass wir bei entsprechendem Feedback die 
Einstellung nicht zurückdrehen könnten. Aber dafür müssen erst einmal 
handfeste Argumente auf den Tisch. Und zwar welche, die sich an der 
aktuellen Hardware-Situation orientieren und nicht an Uralt-fli4ls (i486, 16 
MiB RAM).


Viele Grüße,
-- 
Christoph Schulz
[fli4l-Team]



Mehr Informationen über die Mailingliste Fli4l_dev