From owner-svn-src-all@freebsd.org Sat Aug 8 16:27:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE3E13AFD9C for ; Sat, 8 Aug 2020 16:27:49 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound5a.ore.mailhop.org (outbound5a.ore.mailhop.org [44.233.67.66]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4BP71d3CL5z46nQ for ; Sat, 8 Aug 2020 16:27:49 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1596904066; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=AeqJt+oKgF35kxeZnmSQJ3ggIC81XJ/SrA81pfceY4PnUY7X6q9sqmZzi1WB0krQ6WjyZiiKBsMqD 5im8s9Swpsqc1X9+02Jev9ccuEQ0CQx+9GY4p1jmLEFXFd7JSljPD0X5wwG6Ri8xZVHdADj+AeUL+1 VJpe5bCaT97aSv4B1hxAiCV1RNX4dV5bwWheNPIalxisB4EJQzcFn/h+SSf62bnqVcYxrJ4VxWEp90 9Q/+uIM/6Ddd93wX5XzsWmRfnJj/lfiJiITzIKdmEKCwz7ANr5teY3RGwxiAlBmvKaVEVI8YQ0XHC8 w3Mu+XctPMgSTN274ty7nPdwk4uG51A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=evBCfD/xWjoLHAoM71/xESO01zfKbgd2AkaAJmlm5ok=; b=MKe9msF2h/HDJppYms9jS15RO65NIu3O9KHoqEtpReWjaWtK1nY7poXSMVB8nn1sjLHb1udfsuPfJ AyTMVELVy1pG4XyKvpDR7163/0iSCu4VsnRHjACpXMQlMYPt4qEUedL2FRBPd5bA+ZWlicpGwhD8Rd nqSMvxvck9e1I/lj9jBtZKf1W2inBtf+p2dqhIJbG+OLiALbtOcobFjKH2a0NXX3uaZhqkNFZljhDJ zoTWnUVrX9G7cc1o8mrW739wn6NpqU+bSxxNqgFlcCHbYolf6wyxjcpQwyP6kTVYIo3UVNgx5ilvVd ObkPOLVdzF1FXO9JwM4GGIRqk1OE4bg== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=evBCfD/xWjoLHAoM71/xESO01zfKbgd2AkaAJmlm5ok=; b=NLV/fqe0nYmWz0spCde1VxXvHEVuUfuzKtddLT6oemgs1A5R5zd2Fb0DwWnKC0Eg4g/hObmkk0omd Om6dwvMuX4aMSPujwBQg8rfd/ElS2mb3Vnf8YX6bN9a7J0xHLQ6TOtVCZEnDqKnMrbQYYyPSubMoOF nXfvePN31vdEyHrNxXTETlh3aqoqvUuoOq0PgwNpG8Kl8z4LXn9m4CIJg08vzjyaKQUr0l8/QeAysq dkC5vbsXwuFl047X7vGYDdBK2LRF+aeXfl59Wu8jmYzLt4i3nXw5a1acTZ2dnPm7nGayck5UrgNRtb GRibsbqgRee8uO4TCrYCr5BE9Bq/ULQ== X-MHO-RoutePath: aGlwcGll X-MHO-User: 161127e8-d994-11ea-a2ba-9f0c275c2f69 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (c-67-177-211-60.hsd1.co.comcast.net [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id 161127e8-d994-11ea-a2ba-9f0c275c2f69; Sat, 08 Aug 2020 16:27:44 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 078GRhCQ046578; Sat, 8 Aug 2020 10:27:43 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <11fb770c36b3da67506c9a8fb919490d038b98e5.camel@freebsd.org> Subject: Re: svn commit: r363992 - head/usr.sbin/pwd_mkdb From: Ian Lepore To: Alexander Richardson , Mateusz Guzik Cc: src-committers , svn-src-all , svn-src-head Date: Sat, 08 Aug 2020 10:27:43 -0600 In-Reply-To: References: <202008062046.076KkDSc013901@repo.freebsd.org> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4BP71d3CL5z46nQ X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [0.00 / 15.00]; ASN(0.00)[asn:16509, ipnet:44.224.0.0/11, country:US]; local_wl_from(0.00)[freebsd.org] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2020 16:27:50 -0000 On Sat, 2020-08-08 at 11:08 +0100, Alexander Richardson wrote: > On Sat, 8 Aug 2020 at 02:19, Mateusz Guzik wrote: > > > > This broke i386 builds: > > > > /usr/src/usr.bin/chpass/field.c:175:15: error: incompatible pointer > > types passing > > '_bootstrap_time_t *' (aka 'unsigned long long *') to > > parameter > > of type 'time_t *' > > (aka 'int *') [-Werror,-Wincompatible-pointer-types] > > if (!atot(p, &pw->pw_change)) > > ^~~~~~~~~~~~~~ > > /usr/src/usr.bin/chpass/chpass.h:67:27: note: passing argument to > > parameter here > > int atot(char *, time_t *); > > ^ > > /usr/src/usr.bin/chpass/field.c:185:15: error: incompatible pointer > > types passing > > '_bootstrap_time_t *' (aka 'unsigned long long *') to > > parameter > > of type 'time_t *' > > (aka 'int *') [-Werror,-Wincompatible-pointer-types] > > if (!atot(p, &pw->pw_expire)) > > ^~~~~~~~~~~~~~ > > /usr/src/usr.bin/chpass/chpass.h:67:27: note: passing argument to > > parameter here > > int atot(char *, time_t *); > > ^ > > Sorry, fixed in r364049. > It may be fixed in terms of compiling, but how about at runtime? _bootstrap_time_t is still typedef'd as 64-bit, but on i386 a time_t is a 32-bit type. -- Ian > > On 8/6/20, Alex Richardson wrote: > > > Author: arichardson > > > Date: Thu Aug 6 20:46:13 2020 > > > New Revision: 363992 > > > URL: https://svnweb.freebsd.org/changeset/base/363992 > > > > > > Log: > > > Allow bootstrapping pwd_mkdb on Linux/macOS > > > > > > We need to provide a struct passwd that is compatible with the > > > target > > > system and this is not the case when cross-building from > > > macOS/Linux. > > > It should also be a problem when bootstrapping for an i386 > > > target from a > > > FreeBSD amd64 host since time_t does not match across those > > > systems. > > > However, pwd_mkdb always truncates integer values to 32-bit so > > > this > > > difference does not result in different databases. > > > > > > Reviewed By: brooks > > > Differential Revision: https://reviews.freebsd.org/D25931 > > > > > > Added: > > > head/usr.sbin/pwd_mkdb/pwd.h (contents, props changed) > > > Modified: > > > head/usr.sbin/pwd_mkdb/Makefile > > > > > > Modified: head/usr.sbin/pwd_mkdb/Makefile > > > ================================================================= > > > ============= > > > --- head/usr.sbin/pwd_mkdb/Makefile Thu Aug 6 20:44:40 > > > 2020 (r363991) > > > +++ head/usr.sbin/pwd_mkdb/Makefile Thu Aug 6 20:46:13 > > > 2020 (r363992) > > > @@ -9,5 +9,8 @@ MAN= pwd_mkdb.8 > > > SRCS= pw_scan.c pwd_mkdb.c > > > > > > CFLAGS+= -I${SRCTOP}/lib/libc/gen # for pw_scan.h > > > +.if defined(BOOTSTRAPPING) > > > +CFLAGS+=-I${.CURDIR} > > > +.endif > > > > > > .include > > > > > > Added: head/usr.sbin/pwd_mkdb/pwd.h > > > ================================================================= > > > ============= > > > --- /dev/null 00:00:00 1970 (empty, because file is newly > > > added) > > > +++ head/usr.sbin/pwd_mkdb/pwd.h Thu Aug 6 20:46:13 > > > 2020 (r363992) > > > @@ -0,0 +1,66 @@ > > > +/*- > > > + * SPDX-License-Identifier: BSD-2-Clause > > > + * > > > + * Copyright 2018-2020 Alex Richardson > > > + * > > > + * This software was developed by SRI International and the > > > University of > > > + * Cambridge Computer Laboratory (Department of Computer Science > > > and > > > + * Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), > > > as part of > > > the > > > + * DARPA SSITH research programme. > > > + * > > > + * This software was developed by SRI International and the > > > University of > > > + * Cambridge Computer Laboratory under DARPA/AFRL contract > > > (FA8750-10-C-0237) > > > + * ("CTSRD"), as part of the DARPA CRASH research programme. > > > + * > > > + * Redistribution and use in source and binary forms, with or > > > without > > > + * modification, are permitted provided that the following > > > conditions > > > + * are met: > > > + * 1. Redistributions of source code must retain the above > > > copyright > > > + * notice, this list of conditions and the following > > > disclaimer. > > > + * 2. Redistributions in binary form must reproduce the above > > > copyright > > > + * notice, this list of conditions and the following > > > disclaimer in the > > > + * documentation and/or other materials provided with the > > > distribution. > > > + * > > > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS > > > IS'' AND > > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED > > > TO, THE > > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A > > > PARTICULAR > > > PURPOSE > > > + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS > > > BE LIABLE > > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > > CONSEQUENTIAL > > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > > > SUBSTITUTE GOODS > > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > > > INTERRUPTION) > > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > > > CONTRACT, > > > STRICT > > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > > > ARISING IN ANY > > > WAY > > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > > > POSSIBILITY OF > > > + * SUCH DAMAGE. > > > + * > > > + * $FreeBSD$ > > > + */ > > > + > > > +/* > > > + * When building pwd_mkdb we need to use target systems > > > definition of > > > + * struct passwd. This protects against future changes to struct > > > passwd > > > and > > > + * is essential to allow cross-building from Linux/macOS hosts > > > since the > > > + * structure is not compatible there. > > > + */ > > > +#include > > > +#include > > > +/* > > > + * Note: pwd_mkdb always stores uint32_t for all integer fields > > > (including > > > + * time_t!) so these definitions do not need to match > > > sys/sys/_types.h > > > + */ > > > +typedef uint32_t _bootstrap_gid_t; > > > +typedef uint32_t _bootstrap_uid_t; > > > +typedef uint64_t _bootstrap_time_t; > > > +#define _GID_T_DECLARED > > > +#define _TIME_T_DECLARED > > > +#define _UID_T_DECLARED > > > +#define _SIZE_T_DECLARED > > > + > > > +#define gid_t _bootstrap_gid_t > > > +#define uid_t _bootstrap_uid_t > > > +#define time_t _bootstrap_time_t > > > +#define passwd _bootstrap_passwd > > > +#include "../../include/pwd.h" > > > +#undef gid_t > > > +#undef uid_t > > > +#undef time_t > > > > > > > > > -- > > Mateusz Guzik