Le 20/01/2021 à 17:12, Philippe Mathieu-Daudé a écrit : > On 1/20/21 5:00 PM, Laurent Vivier wrote: >> Le 20/01/2021 à 13:16, Philippe Mathieu-Daudé a écrit : >>> On 1/19/21 6:54 PM, Laurent Vivier wrote: >>>> From: Shu-Chun Weng <[email protected]> >>>> >>>> IPV6_ADDR_PREFERENCES (RFC5014: Source address selection) was not >>>> supported. >>>> >>>> Signed-off-by: Shu-Chun Weng <[email protected]> >>>> Reviewed-by: Laurent Vivier <[email protected]> >>>> Message-Id: <[email protected]> >>>> Signed-off-by: Laurent Vivier <[email protected]> >>>> --- >>>> linux-user/syscall.c | 3 +++ >>>> 1 file changed, 3 insertions(+) >>>> >>>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >>>> index 969db2008104..70c61d15ebf8 100644 >>>> --- a/linux-user/syscall.c >>>> +++ b/linux-user/syscall.c >>>> @@ -51,6 +51,7 @@ >>>> #include <sys/sysinfo.h> >>>> #include <sys/signalfd.h> >>>> //#include <sys/user.h> >>>> +#include <netinet/in.h> >>>> #include <netinet/ip.h> >>>> #include <netinet/tcp.h> >>>> #include <netinet/udp.h> >>>> @@ -2272,6 +2273,7 @@ static abi_long do_setsockopt(int sockfd, int level, >>>> int optname, >>>> case IPV6_RECVDSTOPTS: >>>> case IPV6_2292DSTOPTS: >>>> case IPV6_TCLASS: >>>> + case IPV6_ADDR_PREFERENCES: >>>> #ifdef IPV6_RECVPATHMTU >>>> case IPV6_RECVPATHMTU: >>>> #endif >>>> @@ -2926,6 +2928,7 @@ get_timeout: >>>> case IPV6_RECVDSTOPTS: >>>> case IPV6_2292DSTOPTS: >>>> case IPV6_TCLASS: >>>> + case IPV6_ADDR_PREFERENCES: >>>> #ifdef IPV6_RECVPATHMTU >>>> case IPV6_RECVPATHMTU: >>>> #endif >>>> >>> >>> Building on Centos7: >>> >>> ../linux-user/syscall.c: In function 'do_setsockopt': >>> ../linux-user/syscall.c:2276:14: error: 'IPV6_ADDR_PREFERENCES' >>> undeclared (first use in this function) >>> case IPV6_ADDR_PREFERENCES: >>> ^ >>> ../linux-user/syscall.c:2276:14: note: each undeclared identifier is >>> reported only once for each function it appears in >>> ../linux-user/syscall.c: In function 'do_getsockopt': >>> ../linux-user/syscall.c:2931:14: error: 'IPV6_ADDR_PREFERENCES' >>> undeclared (first use in this function) >>> case IPV6_ADDR_PREFERENCES: >>> ^ >>> >> >> Strange... this is defined since kernel v2.6.26 in /usr/include/linux/in6.h >> >> 7cbca67c0732 [IPV6]: Support Source Address Selection API (RFC5014). >> >> Could try adding the include? > > Yes, this fixed it, thanks: > > -- >8 -- > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 1f91aa0ed5e..34760779c8e 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -59,6 +59,7 @@ > #include <linux/icmp.h> > #include <linux/icmpv6.h> > #include <linux/if_tun.h> > +#include <linux/in6.h> > #include <linux/errqueue.h> > #include <linux/random.h> > #ifdef CONFIG_TIMERFD > --- >
Could you send a patch to the ML? Thanks, Laurent
