ClangBSD собирает себя

    Процесс, описываемый на wiki.freebsd.org/BuildingFreeBSDWithClang, казалось, идет слишком медленно, или же совсем заглох. Однако недавно в рассылке появилось сообщение от Roman Divacky о том, что ClangBSD успешно собирает саму себя на tier 1 платформах (i386 и amd64).

    Вкратце ClangBSD — попытка собрать ядро и мир FreeBSD с помощью компилятора clang, который, в свою очередь, является фронтендом к LLVM. Как известно, FreeBSD до сих пор использует GCC версии 4.2.1, т.к. последующие версии сменили лицензию. Clang же имеет BSD-лицензию, а так же имеет много других вкусностей.
    У проекта были проблемы со сборкой libstdc++, однако теперь они преодолены. Единственный известный баг — загрузчик ОС превышает допустимый размер исполняемого файла. Пока что имеется workaround — собирать загрузчик без поддержки UFS1.

    Сообщение разработчиков:
    permalink.gmane.org/gmane.os.freebsd.current/124678

    Low Level Virtual Machine:
    llvm.org

    Clang:
    clang.llvm.org
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 71

      +1
      Для своих программ под Mac OS X я лично уже использую Clang в качестве компилятора (т.е. clang+llvm) — впечатления сугубо положительные, особо радуют более подробные сообщения об ошибках и наличие неплохого статического анализатора кода, который помогает выявить, к примеру, утечки памяти ещё до компиляции и запуска приложения.

      Ну и вроде как Clang стремится к тому, чтобы быть полностью GCC-совместимым, так что, возможно, и порты можно будет собирать с помощью Clang :)!
        0
        что-то я в портащ не нашел clang

          0
          Порт devel/llvm-devel ставит llvm и clang.
            +1
            Port llvm-devel contains:
            /opt/local/bin/bugpoint
            /opt/local/bin/gccas
            /opt/local/bin/gccld
            /opt/local/bin/llc
            /opt/local/bin/lli
            /opt/local/bin/llvm-ar
            /opt/local/bin/llvm-as
            /opt/local/bin/llvm-bcanalyzer
            /opt/local/bin/llvm-config
            /opt/local/bin/llvm-db
            /opt/local/bin/llvm-dis
            /opt/local/bin/llvm-extract
            /opt/local/bin/llvm-ld
            /opt/local/bin/llvm-link
            /opt/local/bin/llvm-nm
            /opt/local/bin/llvm-prof
            /opt/local/bin/llvm-ranlib
            /opt/local/bin/llvm-stub
            /opt/local/bin/llvmc2
            /opt/local/bin/opt


            Где оно?:)
              0
              Хм, и правда нет. Ну тогда ручками ставить, наверное.
                0
                упс. был неправ

                [Users/xumix] > variants llvm-devel
                llvm-devel has the variants:
                clang: Install clang (with checker tools)
                universal: Build for multiple architectures
          0
          >Для своих программ под Mac OS X
          О да, я вам даже слегка завидую. Качество ObjC и C на Darwin уже производственного качества. Оно и понятно, Крис Латтнер работает в Apple.
          >Ну и вроде как Clang стремится к тому, чтобы быть полностью GCC-совместимым
          Обижаете. GCC на очень многие вещи закрывает глаза, а clang стремится строго соответствовать стандарту. Задачи clang помимо BSD-лицензии — большая скорость компиляции, малое потребление и памяти и подробные диагностические сообщения, о которых вы уже сказали. Ну и архитектура модульная для встраивания в ИДЕ.
          >порты можно будет собирать с помощью Clang
          Это даже без сомнения, на ранних этапах была предпринята попытка собрать дерево портов clang'ом. Собралось 4000-5000 портов из 20000+. Не очень выпечатляющий результат, но там было оправдание — clang не собрал какую-то либо, от которой очень много портов зависело и поэтому они автоматом не собрались.
            +1
            Ну и вроде как Clang стремится к тому, чтобы быть полностью GCC-совместимым

            Я имел ввиду совместимость на уровне исходного кода :)
          0
          и уж apple.com добавьте в линки :D

          >использует GCC версии 4.2.1, т.к. последующие версии сменили лицензию

          Можно подробнее?
            0
            А чего подробнее? У FreeBSD и binutils 2004 года из-за этой же проблемы. Я особо не разбираюсь в их мудреностях с лицензиями, но что-то мешает FreeBSD использовать новый GCC для сборки ядра и мира.

            С нетерпением жду конференции в начале мая — там будет обсуждаться эта проблема. У LLVM развивается новый проект Machine Code, который включает низкоуровневые утилиты для работы с кодом (ассемблер и дизассемблер). Если его доведут до ума, то llvm+clang смогут заменить весь GNU toolchain.
              +5
              Ну интересно же из-за чего так. как я понял GPLv3 это еще больше анальное рабство и еще меньше свободы. В принципе это радует, что BSD мир все дальше отдаляется от GNU.
              • UFO just landed and posted this here
                  +5
                  ИМХО, пусть п*здят, если это поможет людям делать хорошие продукты. Я, к примеру, был бы рад, если бы Microsoft использовала свободный код для создания своей Windows — возможно, большинства «велосипедов», которые вовсю присутствуют в Windows, и лично меня очень бесят, получилось бы избежать, и мы бы получили лучшую версию (или не лучшую, но более дешевую) версию Windows, и был бы мир во всём мире.

                  P.S. Повторяю, это моё личное мнение.
                    +4
                    А, может быть, ещё лучше, чтобы windows не было? Цена на windows определяется не ценой разработки (дешёвый код не значит дешёвая лицензия), а суммой, которая предполагается к изъятию у покупателя (сосать столько, сколько высосется).

                    Майкрософт _ВСЕГДА_ будет изобретать велосипеды, причём, желательно такие, которые будут гадить окружающим (например, портить HPFS или «оригинально» рендерить html, или «интересно» исполнять код netscape server). Потому что это стратегия на создание конкурентам невыносимых условий. Патенты на exfat тому пример. Хапнуть себе мозаик — это пожалуйста. Отдать в свободное использование что либо? Ну только если код для поддержки hyperv в гостевом линуксе, не более.

                    Майкрософт имеет целью не только доходы, но и уничтожение конкурентов, как честными, так и подлыми методами (повторю, netscape server, hpfs).
                      +2
                      Соглашусь про подлость Майкрософт.
                      Именно потому я практически никогда не использовал продукты этой корпорации. Брезгливо.
                      +1
                      К слову сказать, что TCP/IP стек они вполне себе стащили из BSD вместе с кучей консольных утилит навроде ftp.exe
                        0
                        … Чему лично я очень рад, потому что для работы с сетью в Windows не надо особо изучать ничего нового (по сравнению с UNIX). Ну и схожесть в работе утилит вроде telnet, ping, etc тоже очень радует.
                          +1
                          Даже в том же пинге они умудрились переименовать все ключи, чтобы не совпадали с *nix :D
                            0
                            [irony]а что в этом плохого?[/irony]

                            Реально плохо только то что ликвидировали -a/-A
                      +2
                      1) Авторство присвоить себе нельзя
                      2) gpl не свободная лицензия
                      3) Apple не п*здит код, а развивает проект дальше
                      4) Если проект опенсорус, значит вы не хотели на нем заработать, с чего вдруг вас волнует, что кто-то хочет?
                      5) CLang разве не разработка Apple?
                        +1
                        Ну логично, авторство и лицензия это разные вещи. Автор может делать что угодно и выпускать под любой лицензией свои наработки

                        Это интересно чем же? Свободу просматривать код она дает, свободу его распространять и модифицировать тоже. А главное, что GPL способствует тому, чтобы открытого кода было больше. А уж чем хорош открытый код все знают. Но в отличии от BSD, GPL защищает производные работы, что позволяет и этими наработками впоследствии пользоваться. Но опять же есть еще и LGPL, которая и была создана для библиотек и любых базовых компонентов.

                        Опять же с BSD не получится сделать двойное лицензирование, а на нем очень многие живут припеваючи.
                          +4
                          С каких пор кого-то должно волновать будущее производных?
                          >GPL защищает производные работы,
                          s/защищает/ограничивает/g

                          >Опять же с BSD не получится сделать двойное лицензирование, а на нем очень многие живут припеваючи.
                          lolwut?
                            0
                            в данном случае можно провести такую аналогию:
                            GPL это тётка которую поимел и навсегда обязан заботиться о сделанных совместно чайлдах
                            BSD это шлюха которую имеет кто хочет а детей сразу в детдом или на на органы.

                            С другой стороны BSDшники готовы ложится под корпорации типа MS или Apple заявляя что их не волнует кто и что делает с их кодом, но начинают вонять и исходиться на говно как только в линукс перелицензируют часть их кода — достаточно вспомнить историю с ath5k
                              0
                              >GPL это тётка которую поимел и навсегда обязан заботиться о сделанных совместно чайлдах

                              таже самая шлюха, только качает свои права и говорит, что они женьщина достойна большего.

                              >BSD это шлюха которую имеет кто хочет а детей сразу в детдом или на на органы.

                              эммм нет такой аналогии.

                              ^^

                              аналогия говно.(я про вашу)

                              >С другой стороны BSDшники готовы ложится под корпорации типа MS или Apple заявляя что их не волнует кто и что делает с их кодом, но начинают вонять и исходиться на говно как только в линукс перелицензируют часть их кода — достаточно вспомнить историю с ath5k

                              в линукс все так же ест кактус.

                              >но начинают вонять и исходиться на говно как только в линукс перелицензируют часть их кода

                              они молча переписывают эту часть.

                              > другой стороны BSDшники готовы ложится под корпорации типа MS или Apple заявляя что их не волнует кто и что делает с их кодом,

                              в этои раздичие Linux'a и BSD. BSD не волнует кто и как использует код, они просто делают качественную ос. в то время как линупс занимается чем угодно кроме избавления от костылей которым достались по наследству (например init.d).
                                0
                                Тебе уже сказали, если нужен rc.d вместо init.d, то есть соответствующие дистры.
                          0
                          4 — это не правильно open source и бесплатно — два разных понятия.
                            0
                            >4 — это не правильно open source и бесплатно — два разных понятия.

                            вот имено. GPL это только бесплатно.
                              0
                              Нет, и есть много примеров. вкратце — деньги за софт брать можно, но нужно вместе с софтом давать и исходники.
                              Почитайте лицензию gpl, она есть и на русском.
                                0
                                еще надо сказать, что платить не обязательно. я говрил про то, что GPL не свободная, от свободы там только халява.
                              0
                              кстати посмотрел карму andoriyu, зря только тролля кормил. Товарищ НЛО, зачем вы детский сад сюда тащите?
                            –5
                            иди лучше делай уроки, а то тебе мама с папой не купят новую видюху и ты не сможешь поиграть в крузис 2! сначало сделай уроки, потом почитай материал(хотя бы сами лицензи) по этой теме, потом проверь правильно ли ты понял и только потом пытайся оспорить, что GPL это анальное рабство.

                            p.s.
                            не удержался.
                            –4
                            Нуда, и пусть себе превращаются в тестовую площадку для Apple, а всякие люди будут на неё бантики прикручивать и продавать как нечто такое, что с нуля разрабатывали, а все их наработки сообщество, которое делало платформу не покладая рук, так и не увидит.
                            BSD отличная лицензия для всяких исследовательских проектов, научных работ, но не для промышленных операционок. Вот почему GNU/Linux куда быстрее развивается, чем *BSD?
                              +2
                              >а все их наработки сообщество, которое делало платформу не покладая рук, так и не увидит.
                              Ну вас жаба чтоли душит? Вы так сожалеете, будто это вы весь этот код написали, а вас заставили его пролицензировать под BSD.
                              Эти ребята решили отдать свой код всем, это их право. Более того, я считаю, что они правильно поступили.
                                –1
                                Ну и их дело, просто меня лично их вечные нападки на GPL и GNU не очень то радуют.
                                  +3
                                  это не их нападки, просто GPLv3 не совместима с BSD лицензией. Менять лицензию из-за того, что эти умники делают еще больше анальное рабство они не хотят. BSD развивается «медлнее»(не настолько и медленно, чтобы говорить об этом) из-за того, что туда попадают только проверенные и стабильные фичи. Ваш init.d всасывает по полной у rc.d. ваша сетевая подсистема это бред шизофреника, у вас все так же нет нативной поддержки zfs.
                                    0
                                    zfs не BSD, да и лицензия там мутная, особенно в плане патентов. Для любителей rc.d есть Arch и Slackware.
                                    Далее, хотелось бы по пунктам, чем же rc.d круче, чем init.d(хотелось бы еще уточнить, который из них).
                                    Вот почему тогда решения на GNU/Linux куда больше различных вендоров предлагают и организации они более могучие создают. Почему тогда корпорации типа Intel'а и IBM поддерживают GPLное ядро Linux? Вообще, на мой взгляд, GPL вполне годится, как вменяемая альтернатива софтварным патентам.
                                    BSD же повторюсь больше исследовательская лицензия.
                                    Про рабство даже расписывать смешно, тем более перед троллем.
                                      0
                                      >zfs не BSD, да и лицензия там мутная, особенно в плане патентов.
                                      гениально, только вот у нас есть нативный драйвер, а в линуксоидов — нет.

                                      >Далее, хотелось бы по пунктам, чем же rc.d круче, чем init.d(хотелось бы еще уточнить, который из них).

                                      Почитайте, поймете.

                                      >Вот почему тогда решения на GNU/Linux куда больше различных вендоров предлагают и организации они более могучие создают. Почему тогда корпорации типа Intel'а и IBM поддерживают GPLное ядро Linux? Вообще, на мой взгляд, GPL вполне годится, как вменяемая альтернатива софтварным патентам.

                                      Потому, что модель разработки Linux'a им привлекательнее.

                                      >GPL вполне годится, как вменяемая альтернатива софтварным патентам.

                                      а не линуксоиды ли кричат, что патенты анальное рабство и должны умереть? а у самих не меньшее рабство.

                                      >Про рабство даже расписывать смешно, тем более перед троллем.
                                      idiotus cretinus. не можете даже тролля правильно определить, лычку посмотрели?
                                        0
                                        И че? Придет дядя из Оракла с пачкой патентов и скажет мол плати. GPL хоть какую-то защиту пытается организовать от этого дела. Да и как бы есть lvm+любимая ФС, которая тот же функционал дает. Есть btrfs, которая просто по аналогии с zfs сделана.
                                        >Почитайте, поймете.
                                        слив засчитан.
                                        >Потому, что модель разработки Linux'a им привлекательнее.
                                        А почему же тогда BSD проект не смог с такой же моделью разработки появится и переманить на себя крупных вендоров?
                                        >а не линуксоиды ли кричат, что патенты анальное рабство и должны умереть? а у самих не меньшее рабство.
                                        Ну так они и предложили ему замену, которая устраивает большинство.

                                          0
                                          >И че? Придет дядя из Оракла с пачкой патентов и скажет мол плати. GPL хоть какую-то защиту пытается организовать от этого дела. Да и как бы есть lvm+любимая ФС, которая тот же функционал дает. Есть btrfs, которая просто по аналогии с zfs сделана.

                                          btrfs в плане патентов не намного отличается от zfs.

                                          >слив засчитан.

                                          я не собираюсь обьяснять все ± этих вещей. уж сильно они отличаются.

                                          >А почему же тогда BSD проект не смог с такой же моделью разработки появится и переманить на себя крупных вендоров

                                          Потому, что FreeBSD это Power to Serve. Им плевать на вендоров и прочую дурь. Они делают замкчательную ОС задача которой служить, а не пиарится.

                                          >Ну так они и предложили ему замену, которая устраивает большинство.

                                          Большинство линуксоидов? :D поменяли одно анальное рабство на другое анальное рабство. в этом весь линукс.
                                            0
                                            В идеальном мире может быть GPL и не нужна, но мы не в нем живем
                                              +1
                                              в идеальном мире лицензии вообще не нужны. а GPL не нужна и в мире в котором мы сейчас живем.
                                              +1
                                              >> Потому что FreeBSD — это Power to Serve. Им плевать на вендоров и прочую дурь. Они делают замечательную ОС, задача которой служить, а не пиариться.

                                              «Объяснение для чайников.»
                                              FreeBSD — это Темный рыцарь, а ля Бетмен, а Линукс — Белый.
                                              :)
                                                –2
                                                «Power to Serve» ?!?! это что шутка?
                                                даже чтобы обновить софт из портов зачастую приходить на славу потрахаться.
                                                не вспоминая уже о fatal trap и других вкусностях на высоких нагрузках.
                                                  0
                                                  как же толсто :D если у вас руки растут из жопы — это ваши проблемы. у меня последний раз были проблемы с портами когда я из-за экономии инета обновлял не все древо, а только часть. порты сверх клетная штука, едиственное могли бы как в openbsd сделать — сначало собирается пакедж, а потом он уже устанавливается.
                                                  >не вспоминая уже о fatal trap и других вкусностях на высоких нагрузках.

                                                  первый раз слышу.

                                                  сдается мне вы ничего о freebsd не знаете…
                                                    –1
                                                    То что вы этого не слышали говорит не в пользу ваших проффесианальных способностей :^)
                                                    Прежде чем открывать рот и гнуть пальцы научитесь пользоваться интернетом и наберите в гугле «bsd fatal trap».
                                                      0
                                                      Я набрал.
                                                      >forum.opennet.ru — "FreeBSD 6.2 (SMP) Kernel panic: fatal trap
                                                      >10 May 2005… Installing FreeBSD -> Fatal trap
                                                      >ошибка при загрузке freebsd Последнее сообщение: 10 авг 2006

                                                      Вы прежде чем писать хотя бы сами это набирали. Я уж не говорю о том, что лучше вообще не троллить, но это уже ваш выбор.
                                                0
                                                >Есть btrfs, которая просто по аналогии с zfs сделана.
                                                А кто её разрабатывает не помните? Тот же самый Oracle.
                                                Ну и ждать патентных исков от одной из основных компаний-разработчиков ядра, как-то странно…
                                                0
                                                zfs в BSD тока пока Oracle разрешает. В linux такого даром не надо.
                                                rc.d — анахронизм и не нужен. Сомнения? посмотрите систему загрузки в gentoo

                                                  0
                                                  >zfs в BSD тока пока Oracle разрешает. В linux такого даром не надо.

                                                  Вы вообще лицензию по которой zfs распространяется читали? или очередной параноидальный бред как в случае про mysql? однако btrfs это то же Oracl и что не запрещает следующую версию выпустить под другой лицензией.

                                                  >rc.d — анахронизм и не нужен. Сомнения? посмотрите систему загрузки в gentoo

                                                  пруф… rc.d уделывает init.d и launchd(последний выигрывает по скорости из-за того, что плевал на зависимости). а в генту все тот же init.d

                                                  p.s.
                                                  linux — не нужен
                                                  p.p.s.
                                                  в этом топике еще никто не постил top500…
                                  0
                                  хм. а как-же в линуксе? в нем таких проблем нету?
                                  +4
                                  >4.2.1, т.к. последующие версии сменили лицензию
                                  а я-то думаю, почему в макоси до сих пор 4.2
                                    +6
                                    Чем меньше гпл, тем лучше.
                                      +1
                                      Весьма категорично, но, в целом, я с вами согласен — я тоже не питаю особой симпании ни к GNU ни к их лицензиям.
                                        0
                                        Привет тивоизация, привет iPhone/iPad, привет «право читать».
                                        Есть отличная лицензия для системных вещей и библиотек, она называется LGPL
                                          +5
                                          Скажите это разрабам GCC.
                                      –6
                                      я один читаю это название как «Шланг»?
                                        +3
                                        Петросян!
                                        –3
                                        Мне кажется, что BSD была великим флагманом свободы в мире ПО во времена коммерческих юниксов. Но сейчас — это пятая колонна в мире опенсорса, так как позволяет корёжить себя под проприентарные решения (кусанное яблоко, джунос). Основной целью в продвижении СПО является не только его продвижение как СПО, но и сохранения его как свободного ПО в производных. BSD же позволяет «взять и не отдать обратно», что на руку проприентарщикам и строго противоречит идеям свободного ПО.
                                          +3
                                          Не отождествляйте «свободное ПО» и FSF вместе с GNU. Просто Столлман считает (и его точка зрения имеет право на существование), что ПО должно быть «свободным как свобода слова», а BSD — «as free as free beer». Я все свои опенсорс-проекты лицензирую как BSD, и лично мне совсем не жалко, если кто-то сделает на основе моего кода коммерческий софт. Я даже порадуюсь за то, что кому-то понравился мой код.

                                          Делая open-source проекты, я прежде всего руководствуюсь собственной выгодой — наличие опенсорс-проектов, которые «можно пощупать», ИМХО, увеличивает ваши шансы быть нанятым на хорошую, высокооплачиваемую работу, причем вполне возможно фирмой, которая захочет на основе Вашего проекта сделать уже коммерческую версию. Ну, и, конечно, just for fun.
                                            –1
                                            1) Если кто-то сделает на вашем коде другой код, который будет несовместим с вашим, и будет его использовать для создания проблем между «своими» программами, использующими ваш код?
                                            2) Наличие опенсорс проектов безусловно увеличивает эти шансы.
                                            3) Наличие собственного копирайта на опенсорсе позволит вам сделать коммерческую версию just-in-time. Но именно вам, как автору, а не левому дяде.
                                              +1
                                              А еще с GPL очень хорошо прокатывают штуки вроде двойного лицензирования. Да и Столман не против в общем то и программистам есть на что кушать и творить.
                                          +1
                                          Поставил я clang на Gentoo, а вот теперь гадаю, как бы его завести… Мне даже не обертка для portage нужна, а просто для сборки в юзерском каталоге переменные проставить правильные. Есть у кого-нибудь скрипты-обертки для этих целей?
                                            0
                                            Я гентой не пользовался, но CC=clang CXX=clang++ не сработает?
                                              0
                                              А всякие там ассемблеры и прочие тулзы? Вроде бы для icc там что-то еще экспортили
                                                0
                                                А у кланга нет ассемблера. Пользуются GCC'овским.
                                                  0
                                                  А с плюсовым ABI у него как? Не возникнет ли несовместимости с gcc?
                                                    0
                                                    Ну так и линкуют кланговские .o тоже GNU binutils. Там все в порядке, для С и ObjC это вообще drop-in замена.
                                                      0
                                                      Ну мне интересен в основном его анализатор, ибо gcc пока заметно лучше оптимизирует
                                                        0
                                                        Анализатор С++ не переваривает, вроде бы.
                                          0
                                          Накопал обзор первоапрельских шуток 2009 года: www.opennet.ru/opennews/art.shtml?num=21040
                                          Пошутили, а теперь воплотим в реальность :)

                                          Only users with full accounts can post comments. Log in, please.