package/systemd: add gcc >= 5.x dependency
authorRomain Naour <romain.naour@gmail.com>
Sat, 4 Apr 2020 22:08:42 +0000 (00:08 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Sun, 5 Apr 2020 18:33:32 +0000 (20:33 +0200)
As reported on the mailing list, there is a build issue with systemd 245
when using gcc < 5.0:

http://lists.busybox.net/pipermail/buildroot/2020-April/278931.html

Build issue:
../src/shared/gpt.c:7:9: error: initializer element is not constant
         { GPT_ROOT_X86,              "root-x86"              },

When testing with a toolchain using gcc 5.4.0 and the build is ok.
http://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi--glibc--stable-2017.05-toolchains-1-1.tar.bz2

While searching for "error: initializer element is not constant" message, we
can notice a note about gcc 5 change about "Initializing statics with compound
literals":

https://gcc.gnu.org/gcc-5/porting_to.html

Add a dependency on gcc 5 to avoid using to old compiler.

There is the same issue with host-systemd with host gcc 4.9
(tested with Debian Jessie). So, add a dependency on host gcc >= 5.x.

Fixes:
http://autobuild.buildroot.org/results/520/520dab2253f4cbe408a8177a6587dcb38c6ba215
http://autobuild.buildroot.org/results/e0e/e0e0512de822864d670b5d176798a24ab09eed2d
http://autobuild.buildroot.org/results/f56/f5660b2711627fcee4086e096e4ec4d9ba190ab6

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Adam Duskett <aduskett@gmail.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/systemd/Config.in
package/systemd/Config.in.host
system/Config.in

index bd638477a04fd0c7fe2720e833a7d2e1b5b6a279..4afe6944131197020f6eb56a4a0f84614e3abb96 100644 (file)
@@ -19,6 +19,8 @@ menuconfig BR2_PACKAGE_SYSTEMD
        depends on !BR2_STATIC_LIBS # kmod
        depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
        depends on BR2_USE_MMU # dbus
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd
        select BR2_PACKAGE_HAS_UDEV
        select BR2_PACKAGE_DBUS # runtime dependency only
        select BR2_PACKAGE_LIBCAP
index 219f24239eef45bf5edeab84d2ab44a561c20cd1..8e00bcf5c19a393df607ea8c927d1cc6db891f71 100644 (file)
@@ -1,3 +1,4 @@
 # Select this if you need host systemd tools (e.g. systemctl)
 config BR2_PACKAGE_HOST_SYSTEMD
        bool
+       depends on BR2_HOST_GCC_AT_LEAST_5
index c8c5be40e0965d32e37a3ef29e2396ed6a676cfe..cdf9df61a76d3c7938a78d339a7f52234d054ccf 100644 (file)
@@ -121,15 +121,19 @@ config BR2_INIT_SYSTEMD
        depends on BR2_USE_MMU
        depends on !BR2_STATIC_LIBS
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       depends on BR2_HOST_GCC_AT_LEAST_5
        select BR2_ROOTFS_MERGED_USR
        select BR2_PACKAGE_SYSTEMD
 
-comment "systemd needs a glibc toolchain w/ SSP, headers >= 3.10"
+comment "systemd needs a glibc toolchain w/ SSP, headers >= 3.10, host and target gcc >= 5"
        depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
        depends on BR2_USE_MMU
        depends on !BR2_TOOLCHAIN_USES_GLIBC || \
                !BR2_TOOLCHAIN_HAS_SSP || \
-               !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+               !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || \
+               !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
+               !BR2_HOST_GCC_AT_LEAST_5
 
 config BR2_INIT_NONE
        bool "None"