A bejelentés részletesen kitér az elért eredményekre. A kernel nagyobb alrendszerei (a core dolgok, a SMP, SMT, Numa, IPv4 hálózati stack, eszközmeghajtó programok stb.) nagyobb probléma nélkül fordulnak. A Clang-gal fordított kernelen működik az X, a hang és Lelbach képes volt Flash player-rel tavalyi BoostCon videókat megnézni.
Persze voltak/vannak még problémák. Voltak olyan nem alapvető kernelkomponensek, amelyek kezdetben nem, vagy nem teljesen jól fordultak le. Ilyen például a SELinux és a Crypto API-t használó dolgok, a virtualizáció és a modulkezelés.
Azok közül, ami tegnapelőtt még nem működött, tegnapra több is a javulás útjára lépett. Lelbach közölte, hogy a SELinux nagy része fordul, lefordul a teljes hálózati alrendszer, szintén lefordul a VDSO, a boot alrendszer, működik már a modul támogatás, a fennálló SMP problémák megoldódni látszanak. A gcc-re már nincs szükség a fordítás teljes ideje alatt, viszont a GNU ldd-re igen. A GNU assembler sem szükséges már a sikeres fordításhoz.
- A hozzászóláshoz be kell jelentkezni
- 3854 megtekintés
Hozzászólások
Kapcsolódik: Linux and LLVM, thread
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Nagyon jó.
Ami ahhoz kell, hogy érdemben érdemes legyen clang-gal foglalkoznom:
- a fordított kód legalább olyan gyors legyen, mint a gcc-vel fordított
- támogasson sok architektúrát.
- A hozzászóláshoz be kell jelentkezni
Az első feltételhez nem tudok hozzászólni, mert még nem teszteltem.
De rá lehet beszélni, hogy még linkeléskor is optimalizáljon :-) Ügyes.
ARM-ra rendszeresen fordítok CLANG-gal, és jól fordít. A többi architektúrát csak nézegettem, de nem kellett varázsolni ahhoz, hogy működjön.
Fuszenecker Róbert
- A hozzászóláshoz be kell jelentkezni
Mar a gcc -t is ra lehet beszelni.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Armadeusra (Cortex9 asszem, ARM11) csak gcc-vel tudsz forditani, mas nem viszi a firmware forrast.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
"A többi architektúrát csak nézegettem, de nem kellett varázsolni ahhoz, hogy működjön."
A PIC16-ot is nézted? Ha igen akkor hogyan fordítottál?
- A hozzászóláshoz be kell jelentkezni
Néztem PIC16-ra is, de igazából nem vagyok nagy PIC-es.
Én úgy szoktam fordítani, hogy a C/C++ fájlokat először virtuális kódra (vagy bájtkódra; nem tudom, minek nevezi pontosan) fordítom, majd linkelem, és a legvégén fordíttatom "natív" assembly-re.
Ezért van az, hogy kipróbáltam legalább 5 architektúrára, mert igazából csak az utolsó lépésnél kell eldöntenem, hogy mire is fordítok.
A "natív" assembly-t pedig megeszi az *as (arm-none-eabi-as), vagy esetünkben a PIC assemblere.
Fuszenecker Róbert
P.S. Ezt találtam itt:
$ mcc16 -dry-run foo.c bar.c
clang-cc foo.c -o /tmp/llvm_6ibgr9/foo.bc
clang-cc bar.c -o /tmp/llvm_6ibgr9/bar.bc
llvm-ld /tmp/llvm_6ibgr9/foo.bc /tmp/llvm_6ibgr9/bar.bc \
-o /tmp/llvm_6ibgr9/tmp.bc
llc -f /tmp/llvm_6ibgr9/tmp.bc -o /tmp/llvm_6ibgr9/tmp.s
native-as /tmp/llvm_6ibgr9/tmp.s -o /tmp/llvm_6ibgr9/tmp.o
native-ld /tmp/llvm_6ibgr9/tmp.o -o a.out
Nem teljesen pontos, de a lényeget ez is jól mutatja.
- A hozzászóláshoz be kell jelentkezni
Köszönöm.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Szép teljesítmény, grat a fejlesztőknek!
- A hozzászóláshoz be kell jelentkezni
dehat a clang folosleges, mikor van mar gcc
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Amúgy az foss körökben az elmélettel ellentétben a gyakorlatban szeretnek mindenre három különböző projektet indítani.
Mondjuk egy gcc kiváltás nem ez a téma, szóval a fenti az offtopic.
--
2e845cb4c3a5b5bd6508455b1739a8a2
- A hozzászóláshoz be kell jelentkezni
gondolom erezted az ironiat Replaced szavaiban.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Igen, általában egy véleményen szoktunk lenni vele.
--
2e845cb4c3a5b5bd6508455b1739a8a2
- A hozzászóláshoz be kell jelentkezni
leforditom, annak aki esetleg nem ertette volna: ha freebsd clang-ot rak base-be, vagy szereny szemelyem pkgsrc-hez csinal clang tamogatast, akkor az hulyeseg, folosleges, ha viszont linux-szal kerul egy mondatban emlitesre, akkor hirtelen nagyon jo, erdekes es kivanatos lesz a dolog, etc.
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Igen, mert a freebsd is szar, hulyeseg es folosleges, igy mindent amit hozza csinalsz, orokli ugyanezen tulajdonsagokat. A linux meg erdekes, kivanatos es egyebkent is 5 sec alatt vegez a vegtelen ciklusokkal. </troll>
- A hozzászóláshoz be kell jelentkezni
5 sec alatt? ketszer is vegez veluk! :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Nem tudom mennyire "nagy" hír... valszínű mert nem értek a clanghoz -sem-...
minden esetre akkor mosolyognék, ha .net -el vagy mono-val fordítana vki sikeresen Linux kernel portot :D.
Üdv:
Cs
- A hozzászóláshoz be kell jelentkezni
Valószínűleg valóban egyszerűbb trollkodni a linugz kernellel, mintsem elgondolkodni, hogy eszébe jutott-e valakinek már valakinek menedzselt nyelvben alacsonyabb szinten is dolgozni.
Kit érdekel a linux kernel? Előbb-utóbb az is a múlt lesz az összes Unix koncepciókkal együtt (és megy vele a mai értelemben vett Windowsok is) és fel fogja váltani valami új. Lehet, hogy 20-30 év múlva, de el fog avulni.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Kerdes mit ertunk egy dolog elavulasa alatt. Ha csak a "Linux" vagy "Windows" mint nevet, akkor nehez ezt megfogalmazni, mert esetleg lassu (persze lehet hirtelen "gyors" is) valtozasok miatt 20-30 ev alatt esetleg totalisan maskepp fog kinezni a dolog, mint amit ma a fenti nevek alatt ertunk, esetleg alapkoncepciot is tekintve ...
- A hozzászóláshoz be kell jelentkezni
"Kit érdekel a linux kernel? Előbb-utóbb az is a múlt lesz az összes Unix koncepciókkal együtt"
ha még így is van, hogy jön ez ide? és kit érdekel?
- A hozzászóláshoz be kell jelentkezni
Kit erdekelnek az elok? Elobb utobb ugy is meg fognak halni.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Ugy ertem a .NET/Mono kontextusaban kit erdekel a Linux. Koze nincs a kettonek egymashoz. Masrol szol mindketto.
Bar igazabol, hogy pontos legyek, a Linux kernel es egy C fordito kontextusaban kit erdekel a .NET/Mono.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Nem teljesen értem ezt az LLVM dolgot.
Jól értem, hogy végül is ez egyfajta backend különböző nyelvekhez? Ha jól látom a google python interpretert épít rá pl.
Ezzel lehet gépi kódot is csinálni meg vm kódot is akkor?
Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش
- A hozzászóláshoz be kell jelentkezni
http://en.wikipedia.org/wiki/Compiler
http://upload.wikimedia.org/wikipedia/commons/6/6b/Compiler.svg
This front-end/middle/back-end approach makes it possible to combine front ends for different languages with back ends for different CPUs. Practical examples of this approach are the GNU Compiler Collection, LLVM, and the Amsterdam Compiler Kit, which have multiple front-ends, shared analysis and multiple back-ends.
gyakorlatilag modularizalva van a forditas.
vannak frontendek, amik mindenfele nyelvbol tudnak a backend szamara ertelmezheto koztes nyelvre forditani, igy egy-egy frontendnek csak adott nyelv(ek)rol koztesre kell tudnia forditani.
a backend pedig csak errol a koztes nyelvrol tud forditani, viszont mindenfele CPU-ra/architechturara.
sokkal egyszerubb igy az elet, mintha 1 programnak kellene minden nyelvrol minden architechturara forditani.
Tyrael
- A hozzászóláshoz be kell jelentkezni
És a vm kód gépkód kérdésem? :)
Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش
- A hozzászóláshoz be kell jelentkezni
Igen.
- A hozzászóláshoz be kell jelentkezni
vm kod alatt mit ertesz?
a koztes nyelvet(intermediate form)?
ha megnezted volna a kepet, vagy a compiler-es szocikket, vagy a llvm szocikket, akkor lathattad volna, hogy a koztes kodbol forditja a backend a gepi kodot, ergo a koztes forma, az nem gepi kod.
szerintem.
Tyrael
- A hozzászóláshoz be kell jelentkezni
a koztes kodot nem csak adott cpu-ra leforditani tudja, hanem vm-ben futtatni is. sot van benne mar JIT is ami valahol a 2 dolog kombinacioja...
A'rpi
- A hozzászóláshoz be kell jelentkezni
Kösz, megválaszoltad a kérdést!
Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش
- A hozzászóláshoz be kell jelentkezni
Egy vm kód miben tér el egy gépi kódtól szerinted? Ugyanannak a dolognak kétféle reprezentációja, mintha egy más architektúrára fordítanál.
- A hozzászóláshoz be kell jelentkezni
en nem mennek el ennyire elmeleti iranyba.
http://en.wikipedia.org/wiki/Machine_code
Tyrael
- A hozzászóláshoz be kell jelentkezni