From owner-freebsd-current@FreeBSD.ORG Sat Jul 21 21:16:33 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 30313106566C; Sat, 21 Jul 2012 21:16:33 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id BE97B8FC0C; Sat, 21 Jul 2012 21:16:32 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6LLGffg041606; Sun, 22 Jul 2012 00:16:41 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6LLGT0X041055; Sun, 22 Jul 2012 00:16:29 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6LLGSiV041054; Sun, 22 Jul 2012 00:16:28 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 22 Jul 2012 00:16:28 +0300 From: Konstantin Belousov To: Kim Culhan Message-ID: <20120721211628.GE2676@deviant.kiev.zoral.com.ua> References: <50097BF0.9010103@FreeBSD.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="c5s4KQzYKKhDo6IA" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: freebsd-current@freebsd.org, Dimitry Andric Subject: Re: -current build failure X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jul 2012 21:16:33 -0000 --c5s4KQzYKKhDo6IA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jul 21, 2012 at 04:00:45PM -0400, Kim Culhan wrote: > On Fri, Jul 20, 2012 at 11:40 AM, Dimitry Andric wrote: > > On 2012-07-20 16:49, Kim Culhan wrote: > >> Seeing this for r:238655 > > ... > >> In file included from /usr/src/sys/modules/dtrace/dtrace/../../../sys/= pcpu.h:44: > >> ./machine/pcpu.h:226:13: error: indirection of non-volatile null > >> pointer will be deleted, not trap > >> [-Werror,-Wnull-dereference] > >> : "m" (*(char *)OFFSETOF_CURTHREAD)); > >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > >> ./machine/pcpu.h:226:13: note: consider using __builtin_trap() or > >> qualifying pointer with 'volatile' > > > > That's indeed a valid warning from clang, since OFFSETOF_CURTHREAD is > > usually zero. It's probably due to recent work on dtrace. I'm not in > > the neighborhood of a FreeBSD box right now to verify, but can you > > please try to change the cast to "(volatile char *)"? That should fix > > the warning. >=20 > Yes it did, I know there are many considerations wrt to this warning. This should be equivalent to what you tried. Can you test build and boot resulting kernel with this patch ? diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h index 5d1fd4d..7b3c934 100644 --- a/sys/amd64/include/pcpu.h +++ b/sys/amd64/include/pcpu.h @@ -217,16 +217,22 @@ extern struct pcpu *pcpup; #define PCPU_SET(member, val) __PCPU_SET(pc_ ## member, val) =20 #define OFFSETOF_CURTHREAD 0 +#ifdef __clang__ +#define VOLATILE volatile +#else +#define VOLATILE +#endif static __inline __pure2 struct thread * __curthread(void) { struct thread *td; =20 __asm("movq %%gs:%1,%0" : "=3Dr" (td) - : "m" (*(char *)OFFSETOF_CURTHREAD)); + : "m" (*(VOLATILE char *)OFFSETOF_CURTHREAD)); return (td); } #define curthread (__curthread()) +#undef VOLATILE =20 #define OFFSETOF_CURPCB 32 static __inline __pure2 struct pcb * --c5s4KQzYKKhDo6IA Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAlALHCwACgkQC3+MBN1Mb4j0PACdEeKWFT3hrlscAx7F83QbwlII j2kAnREWLKZ9UJnpR0OJNPB5M9+NS0KM =EP8K -----END PGP SIGNATURE----- --c5s4KQzYKKhDo6IA--