Dětem začala škola a nedobrovolně se tak musí vzdělávat. Avšak pro dospělé, kteří se chtějí vzdělávat nebo naopak se o vědomosti podělit, je tu Virtuální Bastlírna - jako každý měsíc si můžete online a zdarma nezávazně popovídat o vědě a technice nejen s bastlíři, ale i s vývojáři, vědci nebo profesory. A čemu se strahováci budou věnovat? Blíží se KiCAD 11 s nespočtem novinek, z nichž zde musí zmínit alespoň možnost kótování a závislostí z
… více »Asahi Linux, tj. Linux pro Apple Silicon, oficiálně podporuje čipy M3 (M3, M3 Pro a M3 Max).
Společnost Acer oslavila 50 let. Na tiskové konferenci next@acer představila řadu novinek. Vypíchnout lze přenosný ePaper displej Acer EP130K, přenosné řešení se třemi displeji Acer PD163Q P3 nebo herní handheld a notebook v jednom DualPlay Mini.
Server SiFive BigSky SF-2U870 2U je založený na jádře SiFive P870-D, zatím je naintegrovaných 32 jader 256 GB RAM 2 GHz, škálovat lze do 256 jader na čip. O něco podrobnější popis serveru v článku SiFive BigSky Ships the First RISC-V Server. Is the GPU Head Node the Prize? na futurumgroup.com. Asi ani tento čip nebude na úrovni nejlepších 64-bit ARMů a AMD Zenů, ale splňuje RVA23 specifikaci a je podporovaný Ubuntu 26.04 LTS a RHEL 10. V článku je
… více »Na YouTube lze zhlédnout nový celovečerní dokumentární film The Story of VS Code | Official Documentary věnovaný Visual Studio Code.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.
std::cerr<<"foo". To normálně funguje, dokud se k .so souboru nepřilinkuje nějaká jiná knihovna (odzkoušeno gomp nebo GL), pak to segfaultuje kdesi v libstdc++ (ostream); Přitom když se přeloží hlavní program pomocí g++, funguje to bez problémů.
Reportoval jsem to na ubuntí bugzillu, ale totéž se děje na debianu (lenny). Nevíte někdo co s tím? Nevím ani pořádně, jestli je to chyba libstdc++ nebo linkeru. Předpokládám, že půjde o nějakou statickou inicializaci čehosi, která se při dlopen neprovede? Přikládám kousky programů (ze zmíněného bugreportu).
main.c:
#include<dlfcn.h>
int main(void){
void* handle=dlopen("./libfoo.so",RTLD_NOW);
void(*foo)()=(void(*)())dlsym(handle,"foo");
foo();
return 0;
}
foo.cc:
#include<iostream>
extern "C" {
void foo() { std::cerr<<"foo"<<std::endl; }
}
Takhle to padá:
$ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared $ gcc main.c -o main -ldl $ ./main foo $ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared -lgomp ## navíc -lgomp → spadne $ ./main foozsh: segmentation fault (core dumped) ./main $ g++ main.c -o main -ldl ## main se kompiluje g++ místo gcc → nespadne $ ./main foo $A tohle mi prozrazuje gdb po pádu (při kompilaci s -g a použití libstdc++6-dbg):
(gdb) bt
#0 0x00007f81582c9e49 in std::uncaught_exception () at ../../../../src/libstdc++-v3/libsupc++/eh_catch.cc:136
#1 0x00007f8158294e04 in ~sentry (this=0x7fff3c47bbc0, __in_chrg=<value optimized out>) at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/ostream:408
#2 0x00007f8158295445 in std::__ostream_insert<char, std::char_traits<char> > (__out=..., __s=0x7f81590cf3be "foo", __n=3)
at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/bits/ostream_insert.h:110
#3 0x00007f815829502e in std::operator<< <std::char_traits<char> > (__out=..., __s=0x7f81590cf3be "foo")
at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/ostream:510
#4 0x00007f81590cf2e6 in foo () at foo.cc:3
#5 0x00000000004003a2 in main () at main.c:5
Co by s tím mohlo být? Díky moc.
/tmp$ ./main
fooSegmentation fault
$ LD_PRELOAD=/usr/lib/libgomp.so.1 ./main
foo
Vypada to, ze ta knihovna libgomp nema rada kdyz se nahrava pres dlopen. Ve vypisu nm knihovny libgomp neni nic podezrelyho. Zkusil jsem ten main zkompilovat s -lpthread a ani to nepomohlo.
Jediny co by se s tim jeste dalo delat je kouknout se na .init sekci ty knihovny libgomp pres readelf.
Ivan
Pokud k modulu rucne prilinkuji libsupc++, tak ta sranda funguje.
$ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared -lgomp -lsupc++
$ LD_PRELOAD=/usr/lib/libstdc++.so.6 ./main foo $Main (což je ve skutečnosti python) tedy musím obalit skriptem, ale to zase tolik nevadí.
Tiskni
Sdílej: