Hector "marcan" Martin z Asahi Linuxu skončil jako upstream vývojář linuxového jádra. Štafetu po něm převzal Janne Grunau z Asahi Linuxu.
PlayStation Network (PSN) má již několik hodin, vlastně celou sobotu, masivní výpadek (Stav služby PSN, X).
Vývojáři open source storage platformy TrueNAS oznámili, že s verzí 25.04 s kódovým názvem Fangtooth končí TrueNAS CORE postavený na FreeBSD a TrueNAS SCALE postavený na Linuxu. Jejich společným pokračováním bude TrueNAS Community Edition postavený na Linuxu.
Mapy Google dnes slaví 20 let. Spuštěny byly 8. února 2005. Svět se přesunul od papírových map k digitálním. A ke Street View, Live View, Immersive View, …
Hector "marcan" Martin, vedoucí projektu Asahi Linux aneb Linux na Apple Siliconu, skončil jako upstream vývojář linuxového jádra. Se slovy "už nemám žádnou důvěru v proces vývoje jádra … další vývoj Apple/ARM bude pokračovat downstream" odstranil své jméno ze souboru MAINTAINERS. Důvodem jsou neshody kolem Rustu v linuxovém jádru [Hacker News, No rust code in kernel/dma, please.].
Mistral AI včera představil nový vylepšený Le Chat. Nově také jako aplikace pro iOS a Android.
Britské bezpečnostní orgány nařídily americké firmě Apple, aby vytvořila takzvaná "zadní vrátka", která by umožnila dostat se k šifrovanému obsahu uživatelů uloženému v cloudu. Tajné nařízení, vydané v lednu, vyžaduje plošný přístup k šifrovanému účtu jakéhokoliv uživatele přístrojů Apple kdekoliv na světě. Britské úřady tedy Apple nežádají pouze o asistenci s přístupem k účtu konkrétního uživatele, ale rovnou chtějí mít přístup ke všem účtům, kdykoliv budou chtít.
Byla vydána (𝕏) lednová aktualizace aneb nová verze 1.97 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.97 vyšlo také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Nedávno se povedlo do pdf souborů vložit Tetris a DOOM a po otevření příslušného pdf souboru v na Chromiu založeném webovém prohlížeči vybranou hru přímo v pdf spustit. LinuxPDF ukazuje, že do pdf lze vložit také RISC-V emulátor a rozběhnout Linux.
Není to náhodou tak, že rozhoduje to, co si myslí systémový ldconfig?
Tj. pokud soubor přejmenujete, tak na systému, kde má binár nakonec běžet, je potřeba upravit ld.so.conf (přidat správnou cestu) a spustit /sbin/ldconfig, aby se změna promítla do ld.so.cache (nebo jak se to ve Vašem distru jmenuje). Binár dynamicky slinkovaný na jednom systému proti jedné verzi knihovny (jménu souboru.so) bude fungovat transparentně i na jiném systému kde je jiná verze téže knihovny (jiné číslo ve jménu souboru .so) - za předpokladu, že na cílovém systému o knihovně ldconfig ví, a za důležitého předpokladu, že se mezi verzemi nezměnily Vámi používané prototypy funkcí a obsahy structů (jinak segfault).
Pokud chcete "distribuovat správnou verzi knihovny se svým vlastním binárem", asi Vám nakonec nezbyde než to slinkovat staticky :-|
Hint: zkuste se mrknout, jaké soubory to hledá, pomocí utility "strace" .
(Jak to sakra dělá Gobo Linux?)
A hele, ono je možné natáhnout knihovnu i explicitně / programově - ale z Cčka je to krkolomné.
http://www.ibm.com/developerworks/linux/library/l-dynamic-libraries/index.html
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Žádná transparentnost ala perlový Dynaloader. Je to dáno rozdílem mezi staticky typovaným kompilátorem (C) a dynamickým interpreterem (Perl). Když chcete v Cčku volat funkci, třeba i nepřímo přes pointer, musíte už při kompilaci znát její prototyp (ne jméno, ale počet a typy argumentů). Nepříjemným důsledkem pro Vás je, že i když ve Vašem případě znáte předem kompletní hlavičkový soubor knihovny, tak pokud byste ji chtěl loadovat explicitně přes dlopen(), budete si muset ve Vašem kódu explicitně deklarovat prototyp ke každé funkci, kterou chcete použít (a budete ji muset volat přes pointer). Opravte mě někdo jestli kecám...
-rpath se používá až při spouštění, takže když máte ./lib, bute to relativně k adresáři, ze kterého spouštíte; to asi nechcete... dejte tam absolutní cestu. Pro linker při linkování potřebujete -L./lib.
Mrkněte na výstup "ldd binárka", potom taky RTFM ld.so, zvláště LD_DEBUG, RPATH a $ORIGIN.
Soubor libknihovna.so bez verze je pouze link na jednu z verzí, které máš nainstalovány -- typicky na tu poslední, což zařizuje ldconfig -- a používá se pouze v čase kompilace.
Přesnější by bylo napsat při linkování (při kompilaci potřebujete jen hlavičkové soubory).
-R
. Něco jako (snad jsem zkopíroval tu správnou část):
XLINKER=-Xlinker # or empty for Solaris ... $(CC) $(LDFLAGS) -o $@ -L. $(XLINKER) -R $(XLINKER) . $(OBJFILES)
Proč to neslinkujete staticky?
Jinak bych se trochu bál, že knihovna zkopírovaná jako hotový binární soubor bude mít další svoje vlastní "dependencies", které na cílovém systému mohou haprovat - ale konkrétně s SDL nemám v tomto směru zkušenosti...
Tiskni
Sdílej: