Падает gcc при сборке telegram на i586, на x86_64, вне зависимости от -O. $ LANG=C /usr/bin/g++ -DCUSTOM_API_ID -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQ_OS_LINUX64 -DTDESKTOP_DISABLE_AUTOUPDATE -DTDESKTOP_DISABLE_CRASH_REPORTS -DTDESKTOP_DISABLE_DESKTOP_FILE_GENERATION -DTDESKTOP_DISABLE_GTK_INTEGRATION -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME -DTDESKTOP_DISABLE_UNITY_INTEGRATION -D__STDC_FORMAT_MACROS -I/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram -I/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/Telegram_autogen/include -I/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/SourceFiles -isystem /usr/include/qt5/QtCore -I/usr/include/qt5/QtCore/5.9.6 -I/usr/include/qt5/QtCore/5.9.6/QtCore -isystem /usr/include/qt5/QtGui -I/usr/include/qt5/QtGui/5.9.6 -I/usr/include/qt5/QtGui/5.9.6/QtGui -isystem /usr/include/qt5/QtDBus -I/usr/include/qt5/QtDBus/5.9.6 -I/usr/include/qt5/QtDBus/5.9.6/QtDBus -I/usr/include/libdrm -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libcrl -I/usr/include/tgvoip -I/usr/include/opus -I/usr/include/libmicrosoft-gsl -I/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/ThirdParty/emoji_suggestions -I/usr/include/libvariant -I/usr/include/range-v3 -I/usr/include/minizip -I/usr/include/AL -I/usr/include/libappindicator3-0.1 -I/usr/include/libdbusmenu-glib-0.4 -I/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/generated -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/share/qt5/../../lib/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtNetwork -pipe -frecord-gcc-switches -Wall -g -march=i586 -mtune=generic -fpermissive -Wno-strict-aliasing -Wno-unused-variable -Wno-sign-compare -Wno-switch -fPIC -std=gnu++1z "-include" "/tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/Telegram_pch/stdafx.h" -o CMakeFiles/Telegram.dir/SourceFiles/export/data/export_data_types.cpp.o -c /tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/SourceFiles/export/data/export_data_types.cpp /tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/SourceFiles/export/data/export_data_types.cpp: In lambda function: /tmp/.private/lav/RPM/BUILD/telegram-desktop-1.3.8/Telegram/SourceFiles/export/data/export_data_types.cpp:182:60: internal compiler error: Segmentation fault if constexpr (MTPDphotoCachedSize::Is<decltype(data)>()) { ^
Лог упавшего задания: http://git.altlinux.org/tasks/209301/build/200/x86_64/log воспроизводится и локально в hasher, на i586 и x86_64.
На gcc7-7.3.1-alt5 Segmentation fault не воспроизводится, зато воспроизводится вот что: [ 15%] Building CXX object CMakeFiles/Telegram.dir/SourceFiles/apiwrap.cpp.o x86_64-alt-linux-g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.altlinux.org> for instructions. make[2]: *** [CMakeFiles/Telegram.dir/build.make:310: CMakeFiles/Telegram.dir/SourceFiles/apiwrap.cpp.o] Error 4 Memory cgroup out of memory: Kill process 12345 (cc1plus) score 32 or sacrifice child Killed process 12345 (cc1plus) total-vm:1092084kB, anon-rss:1031240kB, file-rss:4kB, shmem-rss:15008kB $NPROCS одновременно работающих процессов захотели по гигабайту памяти каждый. Больно прожорливые. С уменьшением $NPROCS в два раза сборка завершается.
(В ответ на комментарий №2) > На gcc7-7.3.1-alt5 Segmentation fault не воспроизводится, зато воспроизводится Видимо в этой ещё не существующей публично сборке gcc что-то исправлено? ... > $NPROCS одновременно работающих процессов захотели по гигабайту памяти каждый. > Больно прожорливые. > > С уменьшением $NPROCS в два раза сборка завершается. Это другой поворот. Может быть, нам корректировать значение NPROCS заданием в спеке требуемого для одного процесса объёма памяти? Типа NPROC = max(min(round(MAX/NEED)-1,NPROC),1)
(In reply to comment #3) > (В ответ на комментарий №2) > > На gcc7-7.3.1-alt5 Segmentation fault не воспроизводится, зато воспроизводится > Видимо в этой ещё не существующей публично сборке http://git.altlinux.org/tasks/209933/ > gcc что-то исправлено? Может быть. > ... > > $NPROCS одновременно работающих процессов захотели по гигабайту памяти каждый. > > Больно прожорливые. > > > > С уменьшением $NPROCS в два раза сборка завершается. > Это другой поворот. > Может быть, нам корректировать значение NPROCS заданием в спеке требуемого для > одного процесса объёма памяти? > Типа NPROC = max(min(round(MAX/NEED)-1,NPROC),1) Можете корректировать.
(В ответ на комментарий №2) > На gcc7-7.3.1-alt5 Segmentation fault не воспроизводится Потому что исправлено в Fri Jul 13 2018 Dmitry V. Levin <ldv@altlinux> 7.3.1-alt5 - Updated to redhat/gcc-7-branch r262599 (closes: #35089). - Synced with Fedora gcc 7.3.1-6. - Moved documentation for Fortran, Ada, and Go compilers from gcc7-doc to gcc7-fortran-doc, gcc7-gnat-doc, and gcc7-go-doc subpackages.