Доступен (https://gcc.gnu.org/ml/gcc-announce/2018/msg00000.html) корректирующий релиз набора компиляторов GCC 7.3 (https://gcc.gnu.org/gcc-7/), в котором проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. По сравнению с прошлым обновлением отмечено 99 исправлений (https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED...), в основном связанных с устранением регрессивных изменений. Отдельно выделяется добавление опций ("-mindirect-branch", "-mfunction-return", "-mindirect-branch-register") для генерации последовательностей инструкций, исключающих вовлечение механизма спекулятивного выполнения для косвенных переходов. Сборка приложений с представленными опциями позволяет избежать проявления второго варианта уязвимости Spectre (CVE 2017-5715) на системах x86 и powerpc.Напомним, что начиная с ветки GCC 5.x в проекте внедрена новая схема нумерации выпусков: версия x.0 используется в процессе разработки, корректирующие выпуски формируются с номерами x.2.0, x.3.0 и т.д. Новые возможности развиваются в экспериментальной ветке GCC 8.0, на базе которой будет сформирован следующий значительный релиз GCC 8.1.
URL: https://gcc.gnu.org/ml/gcc-announce/2018/msg00000.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=47963
Друзя, а будет порт этих опий в старые компиляторы? Хочу CentOS 6.10, в которых весь юерспейс пересобран с этими опциями
А смысл? Вот GCC 8.0 для сборки и работы FreeBSD с ПО из портов - это гораздо круче, чем, допустим, шланг. Смысл - в объёме действительно полезного кода и скорости его работы. Незачем греть воздух и растрачивать процессорные гигагерцы.
Можно подумать, во FreeBSD есть вообще какой-то смысл
конечно есть, хорошая алтернатива
Даже биткоины нужнее, чем эта альтернатива.
DragonFlyBSD конечно еще можно вспомнить...
Кстати, DragonFlyBSD более привлекательная альтернатива, чем FreeBSD.
Согласен, но не в коем случае не FreeBSD.
Все эти проекты разошлись в разные стороны NetBSD(оптимизации роутинга и еще там заточки сети), OpenBSD (секюрность/качество), FreeBSD (попса/производительность и число установок)... у каждого свои
> Кстати, DragonFlyBSD более привлекательная альтернатива, чем FreeBSD.Для студентов - да. Для преподавателей - уже нет.
Некоторые компоненты из проекта OpenBSD действительно хороши и нужны.
Должен, по идее, как минимум - силами RedHat. RHEL6 в поддержке же ещё
В 4.8 есть (RHEL 7, SLE 12), к 4.9 подходит.Для остальных - обращайся в службу поддержки своего дистрибутива
Точно трудно сказать: нужно следить за разработкой интересующих дистрибутивов. Например, на Федоре почти сразу портировали ещё в версию gcc-7.2.1, но в репозиторий пока ничего не попало (довольно критические наборы пакетов требуют более тщательной и длительной проверки :)https://koji.fedoraproject.org/koji/buildinfo?buildID=1017749
Когда GCC догонит CLang/LLVM по скорости?
Уж точно не раньше, чем clang обгонит gcc.
как троллит, как троллит... ты хоть пиши по скорости чего, пруфы там и все дела...
Теперь всё понятно, чем ты Qt и приложения на Qt собираешь, что всё падает.
> позволяет избежать проявления второго варианта уязвимости Spectre (CVE 2017-5715) на системах x86 и powerpc.А так много пользователей powerpc? Для ARM было бы важнее. Хотя гугл забросил GCC, так что да, неважно. А как там с этим у clang?
а кто из ARM в составе комитета по gcc? а от powerpc - представители IBM.
вот вам и ответ..
Зато они готовы заплатить за устранение уязвимостей:
In 2003, BAE SYSTEMS Platform Solutions delivered the Vehicle-Management Computer for the F-35 fighter jet. This platform consists of dual PowerPCs made by Freescale in a triple redundant setup
> Хотя гугл забросил GCC, так что да, неважно.Так забросили, что патчи retpoline для противодействия Spectre сделали в том числе и для GCC.
Значит, забросили gcc за одним исключением: Си всё ещё нужен им для сборки ядра.
Clang уже может генерировать код для powerpc?
> Clang уже может генерировать код для powerpc?"уже" может. С версии 4 как минимум.
Но твоя bsd им не соберется. Патамушна ненужна.
> А так много пользователей powerpc? Для ARM было бы важнее.PowerPC почти все с OoO, а большинство телефонных ARMов и проч - без OoO. Кортексы типа A53 проблеме не подвержены.
> Хотя гугл забросил GCC, так что да, неважно. А как там с этим у clang?
Странно. Чем же они ядра для своего ведроида компилят тогда? Учитывая что прожект билдовки ядра шлангом ни шатко ни валко прозябает уже лет пять.
а как там __builtin_load_no_speculate() ?
GCC бинари и юзерспейс станет еще толще и прожорливее?
Откуда следует? Если бы это было так, то Торвальдс выкатил бы свой палец разрабам GCC.
Ох уж эти молящиеся на палец Торвальдса.
Культ личности. "Про Торвальдсе такого не было!"
Не выкатил бы.
Подскажите кто знает как лечить сегфолты firefox 52 на gcc7?[Child 4597] ###!!! ABORT: Aborting on channel error
ipc/glue/MessageChannel.cpp, line 2152
ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 322
lor
> Подскажите кто знает как лечить сегфолты firefox 52 на gcc7?Для начала освоить gdb.
> Для начала освоить gdb.Присоединяюсь. Пользоваться современным файрфоксом без отладчика стало совсем невозможно, к сожаленью :(
Я пока не понял как его запустить с отладочными символами.
Когда беру релизную версию(mach package), то в финальном архиве отладочных символов не вижу(не видно название функций и названия файлов с номерами строк).
Когда запускаю из каталога сборки, то он не показывает полный backtrace(bt full) — только в месте сегфолта.
Для gdb нужен софт собраный в режиме Debug (не Release), без выполнения strip. Емнип опции -O123 конфликтуют и удаляют отладочную информацию.
> Емнип опции -O123 конфликтуют и удаляют отладочную информацию.Нет.
1. Большинство (если не все) autotools проектов по умолчанию собираются с "-O2 -g".
2. Отладочную информацию вырезает -s. -O* её не подразумевают.
3. Кажется, я даже в мануалах (info gcc) gcc читал, что одновременное использование -O2 и -g не просто официально поддерживается, но и рекомендуется, поскольку это позволяет отлаживать баги, которые при -O0 могут не всплыть, но всплывут при релизной сборке с -O2.
Ты можешь собрать с -O2, но потом в ряде мест в дебагере получишь в принципе съедобный на вид дебаг, но вот "value optimized out" может очень сильно испортить настроение, если optimized out что-то сюжетно интересное. И чтобы этого не было таки придется согласиться на -O0, отключив оптимизации. Т.е. дебаг оптимизнутого билда прокатить может, но - фифти-фифти.
В /dev/shm должно быть примонтировано tmpfs размером хотя бы в четверть гигабайта.У меня как-то было связано с этим, без этого бездумно выковырянный мозиллой из хрома (ipc/chromium/src/...) кусок приводил к похожим ошибкам. Лечится какой-то опцией в about:config, запрещающий инновационную многопроцессную модель (ДА, я говорю именно про 52 esr).
Но у меня ошибка была и при сборке пятым gcc, и шестым. Возможно, у вас другая проблема?
> Лечится какой-то опцией в about:config, запрещающий инновационную многопроцессную модель (ДА, я говорю именно про 52 esr).Это у меня как раз и выключено:)
/* Disable e10s */
user_pref("browser.tabs.remote.autostart", false);
user_pref("browser.tabs.remote.autostart.2", false);На шестом как раз все хорошо. Проблемы проявляются на некоторых сайтах, если заходить на них с фаерфокса с gcc6 все ок, но если собрать gcc7. Я так подозреваю из-за отсутствия исключений в gcc7.
Вчера собрал clang'ом проблема ушла. Наверно временно буду пользоваться clang'ом для сборки.
Походу с переходом на многопроцесорную модель заложили много мин, которые походу фиксятся только в апстриме, а в 52 переносят по мере необходимости.
Вчера наткнулся на интересный комит https://hg.mozilla.org/mozilla-central/rev/d6e36e11cfa3
но в моем случае это не сильно поможет походу.
> user_pref("browser.tabs.remote.autostart", false);
> user_pref("browser.tabs.remote.autostart.2", false);Точно, эти!
А на каких сайтах проблемы? В ближайшее время планирую пересобрать систему с gcc7, хотелось бы потом проверить, что вышло.
> из-за отсутствия исключений в gcc7
В каком смысле?
> А на каких сайтах проблемы? В ближайшее время планирую пересобрать систему с gcc7, хотелось бы потом проверить, что вышло.Тут сразу падает на чистом профиле.
https://www.ghacks.net/2017/11/13/customize-firefox-57-with-css/
https://www.engineersgarage.com/articles/humidity-sensorТут спустя некоторое время, спустя секунд 5.
http://www.our-firefox.ru/kak-v-mozilla-firefox/noscript-dly...
> В каком смысле?Возможно чего напутал, но в лог сыпится много варнингов такого типа:
warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
https://bugzilla.mozilla.org/show_bug.cgi?id=1383919
https://hg.mozilla.org/integration/autoland/rev/ae7e3082d862
В общем выяснил я откуда ноги ростут.
Собрал с отладочными символами, отключил запуск адонов в отдельном процессе.
После этого увидел где падает.Две ссылки упали в этом месте.
> Thread 6 "Socket Thread" received signal SIGPIPE, Broken pipe.
(gdb) bt full
#0 0x00007ffff7bc97ba in __libc_send (fd=131, buf=0x7fffa6eb8000, n=53, flags=0) at ../sysdeps/unix/sysv/linux/x86_64/send.c:26
resultvar = 18446744073709551584
sc_cancel_oldtype = 0
sc_ret = <optimized out>
sc_ret = <optimized out>
buf = 0x7fffa6eb8000
n = 53
fd = 131
flags = 0
#1 0x00007ffff7f8bb8d in pt_Send (fd=0x7fffa6e25d30, buf=0x7fffa6eb8000, amount=53, flags=0, timeout=4294967295) at <path>/firefox-52.6.0esr/nsprpub/pr/src/pthreads/ptio.c:1914
fNeedContinue = 0
bytes = -1
syserrno = <optimized out>Не знаю есть ли фикс в апстриме, но это уже хоть что-то:)
Дальше можно копать как лечить.
Еще тут падает, если открывать без блокировщиков и без приватного режима(в обычном).Вообще, если активно гулять по интернету в поиске чего-либо, то обязательно где-нибудь может упасть. Сейчас сижу на firefox 52.6.0 собранный на gcc 7.2.1.
Интересно, принцип Интелнобыля и Фукуспектра применим ко всяким там модным облачным дедупликациям?
Не заметил когда шестой вышел, а они уже седьмой выпустили.
Уже можно хеллоуворлды для продакшена собирать :)
> Не заметил когда шестой вышел, а они уже седьмой выпустили.
А они собираются делать поддержку OpenAAC, OpenCL так, чтобы при вычислениях на видеокарточках напрямую использовался KMS/GEM без использования Mesa? Ну там, свою рантайм-либу или ещё как.
А при чем здесь GCC?
При том, что необходимый для этого нежирный, в отличие от всяких LLVMов, рантайм мог бы входить в состав GCC и разрабатываться этой же командой.
А C# под Linux оно умеет из исходников собирать?
>C# под LinuxНе нужно. Есть Java.
> C#
> JavaШило на мыло.
Не совсем. Java кроссплвтформенная. P. S пожалуйста не надо про кроссплатформенность C#...
Пожалуйста,(да, в этом месте должна быть запятая) не надо про кроссплатформенность Java.
> Не совсем Java кроссплвтформенная. P. S пожалуйста не надо про кроссплатформенность...fxd
>Не нужно. Есть Java.Не нужно. Есть Python.
>>Не нужно. Есть Java.
> Не нужно. Есть Python.Машины Тьюринга должно хватать всем.
На релешках
> А C# под Linux оно умеет из исходников собирать?Система поддержки выполнения кода на C#, mono-4.8.1.0, с помощью GCC 6.4.0, 7.3.0 и 8.0.1.s20180121 на FreeBSD почему-то не собирается, но собирается с помощью системного LLVM/Clang 5.0.1. Зато openjdk8-8.152.16 собирается последними версиями GCC, но не может собраться LLVM/Clang (у меня, по крайней мере). Вот такая она, альтернативная реальность.
> openjdk8-8.152.16 собираетсяА если не секрет, зачем собирать openjdk из исходников?
Оно при сборке требует блоб самого openjdk. Но после того, как я его скачал, я внезапно осознаю, что у меня УЖЕ есть openjdk, и не вижу смысла греть атмосферу :(
Ему скучно по вечерам, нечем заняться вот он и страдает всякой ерундой.
>> openjdk8-8.152.16 собирается
> А если не секрет, зачем собирать openjdk из исходников?Чтобы убедиться, что установленное ПО именно то, что собрано из исходников. И что какой-то дядя под видом блоба не подсунул тебе лажу, сказав, что она точно из вон тех исходников, что у тебя уже есть.
> Оно при сборке требует блоб самого openjdk.
Ага - предыдущей версии. Это называется bootstrap. После сборки он не нужен, его можно спокойно удалить, а для пересборки будет использоваться рабочий jdk.
> Но после того, как я его скачал, я внезапно осознаю, что у меня УЖЕ есть openjdk, и не вижу смысла греть атмосферу :(
Не разобрались, а претензии какие-то предъявляете.
> что какой-то дядя под видом блоба не подсунул тебе лажуПостойте-постойте. Если дядя подсунул лажу грамотно, то эта лажа будет добавлять себя (лажу) и в генерируемый код. И всё равно мы остаёмся с "неправильной" сборкой. Как вы проверяете, что сгенерированный байткод соответствует исходнику?
>> что какой-то дядя под видом блоба не подсунул тебе лажу
> Постойте-постойте. Если дядя подсунул лажу грамотно, то эта лажа будет добавлять себя
> (лажу) и в генерируемый код. И всё равно мы остаёмся с
> "неправильной" сборкой.
> Как вы проверяете, что сгенерированный байткод соответствует исходнику?Хороший вопрос. Использую несколько различных JDK, скачанных из разных источников и разными способами. Проверяю CRC.
> Использую несколько различных JDKСерьёзно? Ну тогда снимаю шляпу, без шуток. Думал, вы очередной "я скачал openjdk чтобы собрать openjdk, и теперь у меня openjdk, собранный мной, точно из оригинальных исходников".
Не сочтите за троллинг, но можно список JDK? Знаю, что есть Оракловая, OpenJDK и какая-то от IBM. Есть ещё какие-то достаточно современные и юзабельные?
> Не сочтите за троллинг, но можно список JDK? Знаю, что есть Оракловая,
> OpenJDK и какая-то от IBM. Есть ещё какие-то достаточно современные и
> юзабельные?Сертифицированные на совместимость с Java SE SDK:
- Oracle JDK
- Oracle JRockit
- IBM J9
- Excelsior JET
- Azul
- SAP.
> Сертифицированные на совместимость с Java SE SDK:
> - Oracle JDK
> - Oracle JRockit
> - IBM J9
> - Excelsior JET
> - Azul
> - SAP.Спасибо!
Excelsior Jet - самый быстрая из них. Это единственная JVM под ПК, которая использует Ahead-of-Time компиляцию
> Сборка приложений с представленными опциями позволяет избежать проявления второго варианта уязвимости Spectreтеперь интел окончательно морально разложится - зачем ему напрягаться, если дыры железа закрываются софтом
тогда он еще в 94 году разложился с ошибкой FDIV, тогда в компиляторах тоже чтото костылили по этому поводу