Správní rada americké mediální skupiny Warner Bros. Discovery (WBD) podle očekávání odmítla nepřátelskou nabídku na převzetí od firmy Paramount Skydance za 108,4 miliardy dolarů (2,25 bilionu Kč). Paramount podle ní neposkytl dostatečné finanční záruky. Akcionářům proto doporučuje nabídku od Netflixu.
Na WhatsAppu se šíří nový podvod, který ovšem vůbec nevypadá jako hackerský útok. Žádná krádež hesla. Žádné narušení zabezpečení. Žádné zjevné varovné signály. Místo toho jsou lidé trikem donuceni, aby útočníkům sami poskytli přístup, a to pouhým provedením toho, co vypadá jako běžný ověřovací krok. Bezpečnostní experti Avastu tento nový typ útoku nazývají ghostpairing, protože útočníci si při něm tiše vytvářejí „zařízení duchů“, které žije uvnitř vašeho účtu.
Český LibreOffice tým vydává aktualizaci překladu příručky LibreOffice Draw 25.8. Tato kniha se zabývá hlavními funkcemi programu Draw, vektorové grafické komponenty systému LibreOffice. Pomocí Draw lze vytvářet širokou škálu grafických obrázků. Příručka je ke stažení na stránce dokumentace a tým hledá dobrovolníky pro další překlady.
Anthony Enzor-DeMeo je novým CEO Mozilla Corporation. Mozillu převzal po dočasné CEO Lauře Chambers. Vybudovat chce nejdůvěryhodnější softwarovou společnost na světě. Firefox by se měl vyvinout v moderní AI prohlížeč.
Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.
Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.
Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.
Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).
Tento text vznikl díky dotazům lidí, kteří si neradi čtou {man,info} gcc. Trochu nepochopitelně nenese žádné prohlášení a ani nechce vyvolávat flame, za což se omlouvám
.
Gcc podporuje mnoho způsobů optimalizace kódu:
-O (-O1) - Optimize
.
A zároveň na strojích bez debugovacího rozhraní (x86?) zapíná
-O2 - Optimize even more
-O3 - Optimize yet more
-Os - Optimize for size
. Tento zapne -O2, ale vypne -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays.
Co znamenají konkrétní -ffoo si laskavý čtenář jistě už přečte sám
.
Knihovny rozlišujeme na statické a sdílené. Zatímco se ty první natvrdo
slinkují s binárkou v době kopilace, ty druhé jsou uloženy na disku a linkují se až za běhu. Mějme následující kód:
$ cat hello.{h,c}
#include <stdio.h>
#ifndef __HELLO__
#define __HELLO__
void helloWorld(void);
#endif
#include "hello.h"
void helloWorld(void) {
printf("Hello, world!\n");
}
Zdrojový kód přeložíme na objektový a ten zabalíme do statické knihovny. Název statické knihovny musí začínat na lib a končit na .a!
$ gcc -c hello.c -o hello.o $ ar rcs libhello.a hello.o
Pro sdílenou knihovnu se objektový kód kompiluje s parametrem -fPIC. Jenom upozorňuji, že parametr -Wl se jmenuje dvojité vé el
. Sdílená knihovna musí opět začínat lib a končit .so.verze_knihovny.
$ gcc -fPIC -c hello.c -o hello.o $ gcc -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0.1 hello.o
Kód z knihoven se používá naprosto stejně, jako kterýkoliv jiný. Vzhledem k tomu, že naše knihovna není na místě, kde je linker standardně hledá, musíme mu parametrem -L. sdělit, že má hledat i v aktuálním adresáři.
$ cat main.c
#include "hello.h"
int main(void) {
helloWorld();
return 0;
}
$ gcc -static main.c -L. -lhello -o main.s
$ gcc main.c -L. -lhello -o main.d
$ ls -lh main.{s,d} | awk '{print $9, $5}'
main.d 7,1K
main.s 491K
Starším (a méně bezpečným způsobem) je proměnná LD_LIBRARY_PATH. Méně bezpečným proto, že umožňuje zaměnit sdílené knihovny suid programům.
Jak mě upozornil ivok, tak se tento problém už netýká novějších verzí ld-linux.so (z glibc6). Díky!
Modernější systémy používají nástroj ldconfig, který čte soubor /etc/ld.so.conf a potřebné informace si nahrává do cache /etc/ld.so.cache. Ldconfig a /etc/ld.so.conf může editovat používat pouze root.
Ukázka mého /etc/ld.so.conf z Gentoo
# ld.so.conf autogenerated by env-update; make all changes to # contents of /etc/env.d directory /usr/local/lib /usr/lib/opengl/xorg-x11/lib /usr/i686-pc-linux-gnu/lib /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6 /usr/lib/mozilla-firefox /usr/lib /opt/sun-jre-bin-1.5.0.05/lib/i386/ /opt/sun-jre-bin-1.5.0.05/lib/i386/native_threads/ /opt/sun-jre-bin-1.5.0.05/lib/i386/xawt/ /opt/sun-jre-bin-1.5.0.05/lib/i386/server/ /usr/qt/3/lib /usr/kde/3.4/lib /usr/games/lib /usr/lib/fltk-1.1
Tiskni
Sdílej:
$ export LD_PRELOAD=libfake
$ ping
ERROR: ld.so: object 'libdoesntexit' from LD_PRELOAD cannot be preloaded: ignored.
$ export LD_PRELOAD=/usr/lib/hacklocaledir.so
$ strace ping
...
open("/usr/lib/hacklocaledir.so", O_RDONLY) = 3
...
$ stat -c %A /bin/ping
-rws--x--x
Takže tam ta chyba pořád je, nebo mám něco špatně v konfiguraci