Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.
Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.
Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.
V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.
Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být
… více »Byl vydán Mozilla Firefox 152.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
-fdata-sections a -ffunction-sections naopak zvětšení binárky, když má každá funkce svou sekci, která je uvedena ve výsledkem souboru, nebo ty sekce linker nakonec spojí do jedné?
objdump -d "$1" | perl -lne 'if(/<([^+]*).*?>(:?)/){if($2){$w=$1}elsif($w ne$1){print"$w $1"}}' | sort -u
mainu, posbírám jen 1/3 velikosti programu. Ověřil jsem si, že to je problém v objdump, kde minimálně jedna funkce nemá jiný odkaz než sama na sebe. Nějaké nápady, co s tím?
#!/bin/sh
objdump -d "$1" | perl -lne 'next unless/<([^+]*).*?>(:?)/;
if($2){$w=$1}elsif($w ne$1){print"$w $1"}' | sort -u > deps
nm --synthetic --print-size --size-sort --radix=d "$1" | awk '
function collect(name, set, i) {
used[name]++
if (set[name]++)
return
for (i = 0; i < deps[name]; i++)
collect(deps[name, i], set)
}
function run(name, set, sum, i) {
set[name] = sum = 0
collect(name, set)
for (i in set) sum += sizes[i]
print name, sizes[name], sum
}
{ sizes[$4] = $2 + 0 } END {
while ((getline < "deps") > 0) { deps[$1, deps[$1]++] = $2 }
for (name in sizes) run(name)
for (name in used) if (used[name] < 2) print name > "unreferenced"
}' | sort -nk3
000000000041865f <my_funny_callback>: 41865f: 55 push %rbp[...]
418739: be 5f 86 41 00 mov $0x41865f,%esiVypadá to, že to bude chtít mnohem víc Perlu.
objdump neresolvuje callbacky předávané argumentem – lze vyřešitobjdump neresolvuje callbacky z dat – nelze vyřešit
.
objdump -d "$1" | perl -lne '
if (/^0*([\da-f]+) <(.+?)>:/) { $a{$1} = $w = $2
} elsif (/<([^+]*).*?>/) { print "$w $1" if $w ne $1
} elsif (/0x([\da-f]+),/) { push @{$deps{$w}}, $1
} END { while (my ($w, $refs) = each %deps) {
for (@$refs) { print "$w $a{$_}" if exists $a{$_} }
}}' | sort -u > deps
Skóre: main vzrostl z 26.1% na 35.6% velikosti sstripnuté binárky. _start začal být větší než main. Konkrétní program obsahuje callbacky v datech s nemalým podstromem.
objdump -d "$1" | perl -lne '
if (/^0*([\da-f]+) <(.+?)>:/) { $a{$1} = $w = $2; next }
print "$w $1" if /<([^+]*).*?>/ && $w ne $1;
push @{$deps{$w}}, $1 if /0x([\da-f]+),/;
END { while (my ($w, $refs) = each %deps) {
for (@$refs) { print "$w $a{$_}" if exists $a{$_} }
}}' | sort -u > deps
nm "$1" | perl -lne 'print for /^0*(\S+) . (\S+)/' > addresses
objdump -d "$1" | perl -lne '
if (/<([^+]*).*?>(:?)/) { $w = $1 if $2; print "$w $1" if $w ne $1 }
BEGIN { %a = (split " ", `cat addresses`) }
print "$w $a{$1}" if /0x([\da-f]+),/ && exists $a{$1}' | sort -u > deps
Další krok je omílaný linker nebo potenciálně DWARF.
objdump -x. Člověk si ze "symbol table" posbírá offsety a velikosti a pak projíždí "relocation records" a zpětně resolvuje. Object soubory jenom už může být trochu problém posbírat, možná přes nějaký falešný kompilátor/linker jak to dělá scan-build analyzátor, ccache a podobné, a pořád to nemusí být triviální (více object files na jedny zdrojáky s různými defines), tak možná počkat na finální link příkaz do binárky a poprat se i s .a soubory. Teoreticky by se to dalo sledovat i přes strace/ptrace místo wrapperů.
LOAD s názvy souborů se dají docela snadno vyparsovat. Problém je, když se linkuje víc věcí, pak se ty output.map přepisují.
.
Tiskni
Sdílej: