office-gobmx/solenv
Caolán McNamara 2e50b3850b add --enable-hardening-flags to enable compiler hardening flags
distros typically have their own set via C[XX]FLAGS, so make
this an optional argument

some notes on the options:

-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2
https://www.redhat.com/en/blog/enhance-application-security-fortifysource
(I see Fedora has recently bumped to to 3 since Jan 2024
https://fedoraproject.org/wiki/Changes/Add_FORTIFY_SOURCE%3D3_to_distribution_build_flags
but here use 2 for now instead)

-Wp,-D_GLIBCXX_ASSERTIONS
https://fedoraproject.org/wiki/Changes/HardeningFlags28

-fstack-protector-strong
(We already apply this by default)

-fstack-clash-protection
https://fedoraproject.org/wiki/Changes/HardeningFlags28

-fcf-protection
https://fedoraproject.org/wiki/Changes/HardeningFlags28
https://cgit.freedesktop.org/libreoffice/core/commit/?id=af55dc3891f7950d392175004b2090cb0e54828e

and record the compiler flags in debuginfo
-grecord-gcc-switches

Change-Id: Ib05387bad8324b188bd4ed0ee327d6a7cf83973b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163312
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit 33483058f6)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166289
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-19 21:01:53 +02:00
..
bin move writerfilter inside sw 2024-04-18 09:16:12 +02:00
buck
clang-cl
clang-format move writerfilter inside sw 2024-04-18 09:16:12 +02:00
doc/gbuild
gbuild add --enable-hardening-flags to enable compiler hardening flags 2024-04-19 21:01:53 +02:00
gbuildtojson
gcc-wrappers
gdb
inc
lldb/libreoffice
lockfile
maven
qa/python
sanitizers remove unused suppression 2024-04-01 10:00:56 +02:00
vs Add VclPtr operators to natstepfilter 2024-04-13 01:19:45 +02:00
wsl
CompilerTest_compilerplugins_clang-c++03.mk
CompilerTest_compilerplugins_clang.mk
CustomTarget_gbuildtesttools.mk
Executable_concat-deps.mk
Executable_g++-wrapper.mk
Executable_gbuildtojson.mk
Executable_gcc-wrapper.mk
Executable_lockfile.mk
flatpak-manifest.in Adapt flatpak build to upstream changes 2024-04-10 12:05:32 +02:00
Makefile
Module_solenv.mk
PythonTest_solenv_python.mk
README.md
StaticLibrary_wrapper.mk

Tools and Makefile Fragments Necessary for Compilation

This module contains many tools and makefile configuration pieces, critical for building LibreOffice:

  • bin/

    • contains lots of tools used during the build:

      • concat-deps* these aggregate, and remove duplicates from module dependencies, to accelerate build times.

      • make_installer.pl this script executes the compiled instructions from the scp2/ module to create an installer, and/or to do a local install for the smoketest.

  • gbuild/

    implementation of the LibreOffice build system See gbuild/README for more info.

  • gdb/

    lots of nice python helpers to make debugging -much- easier that (eg.) print UCS2 strings as UTF-8 on the console to help with debugging.

  • inc/

    old / increasingly obsolete dmake setup and includes, we are trying to entirely rid ourselves of this

  • src/

    useful standard / re-usable component map files for components which shouldn't export anything more than a few registration symbols.

  • flatpak-manifest.in

    This file is copied manually to https://github.com/flathub/org.libreoffice.LibreOffice/blob/master/org.libreoffice.LibreOffice.json The flatpak/build.sh in the LO dev-tools repository is obsolete.