On Wed, Feb 01, 2017 at 10:09:14PM +1100, Jonathan Gray wrote:
> On Mon, Jan 30, 2017 at 07:28:03PM +0100, Stefan Kempf wrote:
> > Jonathan Gray wrote:
> > > Base gcc4 changes the defaults to set -Wno-pointer-sign.
> > > Base clang does not, I'm not sure where in the llvm code to do so.
> > > Base gcc3 does not handle -Wno-pointer-sign.
> >  
> > I think this should turn off -Wpointer-sign off by default.
> > Passing -Wpointer-sign on the command line enables it.
> > Not suitable for upstreaming though.
> 
> Thanks, your patch seems to be against the older version of llvm
> but this works as expected with 4.0 rc1 in tree on arm64.
> 
> ok jsg@

Can we get this in?  Trying to reduce Ms required to build arm64.

> 
> > 
> > Index: gnu/llvm/tools/clang//include/clang/Basic/DiagnosticSemaKinds.td
> > ===================================================================
> > RCS file: 
> > /cvs/src/gnu/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td,v
> > retrieving revision 1.1.1.2
> > diff -u -p -r1.1.1.2 DiagnosticSemaKinds.td
> > --- gnu/llvm/tools/clang//include/clang/Basic/DiagnosticSemaKinds.td        
> > 14 Jan 2017 19:55:48 -0000      1.1.1.2
> > +++ gnu/llvm/tools/clang//include/clang/Basic/DiagnosticSemaKinds.td        
> > 30 Jan 2017 18:22:22 -0000
> > @@ -6332,7 +6332,7 @@ def ext_typecheck_convert_incompatible_p
> >    "sending to parameter of different type}0,1"
> >    "|%diff{casting $ to type $|casting between types}0,1}2"
> >    " converts between pointers to integer types with different sign">,
> > -  InGroup<DiagGroup<"pointer-sign">>;
> > +  InGroup<DiagGroup<"pointer-sign">>, DefaultIgnore;
> >  def ext_typecheck_convert_incompatible_pointer : ExtWarn<
> >    "incompatible pointer types "
> >    "%select{%diff{assigning to $ from $|assigning to different types}0,1"
> >  
> > > Below is a patch to add -Wno-pointer-sign to places that use use
> > > -Werror and trigger -Wpointer-sign warnings which breaks the build
> > > when building with clang.  Based on an earlier patch from patrick@
> > > 
> > > Though really the default gcc4 and clang behaviour should be the
> > > same one way or the other.
> > >
> > > Index: lib/libcrypto/Makefile
> > > ===================================================================
> > > RCS file: /cvs/src/lib/libcrypto/Makefile,v
> > > retrieving revision 1.14
> > > diff -u -p -r1.14 Makefile
> > > --- lib/libcrypto/Makefile        21 Jan 2017 09:38:58 -0000      1.14
> > > +++ lib/libcrypto/Makefile        29 Jan 2017 05:10:50 -0000
> > > @@ -14,6 +14,9 @@ CLEANFILES=${PC_FILES} ${VERSION_SCRIPT}
> > >  LCRYPTO_SRC=     ${.CURDIR}
> > >  
> > >  CFLAGS+= -Wall -Wundef -Werror
> > > +.if ${COMPILER_VERSION:L} != "gcc3"
> > > +CFLAGS+= -Wno-pointer-sign
> > > +.endif
> > >  
> > >  .if !defined(NOPIC)
> > >  CFLAGS+= -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_FUNOPEN
> > > Index: lib/librthread/Makefile
> > > ===================================================================
> > > RCS file: /cvs/src/lib/librthread/Makefile,v
> > > retrieving revision 1.43
> > > diff -u -p -r1.43 Makefile
> > > --- lib/librthread/Makefile       1 Jun 2016 04:34:18 -0000       1.43
> > > +++ lib/librthread/Makefile       29 Jan 2017 05:27:29 -0000
> > > @@ -1,11 +1,16 @@
> > >  #        $OpenBSD: Makefile,v 1.43 2016/06/01 04:34:18 tedu Exp $
> > >  
> > > +.include <bsd.own.mk>
> > > +
> > >  LIB=pthread
> > >  LIBCSRCDIR=      ${.CURDIR}/../libc
> > >  
> > >  CFLAGS+=-Wall -g -Werror -Wshadow
> > >  CFLAGS+=-Werror-implicit-function-declaration
> > >  CFLAGS+=-Wsign-compare
> > > +.if ${COMPILER_VERSION:L} != "gcc3"
> > > +CFLAGS+= -Wno-pointer-sign
> > > +.endif
> > >  CFLAGS+=-I${.CURDIR} -include namespace.h \
> > >   -I${LIBCSRCDIR}/arch/${MACHINE_CPU} -I${LIBCSRCDIR}/include
> > >  CDIAGFLAGS=
> > > Index: lib/libtls/Makefile
> > > ===================================================================
> > > RCS file: /cvs/src/lib/libtls/Makefile,v
> > > retrieving revision 1.30
> > > diff -u -p -r1.30 Makefile
> > > --- lib/libtls/Makefile   25 Jan 2017 23:53:18 -0000      1.30
> > > +++ lib/libtls/Makefile   29 Jan 2017 05:32:43 -0000
> > > @@ -6,6 +6,9 @@ SUBDIR=   man
> > >  .endif
> > >  
> > >  CFLAGS+= -Wall -Werror -Wimplicit
> > > +.if ${COMPILER_VERSION:L} != "gcc3"
> > > +CFLAGS+= -Wno-pointer-sign
> > > +.endif
> > >  CFLAGS+= -DLIBRESSL_INTERNAL
> > >  
> > >  CLEANFILES= ${VERSION_SCRIPT}
> > > Index: usr.sbin/ocspcheck/Makefile
> > > ===================================================================
> > > RCS file: /cvs/src/usr.sbin/ocspcheck/Makefile,v
> > > retrieving revision 1.2
> > > diff -u -p -r1.2 Makefile
> > > --- usr.sbin/ocspcheck/Makefile   24 Jan 2017 09:25:27 -0000      1.2
> > > +++ usr.sbin/ocspcheck/Makefile   29 Jan 2017 05:27:10 -0000
> > > @@ -1,5 +1,7 @@
> > >  #        $OpenBSD: Makefile,v 1.2 2017/01/24 09:25:27 deraadt Exp $
> > >  
> > > +.include <bsd.own.mk>
> > > +
> > >  PROG=    ocspcheck
> > >  MAN=     ocspcheck.8
> > >  
> > > @@ -15,6 +17,9 @@ CFLAGS+= -Wshadow
> > >  CFLAGS+= -Wtrigraphs
> > >  CFLAGS+= -Wuninitialized
> > >  CFLAGS+= -Wunused
> > > +.if ${COMPILER_VERSION:L} != "gcc3"
> > > +CFLAGS+= -Wno-pointer-sign
> > > +.endif
> > >  
> > >  CFLAGS+= -DLIBRESSL_INTERNAL
> > >  
> > > 
> > 
> 

Reply via email to