Date: Sat, 14 Nov 2015 03:26:30 +1100 (EST) From: Bruce Evans <brde@optusnet.com.au> To: David Chisnall <theraven@freebsd.org> Cc: Konstantin Belousov <kostikbel@gmail.com>, Hans Petter Selasky <hps@selasky.org>, cem@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r290711 - head/sys/ofed/drivers/infiniband/core Message-ID: <20151114024315.Y1146@besplex.bde.org> In-Reply-To: <0330812D-2FB6-4490-BFB3-67F9E66975A7@FreeBSD.org> References: <201511121012.tACACKTI075143@repo.freebsd.org> <CAG6CVpWKsa3SwX27JpxBeQDikeDWJXyUGWG8sS=9DvzbML9xcA@mail.gmail.com> <56459CEE.4090007@selasky.org> <20151113083543.GV2257@kib.kiev.ua> <0330812D-2FB6-4490-BFB3-67F9E66975A7@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 13 Nov 2015, David Chisnall wrote: > On 13 Nov 2015, at 08:35, Konstantin Belousov <kostikbel@gmail.com> wrote= : >> >> On Fri, Nov 13, 2015 at 09:18:54AM +0100, Hans Petter Selasky wrote: >>> Hi, >>> >>> On 11/12/15 18:17, Conrad Meyer wrote: >>>> These should cast through (u)intptr_t rather than unsigned long. >>> >>> This is Linux code, and they use "unsigned long" for pointer casts >>> everywhere, trying to not break their style. >>> >>> BTW: I added to linux_compat.c: >>> >>> CTASSERT(sizeof(unsigned long) =3D=3D sizeof(uintptr_t)); >>> >>> And it survived my "tinderbox" build and I was surprised! This is not surprising. "long" is broken on all supported systems since no 16-bit systems are supported and misimplementations with longs the same size as int or register_t are not unusable on 32+ bit systems. Longs should actually be long. That means that they should be longer than register_t, so they are also longer than pointers except on systems with large pointers like x86 with far pointers. >> FreeBSD (at least currently) runs on two kinds of ABIs: ILP32 and LP64. >> ILP32 means that sizeof(int) =3D=3D sizeof(long) =3D=3D sizeof(void *) = =3D=3D 4. >> For LP64, sizeof(long) =3D=3D sizeof(void *) =3D=3D 8, while sizeof(int)= =3D=3D 4. >> We do not support anything else. > > Note that this is not true of all downstreams. We currently have 128 and= 256-bit void*s with 64-bit longs on CHERI, and I believe that bde=E2=80=99= s version has 32-bit longs on all platforms. This kind of code *is* broken= for us and we=E2=80=99d greatly appreciate people not writing new code tha= t intentionally relies on undefined behaviour (round tripping a pointer via= any integer type other than intptr_t is undefined in C), when a well-defin= ed mechanism exists, just because Linux decides to do the wrong thing. Does CHERI have far pointers or fat pointers? Does it have newlines? 32-bit longs on all platforms is the last thing that I would have. I have them on 16-bit systems (but I last ran one of those in 2009 after getting it out of the attic). i386 with correctly-sized longs has 64-bit longs (IP32L64). I never finished that. The tiny amount of support for this needed in i386/include/_limits.h was removed in 2011 (r217128). gcc just needed to be configured with -DLONG_TYPE_SIZE=3D64. Other places mostly just need to use the correct type. Often the fix is simply to replace long by int or a typedefed type. i386/include/ _types.h was already correct or fixed (mostly by using fixed-width typedefed types). But sometimes there is an ABI problem. long in an API literally asks for pessimal double-width sizes, but sometimes what it needs is precisely 32 ot 64 bits. Bruce From owner-svn-src-head@freebsd.org Fri Nov 13 17:25:21 2015 Return-Path: <owner-svn-src-head@freebsd.org> Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB264A2E403; Fri, 13 Nov 2015 17:25:21 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 476EB107D; Fri, 13 Nov 2015 17:25:21 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tADHPKTk051556; Fri, 13 Nov 2015 17:25:20 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tADHPKip051554; Fri, 13 Nov 2015 17:25:20 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201511131725.tADHPKip051554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis <brd@FreeBSD.org> Date: Fri, 13 Nov 2015 17:25:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r290772 - in head/etc: . mtree X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current <svn-src-head.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-head>, <mailto:svn-src-head-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-head/> List-Post: <mailto:svn-src-head@freebsd.org> List-Help: <mailto:svn-src-head-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-head>, <mailto:svn-src-head-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 13 Nov 2015 17:25:21 -0000 Author: brd (doc,ports committer) Date: Fri Nov 13 17:25:20 2015 New Revision: 290772 URL: https://svnweb.freebsd.org/changeset/base/290772 Log: Fix a few files that where being incorrectly installed as one file. This was caused by the nvi upgrade fallout in r281994. So add the missing directories back to the mtree and add distrib-cleanup target to retroactively remove the files that should have been directories. Reviewed by: bdrewery Approved by: bdrewery Modified: head/etc/Makefile head/etc/mtree/BSD.usr.dist Modified: head/etc/Makefile ============================================================================== --- head/etc/Makefile Fri Nov 13 17:25:14 2015 (r290771) +++ head/etc/Makefile Fri Nov 13 17:25:20 2015 (r290772) @@ -365,7 +365,19 @@ MTREES+= mtree/BSD.sendmail.dist / MTREES+= ../${mtree} / .endfor -distrib-dirs: ${MTREES:N/*} +# Clean up some directories that where mistakenly created as files that +# should not have been as part of the nvi update in r281994. +# This should be removed after 11.0-RELEASE. +DISTRIB_CLEANUP_SHARE_FILES= ${SHAREDIR}/doc/usd/10.exref ${SHAREDIR}/doc/usd/11.edit +DISTRIB_CLEANUP_SHARE_FILES+= ${SHAREDIR}/doc/usd/12.vi ${SHAREDIR}/doc/usd/13.viref +distrib-cleanup: .PHONY + for file in ${DISTRIB_CLEANUP_SHARE_FILES}; do \ + if [ -f ${DESTDIR}/$${file} ]; then \ + rm -f ${DESTDIR}/$${file}; \ + fi; \ + done + +distrib-dirs: ${MTREES:N/*} distrib-cleanup .PHONY @set ${MTREES}; \ while test $$# -ge 2; do \ m=${.CURDIR}/$$1; \ Modified: head/etc/mtree/BSD.usr.dist ============================================================================== --- head/etc/mtree/BSD.usr.dist Fri Nov 13 17:25:14 2015 (r290771) +++ head/etc/mtree/BSD.usr.dist Fri Nov 13 17:25:20 2015 (r290772) @@ -286,6 +286,14 @@ .. 07.mail .. + 10.exref + .. + 11.edit + .. + 12.vi + .. + 13.viref + .. 18.msdiffs .. 19.memacros
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151114024315.Y1146>