GCC31 macht größere Binaries

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
happydude
Einsteiger
Einsteiger
Beiträge: 262
Registriert: Samstag 1. Dezember 2001, 00:00

GCC31 macht größere Binaries

Beitrag von happydude »

Hi!

Ist Euch schon aufgefallen, daß fast alle Binaries mit dem GCC31 rund 5-10% größer sind? Aufgefallen ist mir das beim Erstellen des 2.4.19pre8 Kernels, den ich möglichst genau auf 640KB Größe kriegen wollte und zunächst mit dem 31er, später dann mit dem 295er kompiliert habe. Bei den libs und bins sieht's auch nicht anders aus, das führt leider dazu, daß Enigma vorläufig nicht mehr ins Routerimage paßt.

Hmm, ich nehme ja mal ein, daß es gute Gründe für die Umstellung auf GCC31 gab, aber das ist zumindest in Bezug auf die Imageerstellung ein Nachteil.
waldi
Senior Member
Beiträge: 104
Registriert: Freitag 20. Juli 2001, 00:00

Re: GCC31 macht größere Binaries

Beitrag von waldi »

happydude hat geschrieben:Ist Euch schon aufgefallen, daß fast alle Binaries mit dem GCC31 rund 5-10% größer sind?
kannst du mal genauere zahlen liefern? alles was ich getestet hatte war kleiner. ach ja, es gibt noch lange keine version 31 vom gcc.
happydude hat geschrieben:Aufgefallen ist mir das beim Erstellen des 2.4.19pre8 Kernels, den ich möglichst genau auf 640KB Größe kriegen wollte und zunächst mit dem 31er, später dann mit dem 295er kompiliert habe.
warum benutzt du auch nicht freigegebene kernel und beschwerst dich dann?
happydude hat geschrieben:Bei den libs und bins sieht's auch nicht anders aus, das führt leider dazu, daß Enigma vorläufig nicht mehr ins Routerimage paßt.
wieviel platz braucht das denn? enigma selber belegt nicht mal 1mb.

waldi
derget
Contributor
Beiträge: 1608
Registriert: Samstag 28. Juli 2001, 00:00

Beitrag von derget »

naja gcc3.1 is drin weil es den halt gibt :)

und das der erste 3.x gcc ist der als stabel/final bezeichnet wird

also besser als der 3.0.4 , dachten wir zumindest

er hat bisher mehr probleme gebraucht als vorteile

aber die vorteile weden wir noch findenn :)

zz compilen aber alle kernel + module mit 2.9.x
und apps mit dem 3.1

und ich darf mal mcclean zitieren

"mit dem gcc 3.1 scheinen die apps kleiner zu sein"

:)
happydude
Einsteiger
Einsteiger
Beiträge: 262
Registriert: Samstag 1. Dezember 2001, 00:00

Re: GCC31 macht größere Binaries

Beitrag von happydude »

waldi hat geschrieben:
happydude hat geschrieben:Ist Euch schon aufgefallen, daß fast alle Binaries mit dem GCC31 rund 5-10% größer sind?
kannst du mal genauere zahlen liefern? alles was ich getestet hatte war kleiner. ach ja, es gibt noch lange keine version 31 vom gcc.
Ja, doch, 3.1. Ist aber doch jedem klar, was gemeint ist, oder?!

Einige Bespiele (bei denen sich im Source nichts oder fast nichts getan hat):

Router-Kernel (root on nfs Version): 670.47 kB(3.1) 640.34 kB (2.95)

libs
----
libld: 87184 (3.1), 91176 (2)
libc: 1193492 (3.1), 1235656 (2)
libcrypt: 21228 (3.1), 22172 (2)
libcrypto++: 856124 (3.1), 845200 (2)
libcurl: 140260 (3.1), 131104 (2)
libdl: 10516 (3.1), 11200 (2)
libm: 712668 (3.1), 727692 (2)
libmd5sum: 14224 (3.1), 9768 (2)
libnet: 11888 (3.1), 7564 (2)
libssl: 192944 (3.1), 190688 (2)
libucodes: 11080 (3.1), 6488 (2)

plugins
--------
3.1:
-rwxr-xr-x 1 root root 36408 May 28 18:07 libfx2.so
-rw-r--r-- 1 root root 88 May 28 17:46 master.cfg
-rwxr-xr-x 1 root root 15536 May 28 18:07 master.so
-rw-r--r-- 1 root root 133 May 28 17:46 mines.cfg
-rwxr-xr-x 1 root root 18520 May 28 18:07 mines.so
-rw-r--r-- 1 root root 130 May 28 17:46 pacman.cfg
-rwxr-xr-x 1 root root 36108 May 28 18:07 pacman.so
-rw-r--r-- 1 root root 109 May 28 17:46 snake.cfg
-rwxr-xr-x 1 root root 14724 May 28 18:07 snake.so
-rw-r--r-- 1 root root 153 May 28 17:46 tetris.cfg
-rwxr-xr-x 1 root root 26640 May 28 18:07 tetris.so
-rw-r--r-- 1 root root 108 May 28 17:46 yahtzee.cfg
-rwxr-xr-x 1 root root 20132 May 28 18:07 yahtzee.so

2:
-rwxr-xr-x 1 root root 31972 Jan 1 1970 libfx2.so
-rw-r--r-- 1 root root 88 Jan 1 1970 master.cfg
-rwxr-xr-x 1 root root 11320 Jan 1 1970 master.so
-rw-r--r-- 1 root root 133 Jan 1 1970 mines.cfg
-rwxr-xr-x 1 root root 14400 Jan 1 1970 mines.so
-rw-r--r-- 1 root root 130 Jan 1 1970 pacman.cfg
-rwxr-xr-x 1 root root 31836 Jan 1 1970 pacman.so
-rw-r--r-- 1 root root 109 Jan 1 1970 snake.cfg
-rwxr-xr-x 1 root root 10452 Jan 1 1970 snake.so
-rw-r--r-- 1 root root 153 Jan 1 1970 tetris.cfg
-rwxr-xr-x 1 root root 22396 Jan 1 1970 tetris.so
-rw-r--r-- 1 root root 108 Jan 1 1970 yahtzee.cfg
-rwxr-xr-x 1 root root 16224 Jan 1 1970 yahtzee.so

bin
---
satfind: 11300 (3.1), 11180 (2)
camd (alt, Enigma): 9548 (3.1), 9384 (2)

Fazit: bis auf die glibc related Libs (die mit der 2.2.5 Versionsnummer) wird's größer.
warum benutzt du auch nicht freigegebene kernel und beschwerst dich dann?
?! Wo hab' ich mich denn bitte über den Kernel beschwert?!
happydude hat geschrieben:Bei den libs und bins sieht's auch nicht anders aus, das führt leider dazu, daß Enigma vorläufig nicht mehr ins Routerimage paßt.
wieviel platz braucht das denn? enigma selber belegt nicht mal 1mb.
Das cramfs mit Neutrino+Enigma war 67xx kB groß, vorher 6032 kB oder so.
Änderungen waren: gcc3.1, kernel 2.4.19pre8 (braucht uncomprimiert etwa 70 kB mehr für die Module), iptables update auf 1.2.5 (unkomprimert etwa 150 kB mehr) und cvs (Neutrino) update von 25.4. auf 28.5.
Also ich selbst brauche unkomprimert 220 kb mehr, komprimiert also vielleicht k.A. 150 kB, aber nicht 700. Keine Ahnung, was da sonst noch so explodiert ist.
Enigma selbst belegt etwa 900 kB im cramfs.