* [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS @ 2018-06-24 15:18 Matthias Schiffer 2018-06-24 15:30 ` Rich Felker 0 siblings, 1 reply; 7+ messages in thread From: Matthias Schiffer @ 2018-06-24 15:18 UTC (permalink / raw) To: musl Differing from all other archs supported by musl, MIPS defines SO_PEERSEC to 30 instead of 31. Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> --- arch/mips/bits/socket.h | 2 ++ arch/mips64/bits/socket.h | 2 ++ arch/mipsn32/bits/socket.h | 2 ++ include/sys/socket.h | 3 +++ 4 files changed, 9 insertions(+) diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h index 191ebdb5a418..39c42b822ac3 100644 --- a/arch/mips/bits/socket.h +++ b/arch/mips/bits/socket.h @@ -48,5 +48,7 @@ struct cmsghdr { #define SO_SNDBUFFORCE 31 #define SO_RCVBUFFORCE 33 +#define SO_PEERSEC 30 + #define SOCK_NONBLOCK 0200 #define SOCK_CLOEXEC 02000000 diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h index cf801797beb0..39b764df4c62 100644 --- a/arch/mips64/bits/socket.h +++ b/arch/mips64/bits/socket.h @@ -64,5 +64,7 @@ struct cmsghdr { #define SO_SNDBUFFORCE 31 #define SO_RCVBUFFORCE 33 +#define SO_PEERSEC 30 + #define SOCK_NONBLOCK 0200 #define SOCK_CLOEXEC 02000000 diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h index 191ebdb5a418..39c42b822ac3 100644 --- a/arch/mipsn32/bits/socket.h +++ b/arch/mipsn32/bits/socket.h @@ -48,5 +48,7 @@ struct cmsghdr { #define SO_SNDBUFFORCE 31 #define SO_RCVBUFFORCE 33 +#define SO_PEERSEC 30 + #define SOCK_NONBLOCK 0200 #define SOCK_CLOEXEC 02000000 diff --git a/include/sys/socket.h b/include/sys/socket.h index 507da5cc2a40..6b6cf2fc3988 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -203,7 +203,10 @@ struct linger { #define SO_TIMESTAMP 29 #define SCM_TIMESTAMP SO_TIMESTAMP +#ifndef SO_PEERSEC #define SO_PEERSEC 31 +#endif + #define SO_PASSSEC 34 #define SO_TIMESTAMPNS 35 #define SCM_TIMESTAMPNS SO_TIMESTAMPNS -- 2.18.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-24 15:18 [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS Matthias Schiffer @ 2018-06-24 15:30 ` Rich Felker 2018-06-25 17:52 ` Matthias Schiffer 0 siblings, 1 reply; 7+ messages in thread From: Rich Felker @ 2018-06-24 15:30 UTC (permalink / raw) To: musl On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: > Differing from all other archs supported by musl, MIPS defines SO_PEERSEC > to 30 instead of 31. > > Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> > --- > arch/mips/bits/socket.h | 2 ++ > arch/mips64/bits/socket.h | 2 ++ > arch/mipsn32/bits/socket.h | 2 ++ > include/sys/socket.h | 3 +++ > 4 files changed, 9 insertions(+) > > diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h > index 191ebdb5a418..39c42b822ac3 100644 > --- a/arch/mips/bits/socket.h > +++ b/arch/mips/bits/socket.h > @@ -48,5 +48,7 @@ struct cmsghdr { > #define SO_SNDBUFFORCE 31 > #define SO_RCVBUFFORCE 33 > > +#define SO_PEERSEC 30 > + > #define SOCK_NONBLOCK 0200 > #define SOCK_CLOEXEC 02000000 > diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h > index cf801797beb0..39b764df4c62 100644 > --- a/arch/mips64/bits/socket.h > +++ b/arch/mips64/bits/socket.h > @@ -64,5 +64,7 @@ struct cmsghdr { > #define SO_SNDBUFFORCE 31 > #define SO_RCVBUFFORCE 33 > > +#define SO_PEERSEC 30 > + > #define SOCK_NONBLOCK 0200 > #define SOCK_CLOEXEC 02000000 > diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h > index 191ebdb5a418..39c42b822ac3 100644 > --- a/arch/mipsn32/bits/socket.h > +++ b/arch/mipsn32/bits/socket.h > @@ -48,5 +48,7 @@ struct cmsghdr { > #define SO_SNDBUFFORCE 31 > #define SO_RCVBUFFORCE 33 > > +#define SO_PEERSEC 30 > + > #define SOCK_NONBLOCK 0200 > #define SOCK_CLOEXEC 02000000 > diff --git a/include/sys/socket.h b/include/sys/socket.h > index 507da5cc2a40..6b6cf2fc3988 100644 > --- a/include/sys/socket.h > +++ b/include/sys/socket.h > @@ -203,7 +203,10 @@ struct linger { > #define SO_TIMESTAMP 29 > #define SCM_TIMESTAMP SO_TIMESTAMP > > +#ifndef SO_PEERSEC > #define SO_PEERSEC 31 > +#endif > + > #define SO_PASSSEC 34 > #define SO_TIMESTAMPNS 35 > #define SCM_TIMESTAMPNS SO_TIMESTAMPNS > -- > 2.18.0 Should we perhaps do this under the SO_DEBUG conditional like all the other SO_* that vary by arch? Doing so would require adding definitions to the other weird archs (ibm ones) but might be cleaner in the top-level header -- I'm not sure. Rich ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-24 15:30 ` Rich Felker @ 2018-06-25 17:52 ` Matthias Schiffer 2018-06-26 18:21 ` Matthias Schiffer 0 siblings, 1 reply; 7+ messages in thread From: Matthias Schiffer @ 2018-06-25 17:52 UTC (permalink / raw) To: musl [-- Attachment #1.1: Type: text/plain, Size: 2814 bytes --] On 06/24/2018 05:30 PM, Rich Felker wrote: > On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: >> Differing from all other archs supported by musl, MIPS defines SO_PEERSEC >> to 30 instead of 31. >> >> Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> >> --- >> arch/mips/bits/socket.h | 2 ++ >> arch/mips64/bits/socket.h | 2 ++ >> arch/mipsn32/bits/socket.h | 2 ++ >> include/sys/socket.h | 3 +++ >> 4 files changed, 9 insertions(+) >> >> diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h >> index 191ebdb5a418..39c42b822ac3 100644 >> --- a/arch/mips/bits/socket.h >> +++ b/arch/mips/bits/socket.h >> @@ -48,5 +48,7 @@ struct cmsghdr { >> #define SO_SNDBUFFORCE 31 >> #define SO_RCVBUFFORCE 33 >> >> +#define SO_PEERSEC 30 >> + >> #define SOCK_NONBLOCK 0200 >> #define SOCK_CLOEXEC 02000000 >> diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h >> index cf801797beb0..39b764df4c62 100644 >> --- a/arch/mips64/bits/socket.h >> +++ b/arch/mips64/bits/socket.h >> @@ -64,5 +64,7 @@ struct cmsghdr { >> #define SO_SNDBUFFORCE 31 >> #define SO_RCVBUFFORCE 33 >> >> +#define SO_PEERSEC 30 >> + >> #define SOCK_NONBLOCK 0200 >> #define SOCK_CLOEXEC 02000000 >> diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h >> index 191ebdb5a418..39c42b822ac3 100644 >> --- a/arch/mipsn32/bits/socket.h >> +++ b/arch/mipsn32/bits/socket.h >> @@ -48,5 +48,7 @@ struct cmsghdr { >> #define SO_SNDBUFFORCE 31 >> #define SO_RCVBUFFORCE 33 >> >> +#define SO_PEERSEC 30 >> + >> #define SOCK_NONBLOCK 0200 >> #define SOCK_CLOEXEC 02000000 >> diff --git a/include/sys/socket.h b/include/sys/socket.h >> index 507da5cc2a40..6b6cf2fc3988 100644 >> --- a/include/sys/socket.h >> +++ b/include/sys/socket.h >> @@ -203,7 +203,10 @@ struct linger { >> #define SO_TIMESTAMP 29 >> #define SCM_TIMESTAMP SO_TIMESTAMP >> >> +#ifndef SO_PEERSEC >> #define SO_PEERSEC 31 >> +#endif >> + >> #define SO_PASSSEC 34 >> #define SO_TIMESTAMPNS 35 >> #define SCM_TIMESTAMPNS SO_TIMESTAMPNS >> -- >> 2.18.0 > > Should we perhaps do this under the SO_DEBUG conditional like all the > other SO_* that vary by arch? Doing so would require adding > definitions to the other weird archs (ibm ones) but might be cleaner > in the top-level header -- I'm not sure. > > Rich > That would actually make sense. I did not research what SO_PEERSEC even is before I sent the patch; only know I noticed that both the constants defined under SO_DEBUG and the others below the #endif are SOL_SOCKET, so it would be more consistent to move it under SO_DEBUG as well. Matthias [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-25 17:52 ` Matthias Schiffer @ 2018-06-26 18:21 ` Matthias Schiffer 2018-06-26 20:05 ` Rich Felker 0 siblings, 1 reply; 7+ messages in thread From: Matthias Schiffer @ 2018-06-26 18:21 UTC (permalink / raw) To: musl [-- Attachment #1.1: Type: text/plain, Size: 3043 bytes --] On 06/25/2018 07:52 PM, Matthias Schiffer wrote: > On 06/24/2018 05:30 PM, Rich Felker wrote: >> On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: >>> Differing from all other archs supported by musl, MIPS defines SO_PEERSEC >>> to 30 instead of 31. >>> >>> Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> >>> --- >>> arch/mips/bits/socket.h | 2 ++ >>> arch/mips64/bits/socket.h | 2 ++ >>> arch/mipsn32/bits/socket.h | 2 ++ >>> include/sys/socket.h | 3 +++ >>> 4 files changed, 9 insertions(+) >>> >>> diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h >>> index 191ebdb5a418..39c42b822ac3 100644 >>> --- a/arch/mips/bits/socket.h >>> +++ b/arch/mips/bits/socket.h >>> @@ -48,5 +48,7 @@ struct cmsghdr { >>> #define SO_SNDBUFFORCE 31 >>> #define SO_RCVBUFFORCE 33 >>> >>> +#define SO_PEERSEC 30 >>> + >>> #define SOCK_NONBLOCK 0200 >>> #define SOCK_CLOEXEC 02000000 >>> diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h >>> index cf801797beb0..39b764df4c62 100644 >>> --- a/arch/mips64/bits/socket.h >>> +++ b/arch/mips64/bits/socket.h >>> @@ -64,5 +64,7 @@ struct cmsghdr { >>> #define SO_SNDBUFFORCE 31 >>> #define SO_RCVBUFFORCE 33 >>> >>> +#define SO_PEERSEC 30 >>> + >>> #define SOCK_NONBLOCK 0200 >>> #define SOCK_CLOEXEC 02000000 >>> diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h >>> index 191ebdb5a418..39c42b822ac3 100644 >>> --- a/arch/mipsn32/bits/socket.h >>> +++ b/arch/mipsn32/bits/socket.h >>> @@ -48,5 +48,7 @@ struct cmsghdr { >>> #define SO_SNDBUFFORCE 31 >>> #define SO_RCVBUFFORCE 33 >>> >>> +#define SO_PEERSEC 30 >>> + >>> #define SOCK_NONBLOCK 0200 >>> #define SOCK_CLOEXEC 02000000 >>> diff --git a/include/sys/socket.h b/include/sys/socket.h >>> index 507da5cc2a40..6b6cf2fc3988 100644 >>> --- a/include/sys/socket.h >>> +++ b/include/sys/socket.h >>> @@ -203,7 +203,10 @@ struct linger { >>> #define SO_TIMESTAMP 29 >>> #define SCM_TIMESTAMP SO_TIMESTAMP >>> >>> +#ifndef SO_PEERSEC >>> #define SO_PEERSEC 31 >>> +#endif >>> + >>> #define SO_PASSSEC 34 >>> #define SO_TIMESTAMPNS 35 >>> #define SCM_TIMESTAMPNS SO_TIMESTAMPNS >>> -- >>> 2.18.0 >> >> Should we perhaps do this under the SO_DEBUG conditional like all the >> other SO_* that vary by arch? Doing so would require adding >> definitions to the other weird archs (ibm ones) but might be cleaner >> in the top-level header -- I'm not sure. >> >> Rich >> > > > That would actually make sense. I did not research what SO_PEERSEC even is > before I sent the patch; only know I noticed that both the constants > defined under SO_DEBUG and the others below the #endif are SOL_SOCKET, so > it would be more consistent to move it under SO_DEBUG as well. > > Matthias > Should I send an updated patch, or are you going to fix it up yourself? Matthias [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-26 18:21 ` Matthias Schiffer @ 2018-06-26 20:05 ` Rich Felker 2018-06-26 20:20 ` Matthias Schiffer 0 siblings, 1 reply; 7+ messages in thread From: Rich Felker @ 2018-06-26 20:05 UTC (permalink / raw) To: musl On Tue, Jun 26, 2018 at 08:21:38PM +0200, Matthias Schiffer wrote: > On 06/25/2018 07:52 PM, Matthias Schiffer wrote: > > On 06/24/2018 05:30 PM, Rich Felker wrote: > >> On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: > >>> Differing from all other archs supported by musl, MIPS defines SO_PEERSEC > >>> to 30 instead of 31. > >>> > >>> Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> > >>> --- > >>> arch/mips/bits/socket.h | 2 ++ > >>> arch/mips64/bits/socket.h | 2 ++ > >>> arch/mipsn32/bits/socket.h | 2 ++ > >>> include/sys/socket.h | 3 +++ > >>> 4 files changed, 9 insertions(+) > >>> > >>> diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h > >>> index 191ebdb5a418..39c42b822ac3 100644 > >>> --- a/arch/mips/bits/socket.h > >>> +++ b/arch/mips/bits/socket.h > >>> @@ -48,5 +48,7 @@ struct cmsghdr { > >>> #define SO_SNDBUFFORCE 31 > >>> #define SO_RCVBUFFORCE 33 > >>> > >>> +#define SO_PEERSEC 30 > >>> + > >>> #define SOCK_NONBLOCK 0200 > >>> #define SOCK_CLOEXEC 02000000 > >>> diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h > >>> index cf801797beb0..39b764df4c62 100644 > >>> --- a/arch/mips64/bits/socket.h > >>> +++ b/arch/mips64/bits/socket.h > >>> @@ -64,5 +64,7 @@ struct cmsghdr { > >>> #define SO_SNDBUFFORCE 31 > >>> #define SO_RCVBUFFORCE 33 > >>> > >>> +#define SO_PEERSEC 30 > >>> + > >>> #define SOCK_NONBLOCK 0200 > >>> #define SOCK_CLOEXEC 02000000 > >>> diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h > >>> index 191ebdb5a418..39c42b822ac3 100644 > >>> --- a/arch/mipsn32/bits/socket.h > >>> +++ b/arch/mipsn32/bits/socket.h > >>> @@ -48,5 +48,7 @@ struct cmsghdr { > >>> #define SO_SNDBUFFORCE 31 > >>> #define SO_RCVBUFFORCE 33 > >>> > >>> +#define SO_PEERSEC 30 > >>> + > >>> #define SOCK_NONBLOCK 0200 > >>> #define SOCK_CLOEXEC 02000000 > >>> diff --git a/include/sys/socket.h b/include/sys/socket.h > >>> index 507da5cc2a40..6b6cf2fc3988 100644 > >>> --- a/include/sys/socket.h > >>> +++ b/include/sys/socket.h > >>> @@ -203,7 +203,10 @@ struct linger { > >>> #define SO_TIMESTAMP 29 > >>> #define SCM_TIMESTAMP SO_TIMESTAMP > >>> > >>> +#ifndef SO_PEERSEC > >>> #define SO_PEERSEC 31 > >>> +#endif > >>> + > >>> #define SO_PASSSEC 34 > >>> #define SO_TIMESTAMPNS 35 > >>> #define SCM_TIMESTAMPNS SO_TIMESTAMPNS > >>> -- > >>> 2.18.0 > >> > >> Should we perhaps do this under the SO_DEBUG conditional like all the > >> other SO_* that vary by arch? Doing so would require adding > >> definitions to the other weird archs (ibm ones) but might be cleaner > >> in the top-level header -- I'm not sure. > >> > >> Rich > >> > > > > > > That would actually make sense. I did not research what SO_PEERSEC even is > > before I sent the patch; only know I noticed that both the constants > > defined under SO_DEBUG and the others below the #endif are SOL_SOCKET, so > > it would be more consistent to move it under SO_DEBUG as well. > > Should I send an updated patch, or are you going to fix it up yourself? I'm doing it now. Thanks. I think we're going to find that there are more SO_* that might vary by arch, especially if we ever add sparc. What I'd kind of like to eventually do is get rid of the definitions in sys/socket.h itself and always have them all in bits, with most archs sharing the arch/generic version of the bits header. However that doesn't work with the current bits/socket.h since the generic definitions of msghdr and cmsghdr don't work on 64-bit. Perhaps we should introduce a new bits/sockopt.h (but this imposes an extra file open/parse for every #include <sys/socket.h>) or find some way to avoid the gratuitous difference (maybe alltypes.h could somehow provide padding definitions for a generic definition of [c]msghdr to use). Anyway I won't delay the immediate bugfix with what-ifs about future direction. Rich ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-26 20:05 ` Rich Felker @ 2018-06-26 20:20 ` Matthias Schiffer 2018-06-26 20:28 ` Rich Felker 0 siblings, 1 reply; 7+ messages in thread From: Matthias Schiffer @ 2018-06-26 20:20 UTC (permalink / raw) To: musl [-- Attachment #1.1: Type: text/plain, Size: 4314 bytes --] On 06/26/2018 10:05 PM, Rich Felker wrote: > On Tue, Jun 26, 2018 at 08:21:38PM +0200, Matthias Schiffer wrote: >> On 06/25/2018 07:52 PM, Matthias Schiffer wrote: >>> On 06/24/2018 05:30 PM, Rich Felker wrote: >>>> On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: >>>>> Differing from all other archs supported by musl, MIPS defines SO_PEERSEC >>>>> to 30 instead of 31. >>>>> >>>>> Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> >>>>> --- >>>>> arch/mips/bits/socket.h | 2 ++ >>>>> arch/mips64/bits/socket.h | 2 ++ >>>>> arch/mipsn32/bits/socket.h | 2 ++ >>>>> include/sys/socket.h | 3 +++ >>>>> 4 files changed, 9 insertions(+) >>>>> >>>>> diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h >>>>> index 191ebdb5a418..39c42b822ac3 100644 >>>>> --- a/arch/mips/bits/socket.h >>>>> +++ b/arch/mips/bits/socket.h >>>>> @@ -48,5 +48,7 @@ struct cmsghdr { >>>>> #define SO_SNDBUFFORCE 31 >>>>> #define SO_RCVBUFFORCE 33 >>>>> >>>>> +#define SO_PEERSEC 30 >>>>> + >>>>> #define SOCK_NONBLOCK 0200 >>>>> #define SOCK_CLOEXEC 02000000 >>>>> diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h >>>>> index cf801797beb0..39b764df4c62 100644 >>>>> --- a/arch/mips64/bits/socket.h >>>>> +++ b/arch/mips64/bits/socket.h >>>>> @@ -64,5 +64,7 @@ struct cmsghdr { >>>>> #define SO_SNDBUFFORCE 31 >>>>> #define SO_RCVBUFFORCE 33 >>>>> >>>>> +#define SO_PEERSEC 30 >>>>> + >>>>> #define SOCK_NONBLOCK 0200 >>>>> #define SOCK_CLOEXEC 02000000 >>>>> diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h >>>>> index 191ebdb5a418..39c42b822ac3 100644 >>>>> --- a/arch/mipsn32/bits/socket.h >>>>> +++ b/arch/mipsn32/bits/socket.h >>>>> @@ -48,5 +48,7 @@ struct cmsghdr { >>>>> #define SO_SNDBUFFORCE 31 >>>>> #define SO_RCVBUFFORCE 33 >>>>> >>>>> +#define SO_PEERSEC 30 >>>>> + >>>>> #define SOCK_NONBLOCK 0200 >>>>> #define SOCK_CLOEXEC 02000000 >>>>> diff --git a/include/sys/socket.h b/include/sys/socket.h >>>>> index 507da5cc2a40..6b6cf2fc3988 100644 >>>>> --- a/include/sys/socket.h >>>>> +++ b/include/sys/socket.h >>>>> @@ -203,7 +203,10 @@ struct linger { >>>>> #define SO_TIMESTAMP 29 >>>>> #define SCM_TIMESTAMP SO_TIMESTAMP >>>>> >>>>> +#ifndef SO_PEERSEC >>>>> #define SO_PEERSEC 31 >>>>> +#endif >>>>> + >>>>> #define SO_PASSSEC 34 >>>>> #define SO_TIMESTAMPNS 35 >>>>> #define SCM_TIMESTAMPNS SO_TIMESTAMPNS >>>>> -- >>>>> 2.18.0 >>>> >>>> Should we perhaps do this under the SO_DEBUG conditional like all the >>>> other SO_* that vary by arch? Doing so would require adding >>>> definitions to the other weird archs (ibm ones) but might be cleaner >>>> in the top-level header -- I'm not sure. >>>> >>>> Rich >>>> >>> >>> >>> That would actually make sense. I did not research what SO_PEERSEC even is >>> before I sent the patch; only know I noticed that both the constants >>> defined under SO_DEBUG and the others below the #endif are SOL_SOCKET, so >>> it would be more consistent to move it under SO_DEBUG as well. >> >> Should I send an updated patch, or are you going to fix it up yourself? > > I'm doing it now. Thanks. I think we're going to find that there are > more SO_* that might vary by arch, especially if we ever add sparc. > > What I'd kind of like to eventually do is get rid of the definitions > in sys/socket.h itself and always have them all in bits, with most > archs sharing the arch/generic version of the bits header. However > that doesn't work with the current bits/socket.h since the generic > definitions of msghdr and cmsghdr don't work on 64-bit. Perhaps we > should introduce a new bits/sockopt.h (but this imposes an extra file > open/parse for every #include <sys/socket.h>) or find some way to > avoid the gratuitous difference (maybe alltypes.h could somehow > provide padding definitions for a generic definition of [c]msghdr to > use). > > Anyway I won't delay the immediate bugfix with what-ifs about future > direction. > > Rich > Thanks. It seems you missed to add SO_PEERSEC to powerpc{,64} and s390x though, which also define SO_DEBUG. Matthias [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS 2018-06-26 20:20 ` Matthias Schiffer @ 2018-06-26 20:28 ` Rich Felker 0 siblings, 0 replies; 7+ messages in thread From: Rich Felker @ 2018-06-26 20:28 UTC (permalink / raw) To: musl On Tue, Jun 26, 2018 at 10:20:53PM +0200, Matthias Schiffer wrote: > On 06/26/2018 10:05 PM, Rich Felker wrote: > > On Tue, Jun 26, 2018 at 08:21:38PM +0200, Matthias Schiffer wrote: > >> On 06/25/2018 07:52 PM, Matthias Schiffer wrote: > >>> On 06/24/2018 05:30 PM, Rich Felker wrote: > >>>> On Sun, Jun 24, 2018 at 05:18:39PM +0200, Matthias Schiffer wrote: > >>>>> Differing from all other archs supported by musl, MIPS defines SO_PEERSEC > >>>>> to 30 instead of 31. > >>>>> > >>>>> Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com> > >>>>> --- > >>>>> arch/mips/bits/socket.h | 2 ++ > >>>>> arch/mips64/bits/socket.h | 2 ++ > >>>>> arch/mipsn32/bits/socket.h | 2 ++ > >>>>> include/sys/socket.h | 3 +++ > >>>>> 4 files changed, 9 insertions(+) > >>>>> > >>>>> diff --git a/arch/mips/bits/socket.h b/arch/mips/bits/socket.h > >>>>> index 191ebdb5a418..39c42b822ac3 100644 > >>>>> --- a/arch/mips/bits/socket.h > >>>>> +++ b/arch/mips/bits/socket.h > >>>>> @@ -48,5 +48,7 @@ struct cmsghdr { > >>>>> #define SO_SNDBUFFORCE 31 > >>>>> #define SO_RCVBUFFORCE 33 > >>>>> > >>>>> +#define SO_PEERSEC 30 > >>>>> + > >>>>> #define SOCK_NONBLOCK 0200 > >>>>> #define SOCK_CLOEXEC 02000000 > >>>>> diff --git a/arch/mips64/bits/socket.h b/arch/mips64/bits/socket.h > >>>>> index cf801797beb0..39b764df4c62 100644 > >>>>> --- a/arch/mips64/bits/socket.h > >>>>> +++ b/arch/mips64/bits/socket.h > >>>>> @@ -64,5 +64,7 @@ struct cmsghdr { > >>>>> #define SO_SNDBUFFORCE 31 > >>>>> #define SO_RCVBUFFORCE 33 > >>>>> > >>>>> +#define SO_PEERSEC 30 > >>>>> + > >>>>> #define SOCK_NONBLOCK 0200 > >>>>> #define SOCK_CLOEXEC 02000000 > >>>>> diff --git a/arch/mipsn32/bits/socket.h b/arch/mipsn32/bits/socket.h > >>>>> index 191ebdb5a418..39c42b822ac3 100644 > >>>>> --- a/arch/mipsn32/bits/socket.h > >>>>> +++ b/arch/mipsn32/bits/socket.h > >>>>> @@ -48,5 +48,7 @@ struct cmsghdr { > >>>>> #define SO_SNDBUFFORCE 31 > >>>>> #define SO_RCVBUFFORCE 33 > >>>>> > >>>>> +#define SO_PEERSEC 30 > >>>>> + > >>>>> #define SOCK_NONBLOCK 0200 > >>>>> #define SOCK_CLOEXEC 02000000 > >>>>> diff --git a/include/sys/socket.h b/include/sys/socket.h > >>>>> index 507da5cc2a40..6b6cf2fc3988 100644 > >>>>> --- a/include/sys/socket.h > >>>>> +++ b/include/sys/socket.h > >>>>> @@ -203,7 +203,10 @@ struct linger { > >>>>> #define SO_TIMESTAMP 29 > >>>>> #define SCM_TIMESTAMP SO_TIMESTAMP > >>>>> > >>>>> +#ifndef SO_PEERSEC > >>>>> #define SO_PEERSEC 31 > >>>>> +#endif > >>>>> + > >>>>> #define SO_PASSSEC 34 > >>>>> #define SO_TIMESTAMPNS 35 > >>>>> #define SCM_TIMESTAMPNS SO_TIMESTAMPNS > >>>>> -- > >>>>> 2.18.0 > >>>> > >>>> Should we perhaps do this under the SO_DEBUG conditional like all the > >>>> other SO_* that vary by arch? Doing so would require adding > >>>> definitions to the other weird archs (ibm ones) but might be cleaner > >>>> in the top-level header -- I'm not sure. > >>>> > >>>> Rich > >>>> > >>> > >>> > >>> That would actually make sense. I did not research what SO_PEERSEC even is > >>> before I sent the patch; only know I noticed that both the constants > >>> defined under SO_DEBUG and the others below the #endif are SOL_SOCKET, so > >>> it would be more consistent to move it under SO_DEBUG as well. > >> > >> Should I send an updated patch, or are you going to fix it up yourself? > > > > I'm doing it now. Thanks. I think we're going to find that there are > > more SO_* that might vary by arch, especially if we ever add sparc. > > > > What I'd kind of like to eventually do is get rid of the definitions > > in sys/socket.h itself and always have them all in bits, with most > > archs sharing the arch/generic version of the bits header. However > > that doesn't work with the current bits/socket.h since the generic > > definitions of msghdr and cmsghdr don't work on 64-bit. Perhaps we > > should introduce a new bits/sockopt.h (but this imposes an extra file > > open/parse for every #include <sys/socket.h>) or find some way to > > avoid the gratuitous difference (maybe alltypes.h could somehow > > provide padding definitions for a generic definition of [c]msghdr to > > use). > > > > Anyway I won't delay the immediate bugfix with what-ifs about future > > direction. > > > > Rich > > > > Thanks. It seems you missed to add SO_PEERSEC to powerpc{,64} and s390x > though, which also define SO_DEBUG. Oops, will fix right away. Rich ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-06-26 20:28 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-06-24 15:18 [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS Matthias Schiffer 2018-06-24 15:30 ` Rich Felker 2018-06-25 17:52 ` Matthias Schiffer 2018-06-26 18:21 ` Matthias Schiffer 2018-06-26 20:05 ` Rich Felker 2018-06-26 20:20 ` Matthias Schiffer 2018-06-26 20:28 ` Rich Felker
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/musl/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).