The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Эксперимент по пересборке пакетной базы Ubuntu при помощи GCC 4.6

20.01.2011 12:48

Разработчики Ubuntu провели эксперимент по пересборке пакетов репозитория main при помощи тестовой версии набора компиляторов GCC 4.6. Несмотря на то, что будущий выпуск Ubuntu 11.04 будет базироваться на ветке GCC 4.5, эксперимент по пересборке более новой веткой GCC, нацелен на раннее выявление регрессивных изменений.

В процессе сборки выявлена всего одна внутренняя ошибка компилятора. Из более чем семи тысяч пакетов из репозитория main, проблемы со сборкой зафиксированы для 174 пакетов, среди которых apt, python, bacula, debian-installer, digikam, evolution, freetype, fuse, grub, emacs23, inkscape, kde4libc, linux-ядро, network-manager, openoffice.org, subversion, thunderbird, xen, firefox, mysql, qt4 и т.п.

Большинство проблем связано с ужесточением требований к коду, из-за чего некоторые бывшие предупреждения в GCC 4.6 воспринимаются как ошибки (например, дополнительные проверки NULL-указателей). Кроме того, добавление новых видов предупреждений, привело к не успешному завершению сборки для программ, использующих опцию "-Werror".

  1. Главная ссылка к новости (https://lists.ubuntu.com/archi...)
  2. OpenNews: Компания Google надеется на включение компилятора языка Go в GCC 4.6
  3. OpenNews: В версии GCC 4.6 будет улучшена поддержка генерации кода для процессоров Intel
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/29320-gcc
Ключевые слова: gcc, ubuntu, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, anonymous (??), 13:10, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    В чем, собственно, новость? Убунтовщики тут не пионеры, непрерывные тесты на пригодность пакетов и компиляторов делают все ведущие дистрибутиводелы.
     
     
  • 2.10, User294 (ok), 15:55, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Как по мне так вполне интересно посмотреть на то что ждет в свежей версии компилера и насколько много грабель ожидается. Не вижу чем это плохо.
     
     
  • 3.15, анонимус (??), 17:22, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А предыдущий оратор спрашивал: "а новость то в чем?". Многие так делают.
     
     
  • 4.20, Andrey Mitrofanov (?), 18:04, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В "и Убутнта -- тоже!". Она _смогла.
     

  • 1.2, Аноним (-), 13:20, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а когда релиз 4,6 ?
     
     
  • 2.36, Sylvia (ok), 23:23, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а когда релиз 4,6 ?

    when its ready (c) то ли Ричард Гюнтер , то ли Якуб Елинек
    когда доведут критические ошибки до нуля.
    Впрочем там уже сейчас фаза исправления ошибок, берите, тестируйте, в багзиллу отписывайтесь, компилятор фактически к релизу готов ( в плане реализации новых возможностей и базового QA )

     

  • 1.6, анонимище (?), 14:18, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >В процессе сборки выявлена всего одна внутренняя ошибка компилятора.

    Зато шаг в сторону от x86, так сыплются как из рога изобилия и всем наплевать.

     
     
  • 2.18, Аноним (-), 17:38, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Зато шаг в сторону от x86, так сыплются как из рога изобилия
    > и всем пох.

    А вам либо пох также как и всем, либо вы сами виноваты потому что НИХРЕНА не сделали.

     
     
  • 3.31, Анонимбус (?), 22:14, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А вам либо пох также как и всем, либо вы сами виноваты потому что НИХРЕНА не сделали.

    Ты серьёзно считаешь, что все подряд могут внести что-то в разработку компиляторов?
    Я, положим, простой быдлокодер. С теорией постороения компиляторов знаком весьма отдалённо, в институте её не изучал. Тоже самое относительно околоассемблерных и архитектурных вещей. Баг отрепортил. Чем я ещё могу помочь? Это же не обычная программа, чтобы тут же приступить к написанию патчей нужно долго и упорно готовиться.

     
  • 2.37, Sylvia (ok), 23:29, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    пишите в багзиллу хотя бы,
    если никто не напишет , то никто и не посмотрит, сейчас до релиза самое время заваливать разрабов багрепортами, а вот потом уже и правда никто ничего делать не станет, в 4.6.1 наиболее очевидные ляпы исправят, а дальше основные разработчики уйдут в 4.7.х, останутся только те, кто могут поковырять, но если не справятся, напишут примерно такое -  
    "мы очень старались, но не можем найти где ошибка, да и вообще нам уже не интересно, мы занимаемся несколько иными вещами" (почти с) Мартин Джамбор.
     
  • 2.38, QuAzI (ok), 23:41, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то я в вашем вбросе логики не вижу - не могу сопоставить, как связана ошибка в коде написанном человеком и платформа, успешно выполняющая миллионы программ.
     
     
  • 3.41, анонимище (?), 12:33, 21/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Что-то я в вашем вбросе логики не вижу - не могу сопоставить, как связана ошибка в коде написанном человеком и платформа, успешно выполняющая миллионы программ.

    В коде конкретной программы для конкретной платформы дофига ошибок. Вот и всё.

     

  • 1.7, Аноним (-), 14:43, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм... "из-за чего некоторые бывшие предупреждения в GCC 4.6 воспринимаются как ошибки"
    Сам не проверял, но думал, что main собирается с -Wall. Оказалось, что нет, а жаль.
     
     
  • 2.8, Аноним (-), 15:23, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И что с -Wall компилятор выдаст предупреждения и дальше поедет. :) Вот -pedantic  -pedantic-errors это да. :)
     
     
  • 3.11, pavlinux (ok), 17:00, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ещё -ansi добавь, ни одна прога ни соберётся :)
     
  • 3.22, Аноним (-), 18:30, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ах да, про -Werror забыл. Без него действительно от -Wall мало толку. Сам пилю свои проги как минимум до тех пор, пока они с этими опциями не скомпилируются :)
     
     
  • 4.24, тоже Аноним (ok), 19:30, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А чужие библиотеки вы, видимо, принципиально не используете?
    Любая моя программа при компиляции с этим флагом до моего кода просто не доходит - слишком много "ошибок" в библиотечных файлах... В основном ошибки типа "так до сих пор можно писать, но не модно же!"
     

  • 1.9, gegMOPO4 (ok), 15:36, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Любопытно, что на i386 ошибок больше, чем на amd64. Разработчики сидят на 64 бит.
     
     
  • 2.35, Sylvia (ok), 23:21, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    к сожалению совсем не любопытно, а факт, причем если речь идет о GCC, то где-то начиная с 4.4 ошибкам специфичным для x86 уделяется мало внимания, многие вещи не исправляются, например 4.5.x до сих пор не может собрать себя с PGO, баг висит..
    Неприоритетная платформа стала
     

  • 1.12, pavlinux (ok), 17:11, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Типа ошибка в ядре:

    > linux-2.6.37/drivers/scsi/aha152x.c:2239:9: warning: variable 'data' set but not used [-Wunused-but-set-variable]

    Открываем, видим



    while(fifodata>0) {
                       int data;
                       data=GETPORT(DATAPORT);
                       DPRINTK(debug_datai, DEBUG_LEAD "data=%02x\n", CMDINFO(CURRENT_SC), data);
                       fifodata--;
                       DATA_LEN++;
    }


    Где, ГЦЦ увидел "Unused but set variable"

     
     
  • 2.13, anon2 (?), 17:17, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ну дык DPRINTK работает только под дебагом
     
     
  • 3.14, pavlinux (ok), 17:21, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ну дык DPRINTK работает только под дебагом

    дык, присваивание NULL в OpenSSL тоже нифига не давало, а какой эффект был :)
    Но с другой стороны, конечно правильней было бы сделать



    while(fifodata>0) {
           #ifdef AHA152X_DEBUG
                       int data;
                       data=GETPORT(DATAPORT);
                       DPRINTK(debug_datai, DEBUG_LEAD "data=x\n", CMDINFO(CURRENT_SC), data);
           #endif
                       fifodata--;
                       DATA_LEN++;
    }


     
  • 2.16, Аноним (-), 17:36, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Где, ГЦЦ увидел "Unused but set variable"

    Вы слепой? print не использует data, в форматной строке только один параметр.

     
     
  • 3.23, pavlinux (ok), 18:40, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Где, ГЦЦ увидел "Unused but set variable"
    > Вы слепой? print не использует data, в форматной строке только один параметр.




    #define LEAD "(scsi%d:%d:%d) "
    #define DEBUG_LEAD      KERN_DEBUG      LEAD
    #define CMDINFO(cmd) \
                            (cmd) ? ((cmd)->device->host->host_no) : -1, \
                            (cmd) ? ((cmd)->device->id & 0x0f) : -1, \
                            (cmd) ? ((cmd)->device->lun & 0x07) : -1




    http://lxr.linux.no/#linux+v2.6.37/drivers/scsi/aha152x.c#L321

     
  • 2.17, Аноним (-), 17:37, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >[оверквотинг удален]
    >        data=GETPORT(DATAPORT);
    >            
    >        DPRINTK(debug_datai, DEBUG_LEAD "data=%02x\n", CMDINFO(CURRENT_SC),
    > data);
    >            
    >        fifodata--;
    >            
    >        DATA_LEN++;
    >  }
    >

    PS. Пипец, это во всём ядре такой yблюдочный стиль кода?

     
     
  • 3.19, тоже Аноним (ok), 17:56, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Действительно!
    Где километровые структуры с нигде не использующимися полями, перегоняемые из функции в функцию?
    Они что, WinAPI не видели никогда, ламеры?!
     
     
  • 4.27, Аноним (-), 19:55, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Где километровые структуры с нигде не использующимися полями, перегоняемые из функции в
    > функцию?

    Как выдно из кода ядра, километровые структуры совершенно необязательны.

     
  • 3.21, pavlinux (ok), 18:14, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > PS. Пипец, это во всём ядре такой yблюдочный стиль кода?

    Если исключить тебя из большинства использующих этот код,
    тогда ты и есть ублюдок, так как большинство всегда право. :)

     
     
  • 4.26, Аноним (-), 19:54, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если исключить тебя из большинства использующих этот код,
    > тогда ты и есть yблюдок, так как большинство всегда право. :)

    Большинство пользуется виндовс, так что отдыхай, лaмeрок :))

     
     
  • 5.34, pavlinux (ok), 23:16, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Если исключить тебя из большинства использующих этот код,
    >> тогда ты и есть yблюдок, так как большинство всегда право. :)
    > Большинство пользуется виндовс, так что отдыхай, лaмeрок :))

    О великий гуру, тебе дали посмотреть код ядра венды!


     
  • 4.42, maxkit (ok), 16:42, 21/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Аргументируйте, интересно послушать зачем.
     
  • 3.43, Vitaly_loki (ok), 12:58, 22/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А ты раньше не смотрел что ли?
     

  • 1.28, Sylvia (ok), 19:58, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а они только собрали или и работоспособность проверяли?
    на x86 собирается (даже с безопасными флагами) gawk, но работает нестабильно, иногда падает с ошибками выделения памяти,а без работающего awk собрать что-либо еще уже сложно )
     
  • 1.29, Sylvia (ok), 20:01, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну и в целом учитывая ретивость и энтузиазм Doko (Маттиас Клосе), ничуть не удивительно что он попытался этот эксперимент провести, тем более что фаза разработки 4.6 - исправление ошибок и регрессий перед тем как будет определена готовность к релизу.
     
  • 1.30, segoon (ok), 20:42, 20/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Меня интересует вот что - Ubuntu уже на ld gold перешла?  Или они "просто тестируют"?
     
     
  • 2.32, Sylvia (ok), 23:15, 20/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    пока нет, вообще проще всего что-то протестировать - пособирать gentoo,
    gold иногда выдает странности, хотя в целом как замена ld работать и способен
    модули ядра с gold опять же собирать не надо, он это не поддерживает нормально, nvidia.ko например начинает в паре с virtualbox выдавать oopsы

    впрочем, в 4.6 полностью переработали LTO, и в binutils теперь разделили бинарники ld на ld.bfd и ld.gold, раньше --enable-gold вместо ld устанавливала gold

     

  • 1.39, bircoph (ok), 07:56, 21/01/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне интересно, когда graphite доведут до нормального состояния? Во-первых, на 64-битных системах он только ухудшает быстродействие. Во-вторых, gcc 4.5.2 всё ещё приводит к ICE при использовании графита в ряде случаев (для ~500 пакетов гентушки 4 ICE из-за графита).
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру