Перешёл на завершающую стадию процесс миграции FreeBSD на компилятор Clang. Осуществлено (http://lists.freebsd.org/pipermail/svn-src-head/2013-Septemb...) отключение сборки по умолчанию gcc и libstdc++ для архитектур i386, amd64 и arm, ранее переведённых (http://www.opennet.me/opennews/art.shtml?num=35237) на использование Clang и развиваемой проектом LLVM библиотеки libc++. GCC по прежнему можно установить из портов или собрать из исходных текстов вместе с системой (при сборке системы следует указать WITH_GCC и WITH_GNUCXX в src.conf).URL: http://lists.freebsd.org/pipermail/svn-src-head/2013-Septemb...
Новость: http://www.opennet.me/opennews/art.shtml?num=37853
>> WITH_GCC и WITH_GNUCXXВ официальную wiki добавили бы ....
>> WITH_GCC и WITH_GNUCXX
>В официальную wiki добавили бы ....Это HEAD.
Ну тогда в HEAD-версию вики или забудут вообще добавить ..
> Ну тогда в HEAD-версию вики или забудут вообще добавить ..Забудьте. GCC у вас теперь deprecated, типа. А поскольку большинство авторов софта билдуется оным - отлично, бсдшников наконец окончательно вынесет на обочину мира, так что у них теперь будет в ...цать раз больше фигурной @$$ли со сборкой мало-мальски кастомного софта под свою систему. Отлично. Попытка пошестерить перед япплом возымеет свою цену.
>...бсдшников наконец окончательно вынесет на обочину мира, так что у них...Немедленно гуглить change management.
Просто вот так взять и гуглить.
Анониму нельзя просто так взять - и гуглить.
да какой хоть аноним, обычное УГ - усер294
> нельзя просто так взять - и гуглить... в Мордор?
>> нельзя просто так взять - и гуглить
> ... в Мордор?Ура, из GCC выкинут BSD-измы и BSD-ючесть!!! Мож наконец закопают протухший select(). :D
Напротив, из софта теперь вынесут все убогие GCC-измы (а из чего не получится, просто добавят USE_GCC=any) - профит всем.
Это ради BSD то? Не льстите себе. Просто оно будет ставить GCC для сборки того, что это требует. Ну каждому свой выбор.
> из софта теперь вынесут все убогие GCC-измыКто?
Именно! А BSD'ники, как последние $%!$#%, будут таскать тонну патчей, наслаждаясь всё более древним софтом.
Уважаемый! Вы или неимоверно толст или в мат части ни ухом ни рылом...
Погуглите что ли что есть такое базовая система и порты. И откуда и как ставится софт в FreeBSD. А как погуглите не сочтите за труд отпишитесь почему Ваш коментарий годится только для газификации луж.
> Уважаемый! Вы или неимоверно толст или в мат части ни ухом ни рылом...Он просто неимоверно глуп. Не понимает, что вынос софта из базы не означает полного выноса его из системы.
> Ну тогда в HEAD-версию вики или забудут вообще добавить ..Точно. Хреново работают волонтеры. Уже 2 часа изменений в коде и еще нет изменений в вики.
Уволить всех надо.Но вы вы же напомните и не будете увольнять их?
>> и не будете увольнять их?Уже уволили
>> и не будете увольнять их?
>Уже уволилиДеточка, ты крут.
> Это HEAD.Это BUTT.
>> WITH_GCC и WITH_GNUCXXа ЗАЧЕМ тебе GCC-то???
Религия такая?
Да правильно, нехай камикадзе давятся кривым кодом который шланг генерит и ловят в нем internal error'ы. А все остальных это окончательно за@#$хает и они перейдут на нормальные системы, на нагибающие продакшн в угоду своеим лицензионным заскокам на регулярной основе. Отличная идея.
> Да правильно, нехай камикадзе давятся кривым кодом который шланг генерит и ловят
> в нем internal error'ы. А все остальных это окончательно за@#$хает и
> они перейдут на нормальные системы, на нагибающие продакшн в угоду своеим
> лицензионным заскокам на регулярной основе. Отличная идея.Че, правда? Разве это BSD выпиливает приложения с криком: "Только свободное, только хардкор"?
Нету "нормальных систем". Я любой системе могу припомнить такое, за что ей кол в сердце нужно загнать.
>> кривым кодом который шланг генеритВы много работали с дизассемблером над собранными Clang исполнимыми файлами?
Расскажите нем скорее, что там не так?
Потролить собственно
>>> WITH_GCC и WITH_GNUCXX
> В официальную wiki добавили бы ....Какая ещё нахер wiki? Читай UPDATING http://svnweb.freebsd.org/base/head/UPDATING?revision=255348...
Читаем оригинал:
"On platforms where clang is the default compiler, don't build gcc or libstdc++"Читаем заголовок:
"Во FreeBSD-HEAD прекращена поставка GCC для архитектур i386, amd64 и arm"При том что в коде системы GCC остается, и никто не собираеться делать резких движений, ибо пипл понимает правила изменений в жизненном цикле.
Извините, ребята, со всем уважением, но вы различаете "don't procure" и "don't compile"?
Говорят, ночью видели как какой-то мужик зарывал парашют с надписью "phoronix"...
Да. Don't build - это не собирать. А "не поставлять" - когда вообще в дистрибутиве нет.Да, идея с toolchain(s).cpp божественна. В смысле - http://llvm.org/svn/llvm-project/cfe/trunk/lib/Driver/ToolCh... :
"
enum Distro {
ArchLinux,
DebianLenny,
DebianSqueeze,
DebianWheezy,
DebianJessie,
Exherbo,
RHEL4,
RHEL5,
RHEL6,
Fedora13,
Fedora14,
Fedora15,
Fedora16,
FedoraRawhide,
OpenSUSE,
UbuntuHardy,
UbuntuIntrepid,
UbuntuJaunty,
UbuntuKarmic,
UbuntuLucid,
UbuntuMaverick,
UbuntuNatty,
UbuntuOneiric,
UbuntuPrecise,
UbuntuQuantal,
UbuntuRaring,
UbuntuSaucy,
UnknownDistro
};
"Я, честно говоря, даже не думал, что такие костыли можно делать в 21-м веке, разрабатывая абсолютно новый компилятор С++.
> Я, честно говоря, даже не думал, что такие костыли можно делать в
> 21-м веке, разрабатывая абсолютно новый компилятор С++.Нормальная практика тестирования безопасной области применения
> Нормальная практика тестирования безопасной области применения???
Если уж такое делать, то скриптом. Пусть медленнее, но адаптировать под конкретный дистр значительно менее геморройно.
А вообще, пути к gcc и прочему известны на этапе сборки Clang'а для пакетирования в дистрибутив. Их можно банально вставить в configure или какой-нибудь .conf. И не надо обшманывать сотню каталогов при запуске clang'а.
> Да, идея с toolchain(s).cpp божественна. В смысле - http://llvm.org/svn/llvm-project/cfe/trunk/lib/Driver/ToolCh...---
// Ubuntu has a strange mis-matched pair of triples that this happens to
// match.
// FIXME: It may be worthwhile to generalize this and look for a second
// triple.
"/i386-linux-gnu/gcc/" + CandidateTriple.str()
};
const std::string InstallSuffixes[] = {
"/../../..", // gcc/
"/../../..", // gcc-cross/
"/../../../..", // <triple>/gcc/
"/../..", // <triple>/
"/../../../.." // i386-linux-gnu/gcc/<triple>/
};
// Only look at the final, weird Ubuntu suffix for i386-linux-gnu.
const unsigned NumLibSuffixes =
(llvm::array_lengthof(LibSuffixes) - (TargetArch != llvm::Triple::x86));
for (unsigned i = 0; i < NumLibSuffixes; ++i) {
Бедняга, который кодил это, попал в программистский ад или, по крайней мере, в чистилище. Ад, наверно, писать скрипт на ассемблере.
> Бедняга, который кодил это, попал в программистский ад или, по крайней мере,
> в чистилище. Ад, наверно, писать скрипт на ассемблере.бог явно за что-то ненавидит этого человека.
> бог явно за что-то ненавидит этого человека.А архитектора этого куска вообще решил погубить!!! :-)
enum Distro {
OpenSUSE,
}facepalm.jpg
оно же не будет работать...
> оно же не будет работать...Призовая игра!!! Оно и не работает. :-)
Там, кстати, ещё и версии gcc перечислены. И последних среди них нет.
> При том что в коде системы GCC остается, и никто не собираетьсяВ коде остаётся, но поставка бинарников прекращена. IMHO, поставка - это прежде всего то, что предлагается по умолчанию.
> делать резких движений, ибо пипл понимает правила изменений в жизненном цикле.
Насколько я помню, уже несколько раз обсуждался вопрос полного выпиливания GCC и его оставления только в портах. Рано или поздно GCC ждёт судьба Perl. С учётом консерватизма FreeBSD, скорее всего выпилят в FreeBSD 11.
> Рано или поздно GCC ждёт судьба Perl.у перла во FreeBSD отличная судьба, он не жаловался.
Я о судьбе быть перенесённым из базовой системы в порты.
> Я о судьбе быть перенесённым из базовой системы в порты.и я о том же. ничего страшного в этом нет.
> и я о том же. ничего страшного в этом нет.Кроме того что половина всякого самопального кастома в продакшнах шлангом нифига не соберется, а воевать с его инфернал еггогами в продакшне всем может быть очень западло. Но да, хороший выстрел в пятку, мне нравится. Среди фанатов надо отобрать только наиболее стойких.
А сколько ПО вы собрали с помощью LLVM/Clang, позвольте поинтересоваться?У меня базовая система и пакеты прикладного ПО:
% pkg_info | wc -l
529
Минус два пакета, для которых прописана условная компиляция в /etc/make.conf:
.if ${.CURDIR:M/usr/ports/editors/openoffice-*} \
|| ${.CURDIR:M/usr/ports/multimedia/gxine}
CC=/usr/bin/gcc
CXX=/usr/bin/g++
CPP=/usr/bin/gcpp
.endif
>[оверквотинг удален]
> У меня базовая система и пакеты прикладного ПО:
> % pkg_info | wc -l
> 529
> Минус два пакета, для которых прописана условная компиляция в /etc/make.conf:
> .if ${.CURDIR:M/usr/ports/editors/openoffice-*} \
> || ${.CURDIR:M/usr/ports/multimedia/gxine}
> CC=/usr/bin/gcc
> CXX=/usr/bin/g++
> CPP=/usr/bin/gcpp
> .endifСейчас перепроверил. gxine не собирается ни тем, ни этим компилятором.
Clang 3.3 пишет:
///---
...
===> Building for gxine-0.5.907_3
Makefile:921: предупреждение: переопределение способа для цели `dist'
Makefile:666: предупреждение: старый способ для цели `dist' игнорируются
Makefile:921: предупреждение: переопределение способа для цели `dist'
Makefile:666: предупреждение: старый способ для цели `dist' игнорируются
Making all in m4
Making all in gettext
Making all in pixmaps
Making all in include
GEN version.h
Making all in src
CC console_output.o
console_output.c:305:3: warning: function 'console_log_captured' declared
'noreturn' should not return [-Winvalid-noreturn]
return NULL; /* shut up, gcc */
^
1 warning generated.
CC desktop_integration.o
In file included from desktop_integration.c:27:
In file included from ./globals.h:38:
./script_engine.h:39:9: error: unknown type name 'jsdouble'
typedef jsdouble JSFloat64;
^
./script_engine.h:251:30: error: unknown type name 'JSInt32'
int se_result_int (se_t *se, JSInt32 *num);
^
./script_engine.h:254:37: error: unknown type name 'JSInt32'
int se_result_num_as_int (se_t *se, JSInt32 *num);
^
./script_engine.h:276:3: error: unknown type name 'uintN'; did you mean 'uint'?
uintN nargs, attrs;
^~~~~
uint
/usr/include/sys/types.h:56:22: note: 'uint' declared here
typedef unsigned int uint; /* Sys V compatibility */
^
In file included from desktop_integration.c:27:
In file included from ./globals.h:38:
./script_engine.h:282:37: error: unknown type name 'uintN'; did you mean 'uint'?
const char *name, JSNative fun, uintN nargs, uintN attrs,
^~~~~
uint
/usr/include/sys/types.h:56:22: note: 'uint' declared here
typedef unsigned int uint; /* Sys V compatibility */
^
In file included from desktop_integration.c:27:
In file included from ./globals.h:38:
./script_engine.h:282:50: error: unknown type name 'uintN'; did you mean 'uint'?
const char *name, JSNative fun, uintN nargs, uintN attrs,
^~~~~
uint
/usr/include/sys/types.h:56:22: note: 'uint' declared here
typedef unsigned int uint; /* Sys V compatibility */
^
6 errors generated.
gmake[2]: *** [desktop_integration.o] Ошибка 1
gmake[1]: *** [all-recursive] Ошибка 1
gmake: *** [all] Ошибка 2
*** [do-build] Error code 1Stop in /usr/ports/multimedia/gxine.
*** [build] Error code 1Stop in /usr/ports/multimedia/gxine.
---///GCC 4.2.1:
///---
...
===> Building for gxine-0.5.907_3
Makefile:921: предупреждение: переопределение способа для цели `dist'
Makefile:666: предупреждение: старый способ для цели `dist' игнорируются
Makefile:921: предупреждение: переопределение способа для цели `dist'
Makefile:666: предупреждение: старый способ для цели `dist' игнорируются
Making all in m4
Making all in gettext
Making all in pixmaps
Making all in include
GEN version.h
Making all in src
CC console_output.o
console_output.c: In function 'console_log_captured':
console_output.c:305: warning: function declared 'noreturn' has a 'return' statement
CC desktop_integration.o
In file included from globals.h:38,
from desktop_integration.c:27:
script_engine.h:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'JSFloat64'
script_engine.h:251: error: expected declaration specifiers or '...' before 'JSInt32'
script_engine.h:252: error: expected declaration specifiers or '...' before 'JSFloat64'
script_engine.h:254: error: expected declaration specifiers or '...' before 'JSInt32'
script_engine.h:255: error: expected declaration specifiers or '...' before 'JSFloat64'
script_engine.h:276: error: expected specifier-qualifier-list before 'uintN'
script_engine.h:282: error: expected declaration specifiers or '...' before 'uintN'
script_engine.h:282: error: expected declaration specifiers or '...' before 'uintN'
gmake[2]: *** [desktop_integration.o] Ошибка 1
gmake[1]: *** [all-recursive] Ошибка 1
gmake: *** [all] Ошибка 2
*** [do-build] Error code 1Stop in /usr/ports/multimedia/gxine.
*** [build] Error code 1Stop in /usr/ports/multimedia/gxine.
---///
Изя, какой, нафиг xine, ты же вантузятнег, как там, шиндошс_медиа_плеер шлангом собирается?
> Кроме того что половина всякого самопального кастома в продакшнах шлангом нифига не соберетсяя правильно понимаю, что у тебя в продакшнах полно кастомного софта, а указывать компилятор ты не умеешь? или ты просто балабол-теоретик?
>> Кроме того что половина всякого самопального кастома в продакшнах шлангом нифига не соберется
> я правильно понимаю, что у тебя в продакшнах полно кастомного софта, а
> указывать компилятор ты не умеешь? или ты просто балабол-теоретик?он спицыолизд-виртуализатар-эмБЕДОвик, там тупо нет кастомного софта, вот и не знает чо-как. не узнаешь его ?:-)
> Кроме того что половина всякого самопального кастома в продакшнах шлангом нифига не
> соберется, а воевать с его инфернал еггогами в продакшне всем может
> быть очень западло.А нафига ты собираешь самопальный софт с помощью clang? Чем тебя gcc не устраивает?
все самопальные вещи на С которые тут есть собираются clang`ом без проблем _и работают так как должны_. уж не знаю почему ( ;-) )... но nop`ов в итоге там меньше получается, по сравнению с гцц:-)
но ты да, продолжай верить в то, что у всех кроме ты все плохо.
> поставка - это прежде всего то, что предлагается по умолчанию."Базовая поставка" однозначнее.
> Рано или поздно GCC ждёт судьба Perl.Не, это фрибсд уже нарвалась на судьбу попечальнее чем перл. В новых инсталляциях ей пользубтся только буйные психопаты с неизлечимым фетишизмом. Остальные давно свинтили на куда более разумно сделанные системы.
>> Рано или поздно GCC ждёт судьба Perl.
> Не, это фрибсд уже нарвалась на судьбу попечальнее чем перл. В новых
> инсталляциях ей пользубтся только буйные психопаты с неизлечимым фетишизмом. Остальные
> давно свинтили на куда более разумно сделанные системы.Мнение некомпетентного анонимуса нынче очень дорого стоит на LOR. Пачкой по 1000 штук =)
> Мнение некомпетентного анонимуса нынче очень дорого стоит на LOR. Пачкой по 1000
> штук =)Как сторонник, любитель, admin в прошлом фряхи, ответсвенно сообщаю своё IMHO, что
в Core Team взят курс на формирование кодовой базы для импорта его компонентов в закрытые
проприетарные проекты.Как целостная ОС для продакшена на серверных инфраструктурах, в
Core Team фряху уже не рассматривают-многие понимают, что позиции сданы линуксам и догнать
не получится.
>...Как целостная ОС для продакшена на серверных инфраструктурах...Не курите больше такую дрянь.
> Не курите больше такую дрянь.Не ты. Капли глазные купи, что ли.
>> Не курите больше такую дрянь.
> Не ты. Капли глазные купи, что ли.чтобы узреть твой селерон с линаксом который типа Сервер?:-)
Нет, это только за заядлыми бздишнеками можно заподозрить возню с копеешными hp, dell, supermicro, потому-что на более мощном оборудовании стоят rhel, suse, aix, sunos.И
работы на них хватает, так-что некогда фапать на фряшку.
> Нет, это только за заядлыми бздишнеками можно заподозрить возню с копеешными hp,
> dell, supermicro, потому-что на более мощном оборудовании стоят rhel, suse, aix,
> sunos.И
> работы на них хватает, так-что некогда фапать на фряшку.судя по "потому-что" у тебя ОГРОМНЫЙ опыт работы с "на более мощном оборудовании". ты бы не стеснялся да рассказал что это за Оборудование такое ;-)
олсо, судя по упоминанию aix и sunos, это вот "более мощное оборудование" нужно разве что для откатинга и распальцовки "одминов" этого самого "оборудования". и да, на 2 стойках забитыми не копеешными НР стоял чпукс а не какой-то там рхел и(или) зузе
И да одминил санфайры Vxxx в своё время.А теперь попадаются sparc Tx, hp-ишные
все на rhel, suse, win.
> в своё время.А теперь попадаются
> все на rhel, suse, win.Ты хочешь сказать, что "этот наш линакс - афтермаркетное г-но"? Ну, лан...
> В новых инсталляциях ей пользубтся только буйные психопаты с неизлечимым фетишизмом. Остальные психопаты расползлись тоже по своим пала... дистрам.//fixed
> IMHO, поставка - это прежде всего то, что предлагается по умолчанию.Рекомендую пересмотреть свое IMHO для операционной системы, предлагаемой для копирования в комплекте с исходными текстами.
Там нет дистрибутива. Есть базовая система, из которой таки GCC выкинули, и порты, для которых никакая работоспособность в общем случае не гарантируется.
> Там нет дистрибутива. Есть базовая система, из которой таки GCC выкинули,
> и порты, для которых никакая работоспособность в общем случае не гарантируется.Такое впечатление, деточка, что ты не понимаешь о чем пишешь.
$ head -10 /usr/src/release/Makefile
# $FreeBSD: stable/9/release/Makefile 253632 2013-07-25 02:43:05Z gjb $
#
# Makefile for building releases and release media.
#
# User-driven targets:
# cdrom: Builds release CD-ROM media (disc1.iso)
# memstick: Builds memory stick image (memstick.img)
# ftp: Sets up FTP distribution area (ftp)
# release: Build all media and FTP distribution area
# install: Copies all release media into ${DESTDIR}
Дистрибутив в линуксовом понимании - это пачка софта, подготовленная и протестированная для совместной работы. И это отнюдь не "базовая система", а, как правило, рабочая станция, включающая GUI с подобранным набором приложений, либо что-то для специального применения. Из BSD-дистрибутивов я разве что pfSense како-нибудь вспомнить могу.
Альтернатива в коде, да сравнимая по фичам - это хорошо. Хреновина, подкручиваемая под удобство проприетарщиков, не имеющая приличной организации дальше "базовой системы" и отстающая по фичам - это не альтернатива, а зомби, вылезший из могилы.
не могу понять ворчунов... Ну есть 2-а компилятора, один уже испытанный, другой нет. Неужели применение другого для боевой системы не даст толчок для развития испытанного... Радоваться надо этому, а не обсирать другую систему, брызгая при этом слюной, особенно, если эту систему не используете...
> не могу понять ворчунов...в них нечего понимать.
мс копиляторы, интел, гцц, возможно у амд есть свой, и хз сколько их ещё.
> не могу понять ворчунов...Ты не понимаешь. Оне долго жили в венде, и "One world, one OS, one fuhrer" сильно въелось. Теперь у них поменялась ОС, но лозунг-то прежний.
Давно пора. Поддерживать гавно мамонта (gcc-4.2) - впустую тратить ресурсы. Поэтому clang в базу, нормальные версии gcc в порты.
Юзаю шланг, собираю им и систему и порты.
Разницы не видно: шланг только варнингов больше показывает, но это авторы кода виноваты, там всё заслуженно.
гцц на днях выпилил, за ненадобностью.
>шланг только варнингов больше показывает, но это авторы кода виноваты, там всё заслуженновот только показывают это тебе, а не виноватому автору кода, так что толку от этого "больше варнингов" никакого
>>шланг только варнингов больше показывает, но это авторы кода виноваты, там всё заслуженно
> вот только показывают это тебе, а не виноватому автору кода, так что
> толку от этого "больше варнингов" никакогоЯ и сам пишу.
Вреда мне как пользователю тоже никакого.
Такое ощущение что тут большинство считает, что шлангом вообще ничего собрать нельзя, онако по факту разницы нет чем собирать - результат работоспособен.
> результат работоспособен.И даже под ARM?
И под nagara4?
> онако по факту разницы нет чем собирать — результат работоспособен.угу. сегодня вот наткнулся на такой «работоспособный» результат: после сборки шлангом программа намертво зависала. как выяснилось, шланг 3.3 по-прежнему не может в безбажный код при inline, из-за чего мой генератор байткода нагенерил бредятину с бесконечным циклом там, где его в природе быть не может (и нет, если использовать gcc).
так что смелые вы ребята, бсдшники: боевую систему этой глюкалкой собирать…