office-gobmx/distro-configs
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
..
Jenkins
CPAndroid.conf
CPAndroidAarch64.conf
CPAndroidBranding.conf
CPAndroidX86.conf
CPAndroidX86_64.conf
CPLinux-LOKit.conf add --enable-hardening-flags to enable compiler hardening flags 2024-04-19 21:01:53 +02:00
LibreOfficeAndroid.conf
LibreOfficeAndroidAarch64.conf
LibreOfficeAndroidX86.conf
LibreOfficeAndroidX86_64.conf
LibreOfficeCoverity.conf
LibreOfficeFlatpak.conf
LibreOfficeHaiku.conf
LibreOfficeiOS.conf
LibreOfficeiOS_Sim.conf
LibreOfficeLinux.conf
LibreOfficeMacOSX.conf
LibreOfficeOnline.conf
LibreOfficeOpenBSD.conf
LibreOfficeOssFuzz.conf
LibreOfficeVanillaMacAppStore.conf
LibreOfficeWASM32.conf
LibreOfficeWin32.conf
LibreOfficeWin64.conf
LibreOfficeWinArm64.conf
README.md

Pre-canned Distribution Configurations

These files are supposed to correspond to the options used when creating the Document Foundation (or other "canonical") builds of LibreOffice for various platforms. They are not supposed to represent the "most useful" options for developers in general. On the contrary, the intent is that just running ./autogen.sh without any options at all should produce a buildable configuration for developers with interest in working on the most commonly used parts of the code.

See https://wiki.documentfoundation.org/Development/ReleaseBuilds for how TDF builds make use of these switches. (Especially, since --with-package-format now triggers whether or not installation sets are built, all the relevant *.conf files specify it, except for LibreOfficeLinux.conf, where the TDF build instructions pass an explicit --with-package-format="rpm deb" in addition to --with-distro=LibreOfficeLinux.)

(Possibly the above is a misunderstanding, or maybe there never even has been any clear consensus what situations these files actually are intended for.)

The files contain sets of configuration parameters, and can be passed on the autogen.sh command line thus:

./autogen.sh --with-distro=LibreOfficeFoo

Contrary to the above, in the Android case the amount of parameters you just must use is so large, that for convenience it is always easiest to use the corresponding distro-configs file. This is a bug and needs to be fixed; also configuring for Android should ideally use sane (or the only possible) defaults and work fine without any parameters at all.