[oe] [meta-networking][RFC PATCH 0/1] Failed to compile networkmanager with musl

kai.kang at windriver.com kai.kang at windriver.com
Wed Aug 28 03:43:06 UTC 2019


From: Kai Kang <kai.kang at windriver.com>

Hi Khem,

I am updating networkmanager to 1.20. But I meet a problem with musl
that "error: redefinition of 'struct ethhdr'". I find a patch for kernel
which is created in Jan 2018. The musl part has been merged in musl:

commit b583c5d3b4cc2c54c68eef5eb7855ecfacee8bfc
Author: Hauke Mehrtens <hauke at hauke-m.de>
Date:   Sat Jan 6 23:32:52 2018 +0100

    add additional uapi guards for Linux kernel header files
    
    With Linux kernel 4.16 it will be possible to guard more parts of the
    Linux header files from a libc. Make use of this in musl to guard all
    the structures and other definitions from the Linux header files which
    are also defined by the header files provided by musl. This will make
    it possible to compile source files which include both the libc
    headers and the kernel userspace headers.
    
    This extends the definitions done in commit 04983f227238 ("make
    netinet/in.h suppress clashing definitions from kernel headers")

But the kernel part doesn't exist in current kernel source.
It should not be networkmanager specified.

Do you have any suggestion to fix this error? Thanks.


PS: detailed error messages:

x86_64-poky-linux-musl-gcc -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot -Isrc/25a6634@@NetworkManager at sta -Isrc -I../NetworkManager-1.20.0/src -Ilibnm-core -I../NetworkManager-1.20.0/libnm-core -I. -I../NetworkManager-1.20.0/ -Ishared -I../NetworkManager-1.20.0/shared -I../NetworkManager-1.20.0/shared/systemd/sd-adapt-shared -I../NetworkManager-1.20.0/shared/systemd/src/basic -I../NetworkManager-1.20.0/shared/systemd/src/shared -I/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/gio-unix-2.0 -I/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/glib-2.0 -I/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/lib/glib-2.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu11 -fdata-sections -ffunction-sections -O2 -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0=/usr/src/debug/networkmanager/1.20.0-r0 -fdebug-prefix-map=/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0=/usr/src/debug/networkmanager/1.20.0-r0 -fdebug-prefix-map=/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot= -fdebug-prefix-map=/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot-native= -DRTLD_DEEPBIND=0 -fPIC -pthread -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON -MD -MQ 'src/25a6634@@NetworkManager at sta/devices_nm-device.c.o' -MF 'src/25a6634@@NetworkManager at sta/devices_nm-device.c.o.d' -o 'src/25a6634@@NetworkManager at sta/devices_nm-device.c.o' -c ../NetworkManager-1.20.0/src/devices/nm-device.c                                                             
In file included from /home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/net/ethernet.h:10,
                 from ../NetworkManager-1.20.0/src/systemd/src/systemd/sd-dhcp-client.h:23,
                 from ../NetworkManager-1.20.0/src/systemd/nm-sd.h:21,
                 from ../NetworkManager-1.20.0/src/devices/nm-device.c:76:
/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/netinet/if_ether.h:111:8: error: redefinition of 'struct ethhdr'
  111 | struct ethhdr {
      |        ^~~~~~
In file included from ../NetworkManager-1.20.0/libnm-core/nm-utils.h:32,
                 from ../NetworkManager-1.20.0/libnm-core/nm-setting-ip-config.h:29,
                 from ../NetworkManager-1.20.0/src/NetworkManagerUtils.h:26,
                 from ../NetworkManager-1.20.0/src/devices/nm-device.h:31,
                 from ../NetworkManager-1.20.0/src/devices/nm-device.c:23:
/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/linux/if_ether.h:167:8: note: originally defined here
  167 | struct ethhdr {
      |        ^~~~~~
In file included from /home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/netinet/if_ether.h:118,
                 from /home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/net/ethernet.h:10,
                 from ../NetworkManager-1.20.0/src/systemd/src/systemd/sd-dhcp-client.h:23,
                 from ../NetworkManager-1.20.0/src/systemd/nm-sd.h:21,
                 from ../NetworkManager-1.20.0/src/devices/nm-device.c:76:
/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr'
   22 | struct arphdr {
      |        ^~~~~~
In file included from ../NetworkManager-1.20.0/src/devices/nm-device.c:34:
/home/kkang/buildarea/222-Yocto/build-xfce-x86-64/tmp/work/core2-64-poky-linux-musl/networkmanager/1.20.0-r0/recipe-sysroot/usr/include/linux/if_arp.h:144:8: note: originally defined here
  144 | struct arphdr {
      |        ^~~~~~


Regards,
Kai




Kai Kang (1):
  networkmanager: 1.18.2 -> 1.20.0

 ...e.ac-Fix-pkgconfig-sysroot-locations.patch |  22 ---
 ...ttings-settings-property-documentati.patch |  71 ---------
 ...on.build-pkgconfig-sysroot-locations.patch |  23 +++
 ...eate-settings-property-documentation.patch | 146 ++++++++++++++++++
 ...Fix-build-with-musl-systemd-specific.patch |  10 +-
 .../musl/0002-Fix-build-with-musl.patch       |  12 +-
 .../musl/0003-Fix-mrand48_r-with-musl.patch   |  47 ++++++
 ...ger_1.18.2.bb => networkmanager_1.20.0.bb} |  72 +++++----
 8 files changed, 262 insertions(+), 141 deletions(-)
 delete mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
 delete mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Do-not-create-settings-settings-property-documentati.patch
 create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/fix-meson.build-pkgconfig-sysroot-locations.patch
 create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/meson-do-not-create-settings-property-documentation.patch
 create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-Fix-mrand48_r-with-musl.patch
 rename meta-networking/recipes-connectivity/networkmanager/{networkmanager_1.18.2.bb => networkmanager_1.20.0.bb} (62%)

-- 
2.20.0



More information about the Openembedded-devel mailing list