Go to file
Zbigniew Jędrzejewski-Szmek 78103450b4 meson: define _GNU_SOURCE as '1'
This changes the generated config.h file thusly:
-#define _GNU_SOURCE
+#define _GNU_SOURCE 1

Canonically, _GNU_SOURCE is just defined, without any value, but g++ defines
_GNU_SOURCE implicitly [1]. This causes a warning about a redefinition during
complilation of C++ programs after '-include config.h'. Our config attempts to
inject this (and a bunch of other arguments) into all compliations. But before
meson 0.54, flags for dependencies were not propagated correctly (*), and the C++
compilation was done without various flags (**). Once that was fixed, we started
getting a warning.

[1] http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.predefined
(*) Actually, the changelog doesn't say anything. But it mentions various work
    related to dependency propagation, and apparently this changes as a side
    effect.
(**) -fno-strict-aliasing
    -fstrict-flex-arrays=1
    -fvisibility=hidden
    -fno-omit-frame-pointer
    -include config.h

This could be solved in various ways, but it'd require either making the
compilation command line longer, which we want to avoid for readability of the
build logs, or splitting the logic to define the args for C++ progs separately,
which would make our meson.build files more complicated. Changing the
definition to '1' also solves the issue (because apparently now we match the
implicit definition), and shouldn't have other effects. I checked compilation
with gcc and clang. Maybe on other systems this could cause problems. We can
revisit if people report issues.
2023-06-12 10:59:45 +02:00
.clusterfuzzlite ci: unpin CFLite 2022-04-26 09:13:57 +00:00
.github ci: Report results from CIFuzz using SARIF 2023-06-05 07:37:34 +02:00
.semaphore test: drop whitespace after shell redirection operators 2023-02-06 09:19:04 +01:00
catalog man,catalog: fix typo 2023-02-24 08:52:42 +09:00
coccinelle coccinelle: add a transformation for GNU conditionals 2023-03-18 14:23:11 +01:00
docs sd-boot,sd-stub: also print version after the address 2023-05-24 04:34:56 +09:00
factory vconsole: allow setting default keymap through build option 2023-02-15 20:00:51 +00:00
hwdb.d hwdb: add support for Elgato Stream Deck mini (gen 2) 2023-06-01 02:36:49 +09:00
LICENSES Rewrite check-includes.pl in python 2023-05-09 08:11:10 +02:00
man man: document which IP ports resolved listens on, and what for 2023-06-07 13:27:12 +02:00
mkosi.conf.d mkosi: Enable more options 2023-06-02 17:25:23 +02:00
mkosi.presets mkosi: Enable more options 2023-06-02 17:25:23 +02:00
modprobe.d meson: install the right README file in modprobe.d 2021-07-07 14:52:05 +02:00
network meson: Install missing network file 2023-01-27 17:50:27 +01:00
po po: Translated using Weblate (Korean) 2023-06-03 17:48:02 +02:00
presets journal: give the ability to enable/disable systemd-journald-audit.socket 2023-01-11 17:18:57 +01:00
rules.d 99-systemd.rules.in: guard systemd-backlight udev rules by ENABLE_BACKLIGHT 2023-06-05 17:59:04 +01:00
shell-completion udev: downgrade log level about style issues 2023-06-05 11:37:26 +09:00
src meson: stop using nested lists for sources 2023-06-07 16:15:51 +02:00
sysctl.d tree-wide: link to docs.kernel.org for kernel documentation 2022-07-04 19:56:53 +02:00
sysusers.d sysusers: also add root group 2023-02-15 10:29:10 +09:00
test units: change TimeoutSec=0 to TimeoutSec=infinity 2023-06-06 18:23:43 +01:00
tmpfiles.d tmpfiles: use same credstore perms everywhere 2023-05-31 11:15:26 +08:00
tools elf2efi: ensure minimum gap between .text and other sections 2023-05-24 11:06:36 +01:00
units units: change TimeoutSec=0 to TimeoutSec=infinity 2023-06-06 18:23:43 +01:00
xorg xorg/50-systemd-user: add a full license header 2021-10-01 14:45:00 +02:00
.clang-format clang-format: Adjust style of pointers 2022-05-30 04:00:54 +09:00
.ctags editors: Prevent ctags from following symlinks 2019-02-15 11:01:20 -08:00
.dir-locals.el scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
.editorconfig mkosi: Use 4 space indentation for scripts 2023-02-21 14:22:52 +01:00
.gitattributes gitattributes: introduce and use "generated" attribute 2021-10-18 09:42:55 +02:00
.gitignore mkosi: Update .gitignore to account for changed output locations 2023-05-12 11:38:02 +02:00
.mailmap mailmap: two more names 2021-03-30 13:17:58 +02:00
.packit.yml packit: drop/replace deprecated directives 2022-12-15 21:48:49 +09:00
.vimrc vimrc: use 109ch text width for shell scripts as well 2023-05-13 22:02:37 +02:00
.ycm_extra_conf.py ycm: add doc string for all the functions in configuration file 2017-11-29 13:21:49 -07:00
configure tools: shellcheck-ify tool scripts 2021-09-30 12:27:06 +02:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
Makefile tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
meson.build meson: define _GNU_SOURCE as '1' 2023-06-12 10:59:45 +02:00
meson_options.txt bpf: stabilize GCC BPF support 2023-05-30 09:27:56 +09:00
mkosi.kernel.config add support for KSM 2023-06-05 11:22:43 +02:00
NEWS doc: replace wrong á preposition by à 2023-03-07 13:06:43 +01:00
README README: drop busybox requirement 2023-05-18 10:51:49 +02:00
README.md README: drop the CentOS CI SELinux job 2023-05-20 17:12:01 +02:00
TODO update TODO 2023-06-02 18:43:11 +02:00

Systemd

System and Service Manager

Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
CentOS CI - CentOS 8
CentOS CI - Arch
CentOS CI - Arch (sanitizers)
Fossies codespell report
Weblate
Coverage Status
Packaging status
OpenSSF Scorecard

Details

Most documentation is available on systemd's web site.

Assorted, older, general information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Code Map for information about this repository's layout and content.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Stable branches with backported patches are available in the stable repo.