abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:55 | IT novinky

    Čínská společnost Tencent uvolnila svůj AI model HunyuanWorld-Voyager pro generování videí 3D světů z jednoho obrázku a určené trajektorie kamery. Licence ale nedovoluje jeho používání na území Evropské unie, Spojeného království a Jižní Koreje.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.

    lkocman | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.

    Ladislav Hagara | Komentářů: 27
    včera 11:55 | IT novinky

    Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 11:33 | Humor

    Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti

    … více »
    Gréta | Komentářů: 97
    včera 10:22 | Pozvánky

    Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:

    Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »
    bkralik | Komentářů: 0
    včera 03:11 | Nová verze

    Google Chrome 140 byl prohlášen za stabilní. Nejnovější stabilní verze 140.0.7339.80 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 6 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 141 hlasů
     Komentářů: 11, poslední dnes 16:12
    Rozcestník

    Dotaz: libc.so a stat()

    18.5.2021 09:05 rastos | skóre: 63 | blog: rastos
    libc.so a stat()
    Přečteno: 568×
    Napísal som si knižnicu v jazyku C. Skompiloval na stroji A a preniesol na iný stroj B a tam mi nezafunguje pretože na A je libc-2.33.so, ktorá funkciu stat() definuje ako "weak symbol" a na stroji B je libc-2.30.so, ktorá stat() nedefinuje vôbec. Kompilovanie tej istej knižnice na B vyrobí binárku, ktorá má stat() v sebe - teda tá funkcia bola prilinkovaná staticky. Ak tomu dobre rozumiem, tak bola zobraná zo statickej verzie libc.

    Dá sa na stroji A nejako (linkeru?) povedať nech vyrobí binárku, ktorá bude fungovať na rôznych strojoch bez ohľadu na "drobné rozdiely" vo verzii libc?

    Řešení dotazu:


    Odpovědi

    18.5.2021 10:16 X
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Nestacilo by to staticky nalinkovat pomoci:
    -static
    ?
    18.5.2021 11:07 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Myslíš takto?
    $ cat stat.c 
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
    
    void fnc(const char *filename)
    {
            struct stat st;
            stat(filename,&st);
    }
    
    $ gcc -fPIC -shared -o libStat.so stat.c -static -lc
    $ nm -D libStat.so |grep -w stat
                     U stat
    
    Asi nestačilo.
    18.5.2021 22:54 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Volby -shared a -static se podle mě vylučují a specifikují výsledný produkt, nikoli způsob linkování závislostí.

    Potřebujete linkovat s libc.a (nikoli libc.so), tedy něco jako:

    gcc -o libtest.so test.c crt1.o libc.a -lm -lc -lgcc

    Netestováno.
    -- OldFrog
    19.5.2021 10:42 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: libc.so a stat()
    man ld

    -static
    Do not link against shared libraries. ... You may use this option multiple times on the command line: it affects library searching for -l options which follow it.

    -shared
    Create a shared library.

    19.5.2021 21:06 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Tak to se omlouvám za mystifikaci.
    -- OldFrog
    19.5.2021 19:31 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: libc.so a stat()
    -U znaci, ze je dynamicky.
    debian.plus@protonmail.com
    19.5.2021 20:45 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: libc.so a stat()
    No veď áno. To je práve ten problém.

    Na stroji A dynamický linker loadne moju knižnicu, zistí, že symbol "stat" v binárke mojej knižnice je (U)ndefined, hľadá ho a nájde ho v libc.so.

    Keď takú binárku prenesiem na stroj B, kde libc.so neposkytuje symbol "stat", tak tam tá knižnica nefunguje lebo dynamický linker loadne moju knižnicu zistí, že symbol "stat" je v binárke mojej knižnice (U)ndefined, hľadá ho a nikde ho nenájde.

    Keď na stroji B skompilujem tie isté zdrojáky, tak symbol "stat" je priamo v mojej knižnici ako (t)text - teda ḱód tej funkcie je priamo v binárke mojej knižnice.
    $ nm  libStat.so |grep -w stat
    00000000000082e0 t stat
    
    Domnievam sa, že by malo byť možné na stroji A prinútiť linker vyrobiť tiež binárku, ktorá obsahuje (t)ext funkcie stat(). Taká binárka by potom fungovala na oboch systémoch. Otázka je: ako to tomu linkeru na stroji A povedať?
    19.5.2021 21:39 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Mám o preklade napísaný nový svoj blog.
    debian.plus@protonmail.com
    18.5.2021 18:17 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: libc.so a stat()
    Pozor pri statickom linkovani na licenciu/licencie. Glibc byva dost velka, najdi si aj ine c-library implementacie.
    debian.plus@protonmail.com
    19.5.2021 19:34 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: libc.so a stat()
    https://wiki.debian.org/musl

    A nezabudni na licenciu c musl knižnice pridať ku svojmu programu, ked staticky linkuješ tu c knižnicu.
    debian.plus@protonmail.com

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.