Сборка ядра FreeBSD компилятором LLVM

Обсуждение всяких разных новостей.
ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение ev » 2009-02-27 12:52:20

сборка ядра FreeBSD компилятором clang/llvm, компилирующего Си/С++ программы в промежуточный байткод RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации).
http://www.opennet.ru/opennews/art.shtml?num=20491

т.е. теперь фряху можно грузить на смартфонах?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение hizel » 2009-02-27 13:33:33

на симбиан есть llvm? :shock:
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение terminus » 2009-03-09 12:00:11

БСДшники потихоньку движутся от GCC к clang/llvm.
Вот уже LINT ядро им можно собрать (мир пока нельзя).

http://lists.freebsd.org/pipermail/free ... 04193.html
http://wiki.freebsd.org/BuildingFreeBSDWithClang

Результат сравнения скорости работы ядра собраного GCC и clang/llvm.
http://www.vlakno.cz/~pwo/lm.html
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение zingel » 2009-03-09 14:24:52

не впечатлило...
Z301171463546 - можно пожертвовать мне денег

Гость
проходил мимо

Re: Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение Гость » 2009-03-09 15:18:00

можно для ламеров, llvm с ccache дружит? если я пихну симлинк на ccc в /usr/local/libexec/ccache/ побочных эффектов не будет?

Гость
проходил мимо

Re: Сборка ядра FreeBSD компилятором LLVM

Непрочитанное сообщение Гость » 2009-03-19 1:15:30

да, с ccache дружит. Собрал мир и ядро с помощью clang. Мир стал работать на порядок шустрее, а ядро похудело.

Из локальных хаков в дополнение к llvm-bmake использую

Код: Выделить всё

Index: lib/libthr/Makefile
===================================================================
--- lib/libthr/Makefile	(revision 189969)
+++ lib/libthr/Makefile	(working copy)
@@ -13,6 +13,10 @@
 .include <bsd.own.mk>
 MK_SSP=	no
 
+.if ${MK_CLANG_IS_CC} != "no" && ${CC} == "cc"
+CC=	gcc
+.endif
+
 LIB=thr
 SHLIB_MAJOR= 3
 WARNS?=	3
Index: sys/boot/zfs/Makefile
===================================================================
--- sys/boot/zfs/Makefile	(revision 189969)
+++ sys/boot/zfs/Makefile	(working copy)
@@ -3,6 +3,10 @@
 LIB=		zfsboot
 INTERNALLIB=
 
+.if ${MK_CLANG_IS_CC} != "no" && ${CC} == "cc"
+CC=	gcc
+.endif
+
 SRCS+=		zfs.c
 
 CFLAGS+=	-I${.CURDIR}/../common -I${.CURDIR}/../.. -I.
Index: sys/conf/kern.post.mk
===================================================================
--- sys/conf/kern.post.mk	(revision 189969)
+++ sys/conf/kern.post.mk	(working copy)
@@ -153,9 +153,9 @@
 .depend: .PRECIOUS ${SRCS}
 	rm -f .newdep
 	${MAKE} -V CFILES -V SYSTEM_CFILES -V GEN_CFILES | \
-	    MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS}
+	    MKDEP_CPP="gcc -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS}
 	${MAKE} -V SFILES | \
-	    MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS}
+	    MKDEP_CPP="gcc -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS}
 	rm -f .depend
 	mv .newdep .depend