Ábácédé, rajtam kezdé...

Akarom mondani, van nekem egy ilyen változóm:

int DataRoot [DB_N];

Mi jót generál belőle a gcc?

Aix-gcc4.5$ nm -Pg -X32_64 obj-64/.libs/kemdata.o | grep DataRoot
DataRoot             B        25f0          20
Linux-gcc7.5$ nm -Pg -X32_64 obj-64/.libs/kemdata.o | grep DataRoot
DataRoot C 0000000000000020 0000000000000020
           "B"
           "b" The symbol is in the BSS data section.  This section typically contains zero-
               initialized or uninitialized data, although the exact behavior is system dependent.

           "C" The symbol is common.  Common symbols are uninitialized data.  When linking, multiple
               common symbols may appear with the same name.  If the symbol is defined anywhere, the
               common symbols are treated as undefined references.

Szerk: miket nem talál google barátunk:
https://stackoverflow.com/questions/16835716/bss-vs-common-what-goes-wh…

Hozzászólások

Még egy mérési adat:

Linux-gcc10.2$ nm -Pg -X32_64 obj-64/.libs/kemdata.o | grep DataRoot
DataRoot B 0 20

tenyleg erdekelne hogy mit dolgozol hogy ilyenekkel kell szivnod...

Kicsit visszanézel, látszik, hogy Linux-on is gcc-verziótól függ, hogy mi jót general:

Linux-gcc7.5$ nm -Pg -X32_64 obj-64/.libs/kemdata.o | grep DataRoot
DataRoot C 0000000000000020 0000000000000020
Linux-gcc10.2$ nm -Pg -X32_64 obj-64/.libs/kemdata.o | grep DataRoot
DataRoot B 0 20

Hogy mikor számítanak ezek a típusok? Például a libtool hagyományosan a B, D, T típusokat tekinti exportálandónak. AIX-on legalábbis, Linux-on inkább az az elv, hogy 'mindent exportálunk, ami nem tud elszaladni'.

megmondom en neked mikor szamit ez: soha a budos eletben. 17 eve linuxozok, fejlesztettem mar mindent a stacken a kernel beletol kezdve felfele, de soha nem volt meg *semmire* szuksegem azokbol az onszopatasi trukkokbol, amit a blogodon olvasok.

tehat A: kurvara megfizetnek ezert (remelem), es ceges perverziobol szopatod magad

B: siman mazochista vagy, es vegtelen szabadidod van

Akkor lehet, hogy talkoztunk annó a l-code-l@list.telnet.hu-n vagy a linux@mlf.linux.rulez.org-on?

Nosztalgiáról szólva, első Linux-os nyomozásaim egyike 199x-ben egy pop3-kliens volt, ami valamilyen okból időnként lefagyott. Strace kimutatta, hogy kétszer hívta meg a flock(2)-t ugyanarra a fájlra, és a második hívás nem tért vissza hibakóddal (sem sikerrel), hanem végtelen várakozásba merült.

á bé cé dé :)

"Normális ember már nem kommentel sehol." (c) Poli