Ono je to prakticky jedno, jak je rozšířený, hlavně že mu za to zaměstnavatel platí. Pokud ten pracovník je placený (jako že asi jo), je bod č. 2 dost nepravděpodobný.
Spíš mi připadá zábavné, že pracovník technické podpory Linuxu nemá ani počítač s nainstalovaným Linuxem, na kterém by mohl hrát NetHack a proto si musí skládat lodičky z papíru. ;-)
To bylo skoro první, co mne napadlo - ukousal se nudou, protože se Linux nerozšířil a vymřel ....
Ale pak přeci jen jsem si vzpomněl na hlášku mýho táty - nejlepší opravář je ten, který leží a fabrika běží!!!
Takže a tak .....
me napadly oba vyklady, ale vtipny mi neprijde ani jeden, naopak mi oba prijdou celkem out :( neco jako kdyz se na strankach primy (?) doctu, ze nepodporuji "marginalne rozsirene prohlizece jako opera ci mozilla"...
Jeste 3. vyklad, dle meho nazoru podle reality:
3. Uzivatele, kteri se obraceji na podporu a zjistuji, ze arogantni zakomplexovani sebestredni narcisove ho vzdy vykopnou s RTFM a nasledne zabananuji i na dotazy typu "podarilo se mi shodit GNU ld na segfault", dojdou k nazoru, ze podporu nema smysl dale kontaktovat, a prejdou zpet na Windows, ktere jsou schopny uspokojit jejich potreby.
Nevim, jestli to chodi i na Linuxu, ale na OpenBSD 3.9 rozhodne:
a.c: main(){}
gcc -o a a.c
gcc -o -Wall a
clock@kestrel:~$ gcc -o -Wall a
collect2: ld terminated with signal 11 [Segmentation fault], core dumped
a(.init+0x0): In function `__init':
: multiple definition of `__init'
/usr/lib/crtbegin.o(.init+0x0): first defined here
a(.text+0x0): In function `_start':
: multiple definition of `__start'
/usr/lib/crt0.o(.text+0x0): first defined here
a(.data+0x0): multiple definition of `__progname'
/usr/lib/crt0.o(.data+0x0): first defined here
a(.text+0x0): In function `_start':
: multiple definition of `_start'
/usr/lib/crt0.o(.text+0x0): first defined here
a(.fini+0x0): In function `__fini':
: multiple definition of `__fini'
/usr/lib/crtbegin.o(.fini+0x0): first defined here
a(.text+0x18): In function `___start':
: multiple definition of `___start'
/usr/lib/crt0.o(.text+0x18): first defined here
/usr/lib/crt0.o(.dynamic+0x0): multiple definition of `_DYNAMIC'
/usr/lib/crt0.o(.got.plt+0x0): multiple definition of `_GLOBAL_OFFSET_TABLE_'
Jeste bt full:
#0 0x1c01a6a6 in bfd_getl32 ()
No symbol table info available.
#1 0x1c0278a9 in bfd_elf32_swap_reloc_in ()
No symbol table info available.
#2 0x1c038b51 in elf_link_sort_relocs ()
No symbol table info available.
#3 0x1c03b4d7 in bfd_elf_final_link ()
No symbol table info available.
#4 0x1c0107be in ldwrite ()
No symbol table info available.
#5 0x1c00e69e in main ()
No symbol table info available.
Ne, na linuxu to segfault neudela. Melo by to zahlasit nejakou chybovou hlasku, ale neni nijak definovane jakou, protoze se pokousite v druhem kroku neco delat se slinkovanym spustitelnym souborem. Konkretne gcc 4.0.2 na linuxu hlasi, ze se pokousite dvakrat prilinkovat stejne runtime moduly. gcc zrejme u souboru bez pripony usuzuje na jejich typ podle prvnich par bytu, takze spustitelny soubor "a" povazuje za objektovy soubor (oba jsou typu ELF), takze se ho pokousi slinkovat s runtime knihovnami, aby vznikl spustitelny soubor "-Wall". Taky nevim proc jste ho nazval "-Wall", to vypada skoro jako zapnuti vsech varovani, kdyby predtim nebylo "-o".
Pouzitelny soubor by skutecne vznikl, ale musel byste v prvnim prikazu dat parametr -nostdlib nebo -c. Takze napriklad tohle normalne probehne a vytvori soubor "-Wall", jak jste si pral:
gcc -c -o a a.c
gcc -o -Wall a
Pokud budete mit problem s mazanim, tak maze se ten soubor takhle: