Portál AbcLinuxu, 2. května 2025 05:52

Clang možná nahradí GCC ve FreeBSD

Clang dost možná ve FreeBSD nahradí GCC. Clang z projektu LLVM v současnosti dokáže zkompilovat 99 % věcí ze světa FreeBSD, ačkoliv nadále obsahuje chyby a má nedostatky v podpoře C++.

11.5.2009 13:28 | Luboš Doležel (Doli) | Zajímavý článek


Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (4) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

11.5.2009 14:00 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Odpovědět | Sbalit | Link | Blokovat | Admin

Zajímavé jak se svět v "první fázi" nejdřív pomocí GPL licence (GCC) osvobozoval od proprietárního softwaru, a nyní se svět v "druhé fázi" osvobozuje pomocí BSD licence (LLVM, Clang) od GPL softwaru. Jen aby někoho nenapadlo, že od BSD licence se musí osvobodit pomocí public domain :-)

vim ~/.emacs
belisarivs avatar 11.5.2009 14:33 belisarivs | skóre: 22 | blog: Psychobláboly
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Zajimave. Niceho takoveho jsem si nevsiml.

Nevim, jestli jde zmena kompilatoru jednoho systemu, ktery je dokonce jeste minoritnejsi nez Linux usoudit, ze se svet osvobozuje.

IRC is just multiplayer notepad.
11.5.2009 18:57 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

 Pravda, měl jsem místo "svět" napsat něco ve smyslu "lidi, které to zajímá"

vim ~/.emacs
11.5.2009 21:49 x
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Bohuzel FreeBSD se stejne jako Linux chce stat majoritnejsi,coz prinasi katastrofalni vysledky.Nastesti maji nekteri rozum a vcas se to snazi napravovat (DragonFlyBSD).

12.5.2009 09:10 roman
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

DragonflyBSD a FreeBSD spolupracuji na nahrade gcc clangem...

12.5.2009 09:46 x
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Ja jsem ale v reakci nemel na mysli clang.DragonFlyBSD vychazi z FreeBSD,takze maji spoustu spolecneho a diky velikosti tymu DragonFly se holt v nekterych situacich budou muset podridit.

14.5.2009 18:05 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
DF sledujem od jeho vzniku a konštatujem, že sa im nepodarilo naplniť pôvodné tak trochu veľkohubé záväzky stať sa hi-tech forkom FreeBSD. Našťastie. DF sa namiesto toho stalo perfektným technologickým sandboxom pre FreeBSD. Developeri DF sa bavia s vecami, ktoré ich výsostne bavia a teda odvádzajú skvelú prácu. No a keď sa podarí v DF vyvinúť nejakú ucelenú funkcionalitu, backportuje sa do FreeBSD. Takže DF je skvelý, poskytuje priestor na technologické hranie sa a úspechy sa vracajú do materského FreeBSD. Nasadiť DF na ľubovoľný produkčný či polo-produkčný stroj ... ďakujem, neprosím. Support v prípade problémov je ekvivalentný veľkosti komunity, t.j. mizivý. Že sa dajú adaptovať návody z FreeBSD v DF? Ďakujem, ale presne pre toto som ušiel od pomätenia Linuxových distribúcií k FreeBSD.

11.5.2009 15:22 R
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Od GCC by niektori ludia chceli oslobodit aj jadro Linuxu - a dovody su technicke (vela bugov, pomalost), nie licencne.
11.5.2009 19:06 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

tak jsem si přečetl, že Red Flag Linux kompiluje celé své distro, i kernel, pomocí icc. Clang má gcc kompatibilitu jako důležitý cíl, takže jako kandidát do budoucna je.

nemáte nějaký odkaz ohledně toho, o jakém kompilátoru ti někteří lidé uvažují?

vim ~/.emacs
12.5.2009 10:01 bhy | skóre: 35 | blog: bhyblog | brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Ne, takhle to není. V odkazovaném textu se nemluví o tom, že by důvody ke změně měly něco společného s GPL (aspoň v tomto konkrétním případě). To jen anti-GPL ideologové každou zmínku o úspěších nebo změnách BSD systémů takto zneužívají. (Mimochodem, BSD licence nejsou žádnými nástupkyněmi GPL, existují stejně dlouho nebo i déle a podle některých názorů měl na rozšíření GNU/Linuxu vliv vleklý soudní spor v 90. letech, kdy se řešilo, zda volně dostupné BSD systémy vykradli kód z komerčního BSD unixu. Samozřejmě že nevykradli, ale spor jim i tak dost uškodil.)
12.5.2009 10:10 skim | skóre: 6
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
POZNÁMKA:

V BSD komunitě existuje zájem o vyřazení všeho kodu licencovaného pod GPL. Vzhledem k tomu, že to není jednoduché (viz. třeba to GCC), tak to jde pomalu. :)

(Tím neříkám, že se o tom nějak moc mluví.)
13.5.2009 10:43 bhy | skóre: 35 | blog: bhyblog | brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
No, asi by se mělo uvést, jak velká část BSD komunity tento zájem má, kdo to kde říká a tak.
13.5.2009 12:02 skim | skóre: 6
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Je to jenom ukázka, co si s poslední doby pamatuji.

NetBSD: FreeBSD:
[...]jak velká část BSD komunity tento zájem má[...]
Myslím, že BSD komunita v první řadě chce mít funkční systém. Tudíž jsou některé minoritní části GPL licencované (Z duvodů neexistence náhrady.) Už jenom z předchozích odkazů lze vyvodit, že zájem, a to nemalý, existuje.
[...], kdo to kde říká a tak.
Jak jsem říkal minule, tak se o tom nějak moc „nemluví“, prostě se to ví. Tohle je můj výklad, jednoduše cítím tenhle postoj na 100%. Můžete to samožřejmě nějak zpochybňovat.
9.6.2009 14:55 m;)
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Presne tak, vseobecnym zaujmom je v prvom rade bezproblemovo fungujuci system. Ked vsak existuju primerane alternativy tak sa pochopitelne siahne po BSD ci inej kompatibilnej licencii. GPL je proste problematicka na zaclenovanie s inymi licenciami.
9.6.2009 14:49 m;)
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Ten zaujem tam rozhodne je. BSD systemy su zalozene na BSD licencii a teda ju uprednostnuju. Ak nie je ina rozumna volba, moze sa pouzit aj GPL (napr GCC). Od tohoto sa vsak stale viac ustupuje z dovodu problematickeho zaclenovania GPL (tzv. virovost GPL). Toto sa tyka samotneho systemu (jadro + base). Samozrejme vacsina uzivatelov to prilis neriesi a z portov si moze doinstalovat lubovolny SW.

Inak nie vzdy je nahrada programu zapricinena vylucne GPL, ale casto je to nespokojnost s kvalitou ci smerom vyvoja daneho programu.

Pozn.: BSD je starsia ako GPL a odvijaju sa od nej mnohe dalsie zname licencie.
mj41 avatar 13.5.2009 11:49 mj41 | skóre: 17 | blog: mj41 | Brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Sakryš tohle mi nějak uniklo. Můžu poprosit nějaké linky, abych si o tom boji proti GPL přečetl více? Já osobně GPL pokládám za nástupce BSD :-). Altruismus mi připadá jako cesta, kterou může jít jen nepatrný zlomek populace. GPL a její "virovost" považuji za nějakou dohodu typu "ten dělá to a ten zas tohle a dohromady udělají moc". U BSD mi to připadá jako "ten dělá to a ten zas tohle a ten třetí na nich bohatne".

13.5.2009 12:06 skim | skóre: 6
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Můžu poprosit nějaké linky, abych si o tom boji proti GPL přečetl více?
O tom boji? Nerozumím.
Já osobně GPL pokládám za nástupce BSD . Altruismus mi připadá jako cesta, kterou může jít jen nepatrný zlomek populace. GPL a její "virovost" považuji za nějakou dohodu typu "ten dělá to a ten zas tohle a dohromady udělají moc". U BSD mi to připadá jako "ten dělá to a ten zas tohle a ten třetí na nich bohatne".
Ja osobně to třeba vidím naopak. Ovšem prohlášení „za nástupce“ mi přijde úplně zcestné. Ja osobně jsem velmi rád, že svět je různorodý. Ze všemi důsledky.
mj41 avatar 13.5.2009 13:09 mj41 | skóre: 17 | blog: mj41 | Brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Spojení „za nástupce“ jsem použil jako protiváhu pro první přispěvek v diskusi. Je to samozřejmě trochu nadsázka. Nerad bych se vracel k nekonečným diskusím GPL vs. BSD. Svůj názor v téhle pětiletce stéjně měnit nechci :-).

Boj? Když spolu dvě licence nemohou být a tiše se respektovat, tak minimálně o vývojáře a jejich čas bojovat budou.

Jasně různorodost je supr a základ evoluce. Každý, ale musí vědět kde jsou hranice jednotlivých skupin. Např. zloději vs. altruisti vs. realisti. Doba, kdy budou všichni jen krást (nebo kdy zde budou všichni altruisti a žádný zloděj) asi nikdy nepřijde.

 

 

9.6.2009 15:01 m;)
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Ale to ze by BSD kazdy len vykradal nie je vobec pravda. A vykradat sa da koniec koncov aj GPL. Ale toto je uz dost off topic a rozhodne sa nechcem pustat do politickych diskusii BSD vs GPL vs ostatni. :-)
12.5.2009 19:48 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Ze slidů nadcházejícího FreeBSD Developer Summitu, str.5: "Why do we want this?" 1. bod: "GCC in base seems to be a dead end, mainly because of GPLv3."

Mimochodem z jakého textu Vy víte, že to tak "není"? Btw. nejsem anti-GPL, a už vůbec ne ideolog ;-)

vim ~/.emacs
13.5.2009 10:47 bhy | skóre: 35 | blog: bhyblog | brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Neříkám, že vím, že to tak není. Ale v textu, odkazovaném ve zprávičce (který si troufám považovat za o něco autoritativnější zdroj, než ty slidy), není v pasáži o Clang žádná zmínka o GPL.
11.5.2009 15:41 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Odpovědět | Sbalit | Link | Blokovat | Admin

Kdyz jsem se naposledy koukal na LLVM, tak podporovalo jen velmi malo architektur.  Napriklad nemelo podporu ARMu a MIPSu, a to jsou pomerne popularni architektury.

Jan Drábek avatar 11.5.2009 15:57 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

To by pak měli Volnoběžci s freebsd útlum :D :D

 

01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
11.5.2009 16:03 roman
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

ARM i MIPS podporovane jsou, celkove jsou podporovane tyto architektury:

llvm/lib/Target/PIC16
llvm/lib/Target/X86
llvm/lib/Target/CBackend
llvm/lib/Target/IA64
llvm/lib/Target/CellSPU
llvm/lib/Target/ARM
llvm/lib/Target/PowerPC
llvm/lib/Target/Alpha
llvm/lib/Target/CppBackend
llvm/lib/Target/MSIL
llvm/lib/Target/Mips
llvm/lib/Target/Sparc
llvm/lib/Target/MSP430
llvm/lib/Target/XCore
 

11.5.2009 16:21 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Zvlastni, na llvm.org pisi toto:

 

  • An easily retargettable code generator, which currently supports X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, and IA-64.
  • A Just-In-Time (JIT) code generation system, which currently supports X86, X86-64, PowerPC and PowerPC-64.

 

Takze minimalne MIPS tam nevidim.

unknown_ avatar 11.5.2009 19:12 unknown_ | skóre: 30 | blog: blog
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Proc spis verim freebsd developerovi? :-)
11.5.2009 21:46 x
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Odpovědět | Sbalit | Link | Blokovat | Admin

Proc mi to jen pripomina ty vtipy o tom,ze FreeBSD je Linux BSD sveta :-). Nekdo by jim mel rict,ze ostatni BSD se soustredi (a davaji i ziskavaji na to dotace) na PCC.

 

http://pcc.ludd.ltu.se/

http://www.undeadly.org/cgi?action=search&mode=&thres=&query=pcc

11.5.2009 22:28 roman
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

llvm/clang je modern prekladac, zalozeny na SSA atp. pcc je upravena verze prekladace ze 70. let. neni zalozena na SSA a nema podporu C++. za pcc stoji v podstate 1 clovek (resp. 2 posledni dobou), za llvm/clang stoji nekolik velmi silnych firem (hlavne apple).

dalsi zajimavy prekladac je libfirm/cparser, ten je ale ciste akademicky

11.5.2009 22:44 skim | skóre: 6
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
ad C++: Má to být překladač C a ne C++ :)

ad SSA: Když koukneš na Portable C Compiler Fund, tak SSA je v plánu prakticky teď.

S lidma máš pravdu.
12.5.2009 09:55 x
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

Ze je neco moderni a pouziva se to na spouste mist automaticky neznamena,ze to je dobre.GCC je taky prakticky vsude,pritom je to krap,moloch a zabugovany kus software.PCC jde primarne jinou cestou a to nepodporovat sice kdejakou blbinku,ale za to byt spolehlive,male,jednoduche,stabilni a prenositelne.Pokud se dodrzi standardy,tak tady muze byt klidne GCC,PCC,Clang,....proste kazdemu dle chuti a potreb.Napr. Minix pouziva ACK http://en.wikipedia.org/wiki/Amsterdam_Compiler_Kit kvuli nekterym problemum spojenym s GCC atd.

Jardík avatar 11.5.2009 22:34 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Odpovědět | Sbalit | Link | Blokovat | Admin
clanq generuje zbytečné instrukce :-):
double add(double a, double b)
{
  return a+b;
}

clanq -O3:

00000000004004b0 <add>:
  4004b0:	55                   	push   %rbp
  4004b1:	48 89 e5             	mov    %rsp,%rbp
  4004b4:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
  4004b8:	5d                   	pop    %rbp
  4004b9:	c3                   	retq


gcc -O3:

00000000004004b0 <add>:
  4004b0:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
  4004b4:	c3                   	retq
Ještě do toho zkusím zapojit llvm, až zjistím jak :-)
Věřím v jednoho Boha.
Jardík avatar 11.5.2009 22:45 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
Tak s LLVM je funkce na obouch kompilátorech stejná. Nakonec jediný rozdíl je, že v main s clanq je mov $0x1,%al a s gcc je tam mov $0x1,%ax...
Věřím v jednoho Boha.
11.5.2009 23:44 roman
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

nevim jakou pouzivas verzi ale mne to generuje identicky kod (svn clang/llvm a gcc 4.2.1)

witten /tmp# gcc -mno-sse -O3 -c double.c && objdump -d double.o

double.o:     file format elf32-i386-freebsd

Disassembly of section .text:

00000000 <add>:
   0:    55                       push   %ebp
   1:    89 e5                    mov    %esp,%ebp
   3:    dd 45 10                 fldl   0x10(%ebp)
   6:    dc 45 08                 faddl  0x8(%ebp)
   9:    5d                       pop    %ebp
   a:    c3                       ret   
witten /tmp# clang -mno-sse -O3 -c double.c && objdump -d double.o

double.o:     file format elf32-i386-freebsd

Disassembly of section .text:

00000000 <add>:
   0:    55                       push   %ebp
   1:    89 e5                    mov    %esp,%ebp
   3:    dd 45 08                 fldl   0x8(%ebp)
   6:    dc 45 10                 faddl  0x10(%ebp)
   9:    5d                       pop    %ebp
   a:    c3                       ret   
 

bez toho -mno-sse clang pouzije sse aritmetiku (protoze je typicky rychlejsi a vzdycky presnejsi)

tu poznamku o llvm jsem nepochopil. clang je language fronted ktery produkuje llvm bytecode, ktery ten llvm potom skompiluje/zoptimalizuje do assembleru

12.5.2009 00:04 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
U obou verzí je zbytečný prolog a epilog. U gcc existuje volba -fomit-frame-pointer, ale nevím jestli na to má vliv (nezkoušel jsem, nezabýval jsem se:) )
Jardík avatar 12.5.2009 00:16 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD
tu poznamku o llvm jsem nepochopil. clang je language fronted ktery produkuje llvm bytecode, ktery ten llvm potom skompiluje/zoptimalizuje do assembleru
Možná. Poprvé jsem to zkompiloval clang -O3 -o test test.c a pak disassemberoval s objdumpem, podruhé jsem provedl clang-cc file.c -emit-llvm -o - | llvm-as | opt -std-compile-opts | llc > file.s. V prvním případě tam zbytečně byly "pushy a popy", v druhém tam nebyly.
elf32-i386-freebsd
Co to je? Nějaký zastaralý systém/procesor. Mně to ukazuje elf64-x86-64 :-) BTW u mě hnije LVVM/clang ze SVN taky (dnešní checkout) a GCC 4.3.2.
Věřím v jednoho Boha.
12.5.2009 09:12 roman
Rozbalit Rozbalit vše Re: Clang možná nahradí GCC ve FreeBSD

ty dva prikazy jsou v podstate identicke jen pouzivaji ruzne urovne optimalizace... nechapu v cem je pointa... pri ruznych optimalizacich to vyrabi ruzny kod, ale to se dalo ocekavat ne?

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.