sonyxperiadev / kernel

Other
353 stars 364 forks source link

[9.14.r1] Fix compilation #2468

Closed konradybcio closed 2 years ago

jerpelea commented 2 years ago

needed by userspace!

MarijnS95 commented 2 years ago
  HDRTEST usr/include/linux/netfilter_ipv6/ip6_tables.h
In file included from <built-in>:1:
In file included from ./usr/include/linux/netfilter_ipv6/ip6_tables.h:21:
In file included from ./usr/include/linux/if.h:28:
In file included from /usr/include/sys/socket.h:33:
/usr/include/bits/socket.h:191:8: error: redefinition of '__kernel_sockaddr_storage'
struct sockaddr_storage
       ^
./usr/include/linux/socket.h:29:27: note: expanded from macro 'sockaddr_storage'
 #define sockaddr_storage __kernel_sockaddr_storage
                          ^
./usr/include/linux/socket.h:16:8: note: previous definition is here
struct __kernel_sockaddr_storage {
       ^
1 error generated.

Notice that there is no leading . for /usr/include/bits/socket.h - in fact there doesn't appear to be a bits/socket.h file anywhere in 9.14 nor the struct sockaddr_storage definition. HDRTEST appears to be mixing and matching host headers with those found inside the kernel source tree.

#ifndef __KERNEL__
#include <sys/socket.h>         /* for struct sockaddr.     */
#endif

Is expanded to remove __KERNEL__, and this external header is provided by glibc. In other words, the commit message of this PR is wrong, as it depends on the target system.