Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

memory exhaust when compiling mocs_compilation.cpp #1534

Closed
jg1uaa opened this issue Jun 22, 2024 · 2 comments
Closed

memory exhaust when compiling mocs_compilation.cpp #1534

jg1uaa opened this issue Jun 22, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@jg1uaa
Copy link
Contributor

jg1uaa commented Jun 22, 2024

Contour Terminal version

0.4.4-master-2dcb6604

Installer source

Github: source code cloned

Operating System

Void Linux

Architecture

x86-64

Other Software

gcc-13.2.0
libfreetype-2.13.2
libunicode-0.4.0
boxed-cpp 1.2.2
libfontconfig-2.14.2
harfbuzz-8.5.0
pkg-config 0.29.2
libxkbcommon-1.7.0

Steps to reproduce

after git clone and install necessary components (I used distro-provided boxed-cpp and libunicode etc., not from scripts/install-deps.sh),

[uaa@voidlinux-vm ~]$ mkdir -p contour/build
[uaa@voidlinux-vm ~]$ cd contour/build/
[uaa@voidlinux-vm build]$ cmake ..
[uaa@voidlinux-vm build]$ make VERBOSE=1

Expected Behavior

Normally, build with no error.

Actual Behavior

Memory exhaust occurs compiling ContourTerminalDisplay_autogen/mocs_compilation.cpp.o.
I faced the problem with Void Linux on QEMU virtual machine. 24GB memory + 12GB swap.

Consolidate compiler generated dependencies of target ContourTerminalDisplay
make[2]: Leaving directory '/home/uaa/contour/build'
make  -f src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/build.make src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/build
make[2]: Entering directory '/home/uaa/contour/build'
[ 73%] Building CXX object src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/ContourTerminalDisplay_autogen/mocs_compilation.cpp.o
cd /home/uaa/contour/build/src/contour/display && /usr/bin/c++ -DCONTOUR_APP_ID=\"org.contourterminal.Contour\" -DCONTOUR_BUILD_TYPE=\"RelWithDebInfo\" -DCONTOUR_STACKTRACE_ADDR2LINE=1 -DFMT_HEADER_ONLY=1 -DHAVE_BACKTRACE -DHAVE_BACKTRACE_SYMBOLS -DHAVE_CXXABI_H -DHAVE_DLADDR -DHAVE_DLFCN_H -DHAVE_DLSYM -DHAVE_EXECINFO_H -DHAVE_SYS_SELECT_H -DHAVE_UNWIND_H -DLIBTERMINAL_LOG_TRACE=1 -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_QMLINTEGRATION_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -I/home/uaa/contour/build/src/contour/display/ContourTerminalDisplay_autogen/include -I/home/uaa/contour/build/src/contour/display/../.. -I/home/uaa/contour/src -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtOpenGL -isystem /usr/include/qt6/QtMultimedia -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/qt6/QtQuick -isystem /usr/include/qt6/QtQml -isystem /usr/include/qt6/QtQmlIntegration -isystem /usr/include/qt6/QtQmlModels -isystem /usr/include/qt6/QtQuickControls2 -O2 -g -DNDEBUG -std=c++20 -fdiagnostics-color=always -fdiagnostics-color=always -maes -fPIC -MD -MT src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/ContourTerminalDisplay_autogen/mocs_compilation.cpp.o -MF CMakeFiles/ContourTerminalDisplay.dir/ContourTerminalDisplay_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/ContourTerminalDisplay.dir/ContourTerminalDisplay_autogen/mocs_compilation.cpp.o -c /home/uaa/contour/build/src/contour/display/ContourTerminalDisplay_autogen/mocs_compilation.cpp
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/build.make:100: src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/ContourTerminalDisplay_autogen/mocs_compilation.cpp.o] Error 1
make[2]: Leaving directory '/home/uaa/contour/build'
make[1]: *** [CMakeFiles/Makefile2:572: src/contour/display/CMakeFiles/ContourTerminalDisplay.dir/all] Error 2
make[1]: Leaving directory '/home/uaa/contour/build'
make: *** [Makefile:156: all] Error 2
[uaa@voidlinux-vm build]$

Additional notes

CMake configutration log:

[uaa@voidlinux-vm build]$ cmake ..
-- [Version] Git branch: master
-- [Version] Git SHA: 2dcb6604
-- [Version] version source: git & /home/uaa/contour/metainfo.xml
-- [Version] version triple: 0.4.4
-- [Version] version string: 0.4.4-master-2dcb6604
-- The CXX compiler identification is GNU 13.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [ccache] Disabled: Not found.
-- [clang-tidy] Disabled.
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- addr2line: /usr/bin/addr2line
-- No sanitizer enabled.
-- No 3rdparty libraries found at /home/uaa/contour/_deps/sources
-- Found HarfBuzz: /usr/lib/libharfbuzz.so
-- Found Freetype: /usr/lib/libfreetype.so (found version "2.13.2")
-- Found libunicode, version: 0.4.0
-- Found boxed-cpp, version: 1.2.2
-- Found boxed-cpp: 1.2.2 (system package)
-- Performing Test fdiagnostics-color=always
-- Performing Test fdiagnostics-color=always - Success
-- Adding compiler flag: -fdiagnostics-color=always.
-- Enabling pedantic compiler options: no
-- Looking for backtrace
-- Looking for backtrace - found
-- Looking for backtrace_symbols
-- Looking for backtrace_symbols - found
-- Looking for dladdr
-- Looking for dladdr - found
-- Looking for dlsym
-- Looking for dlsym - found
-- Looking for include file dlfcn.h
-- Looking for include file dlfcn.h - found
-- Looking for include file cxxabi.h
-- Looking for include file cxxabi.h - found
-- Looking for include file execinfo.h
-- Looking for include file execinfo.h - found
-- Looking for include file sys/select.h
-- Looking for include file sys/select.h - found
-- Looking for include file unwind.h
-- Looking for include file unwind.h - found
-- [crispy-core] Adding compile definition: HAVE_BACKTRACE
-- [crispy-core] Adding compile definition: HAVE_BACKTRACE_SYMBOLS
-- [crispy-core] Adding compile definition: HAVE_CXXABI_H
-- [crispy-core] Adding compile definition: HAVE_DLADDR
-- [crispy-core] Adding compile definition: HAVE_DLFCN_H
-- [crispy-core] Adding compile definition: HAVE_DLSYM
-- [crispy-core] Adding compile definition: HAVE_EXECINFO_H
-- [crispy-core] Adding compile definition: HAVE_SYS_SELECT_H
-- [crispy-core] Adding compile definition: HAVE_UNWIND_H
-- [crispy] Compile unit tests: OFF
-- Found Fontconfig: /usr/lib/libfontconfig.so (found version "2.14.2")
-- Checking for module 'harfbuzz'
--   Found harfbuzz, version 8.5.0
-- [text_shaper] Librarires: unicode::unicode;boxed-cpp::boxed-cpp;fmt::fmt-header-only;range-v3::range-v3;Microsoft.GSL::GSL;Freetype::Freetype;PkgConfig::harfbuzz;Fontconfig::Fontconfig
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'libssh2'
--   No package 'libssh2' found
-- [vtpty] Builtin-SSH support disabled
-- [vtbackend] Compile unit tests: OFF
-- [vtbackend] Enable VT sequence tracing: ON
-- [vtbackend] Enable passive render buffer update: OFF
-- [vtbackend] Build bench-headless: OFF
-- [vtbackend] Build documentation tool: OFF
-- [vtrasterizer] Compile unit tests:
-- Qt components: Core;Gui;Qml;Quick;QuickControls2;Network;Multimedia;Widgets;OpenGL;OpenGLWidgets;Core5Compat
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found XKB: /usr/lib64/libxkbcommon.so (found suitable version "1.7.0", minimum required is "0.5.0")
-- Found WrapVulkanHeaders: /usr/include
-- Executable tic found (/usr/bin/tic).
-- ==============================================================================
--     Contour ThirdParties
-- ------------------------------------------------------------------------------
-- Catch2              (tests disabled)
-- GSL                 system package
-- fmt                 system package
-- freetype            system package
-- harfbuzz            system package
-- range-v3            system package
-- yaml-cpp            system package
-- termbench-pro       (bench-headless disabled)
-- libunicode          system package (0.4.0)
-- boxed-cpp           system package
-- ------------------------------------------------------------------------------
-- ==============================================================================
--     Contour (0.4.4-master-2dcb6604)
-- ------------------------------------------------------------------------------
-- System:                                             x86_64 (Linux)
-- Build type:                                         RelWithDebInfo
-- C++ standard:                                       C++20 (GNU)
-- Using ccache:                                       CCACHE-NOTFOUND
-- Build with sanitizer:                               OFF
-- Build unit tests:                                   OFF
-- Enable with code coverage:                          OFF
-- Build contour frontend GUI:                         ON
-- Build contour using Qt:                             6 (6.6.0)
-- Build contour using mimalloc:                       OFF
-- Clang Tidy:                                         OFF
-- |> Enable performance metrics:                      OFF
-- ------------------------------------------------------------------------------
-- Configuring done (2.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/uaa/contour/build
[uaa@voidlinux-vm build]$
@jg1uaa jg1uaa added the bug Something isn't working label Jun 22, 2024
@Yaraslaut
Copy link
Member

Hi @jg1uaa, thanks for the report.
We are aware of this issue, and for gcc 14, everything is alright. In the mean time I would suggest to use clang, or ask void people @classabbyamp if it is possible to bump gcc version

@jg1uaa
Copy link
Contributor Author

jg1uaa commented Jun 22, 2024

Thanks! I use clang-17.0.6 instead of gcc-13.2.0, the problem solved.

[uaa@voidlinux-vm build]$ CC=clang CXX=clang++ cmake ..
-- [Version] Git branch: master
-- [Version] Git SHA: 2dcb6604
-- [Version] version source: git & /home/uaa/contour/metainfo.xml
-- [Version] version triple: 0.4.4
-- [Version] version string: 0.4.4-master-2dcb6604
-- The CXX compiler identification is Clang 17.0.6
(snip)
Compiling contour.terminfo
cd /home/uaa/contour/build/src/contour && /home/uaa/contour/build/src/contour/contour generate terminfo to contour.terminfo && /usr/bin/tic -x -o /home/uaa/contour/build/src/contour/terminfo contour.terminfo
make[2]: Leaving directory '/home/uaa/contour/build'
[100%] Built target contour
make[1]: Leaving directory '/home/uaa/contour/build'
/usr/bin/cmake -E cmake_progress_start /home/uaa/contour/build/CMakeFiles 0
[uaa@voidlinux-vm build]$


@jg1uaa jg1uaa closed this as completed Jun 22, 2024
classabbyamp added a commit to classabbyamp/void-packages that referenced this issue Oct 11, 2024
use cmake to avoid a memory leak with gcc 13 (contour-terminal/contour#1534)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants