Module Name: src
Committed By: kre
Date: Mon Jun 10 08:04:44 UTC 2024
Modified Files:
src: UPDATING
src/sbin/gpt: gpt.8 gpt.c
Log Message:
Note need to deal with old libarchive.so files in cdrom images when doing
an update build.
To generate a diff of this commit:
cvs rdiff -u -r1.351 -r1.352 src/UPDATING
cvs rdiff -u -r1.80 -r1.81 src/sbin/gpt/gpt.8
cvs rdiff -u -r1.87 -r1.88 src/sbin/gpt/gpt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/UPDATING
diff -u src/UPDATING:1.351 src/UPDATING:1.352
--- src/UPDATING:1.351 Mon Jun 10 01:53:35 2024
+++ src/UPDATING Mon Jun 10 08:04:44 2024
@@ -1,4 +1,4 @@
-$NetBSD: UPDATING,v 1.351 2024/06/10 01:53:35 gutteridge Exp $
+$NetBSD: UPDATING,v 1.352 2024/06/10 08:04:44 kre Exp $
This file (UPDATING) is intended to be a brief reference to recent
changes that might cause problems in the build process, and a guide for
@@ -19,6 +19,11 @@ See also: BUILDING, build.sh, Makefile.
Recent changes:
^^^^^^^^^^^^^^^
+20240610:
+ Update builds are likely to require removing the objdir for
+ distrib/<arch>/cdroms - or at least references to libarchive
+ from within there after the recent libarchive update.
+
20240504:
Update builds on x86 require making the `cleandir' target in
lib/libm, or deleting the objdir for lib/libm.
Index: src/sbin/gpt/gpt.8
diff -u src/sbin/gpt/gpt.8:1.80 src/sbin/gpt/gpt.8:1.81
--- src/sbin/gpt/gpt.8:1.80 Tue Nov 7 00:53:39 2023
+++ src/sbin/gpt/gpt.8 Mon Jun 10 08:04:44 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: gpt.8,v 1.80 2023/11/07 00:53:39 gutteridge Exp $
+.\" $NetBSD: gpt.8,v 1.81 2024/06/10 08:04:44 kre Exp $
.\"
.\" Copyright (c) 2002 Marcel Moolenaar
.\" All rights reserved.
@@ -629,6 +629,15 @@ and are not currently used by
They may be used by
.Nx
in the future.
+In addition, the notation
+.Ar bit Ns NN ,
+where NN is an integer in the range 48..63 (inclusive)
+allows any of the file-system type specific attribute bits
+to be set.
+This is a hack, and is likely to be changed in a later
+revision, when the ability to set (and decode) attributes
+that are specific to a specific owning partition type is
+added.
.\" ==== show ====
.It Nm Ic show Oo Fl aglu Oc Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc
The
Index: src/sbin/gpt/gpt.c
diff -u src/sbin/gpt/gpt.c:1.87 src/sbin/gpt/gpt.c:1.88
--- src/sbin/gpt/gpt.c:1.87 Wed Dec 13 06:51:57 2023
+++ src/sbin/gpt/gpt.c Mon Jun 10 08:04:44 2024
@@ -35,7 +35,7 @@
__FBSDID("$FreeBSD: src/sbin/gpt/gpt.c,v 1.16 2006/07/07 02:44:23 marcel Exp $");
#endif
#ifdef __RCSID
-__RCSID("$NetBSD: gpt.c,v 1.87 2023/12/13 06:51:57 mrg Exp $");
+__RCSID("$NetBSD: gpt.c,v 1.88 2024/06/10 08:04:44 kre Exp $");
#endif
#include <sys/param.h>
@@ -1221,8 +1221,30 @@ gpt_attr_get(gpt_t gpt, uint64_t *attrib
if (strcmp(gpt_attr[i].name, ptr) == 0)
break;
if (i == __arraycount(gpt_attr)) {
- gpt_warnx(gpt, "Unrecognized attribute `%s'", ptr);
- rv = -1;
+ long bit;
+ char *ep;
+
+ /*
+ * XXX
+ * Allow bitNN for 48 <= NN <= 63
+ * so the partition type specific bits
+ * can be accessed (set/cleared)
+ *
+ * This should be fixed so the partition type
+ * specific bits can be given names, which apply
+ * only for the appropriate partition type.
+ */
+ if (strncasecmp(ptr, "bit", 3) == 0 &&
+ isdigit((int)(unsigned char)ptr[3]) &&
+ (bit = strtol(ptr + 3, &ep, 10)) >= 48 &&
+ bit <= 63 &&
+ *ep == '\0') {
+ *attributes |= 1ULL << (unsigned)bit;
+ } else {
+ gpt_warnx(gpt,
+ "Unrecognized attribute `%s'", ptr);
+ rv = -1;
+ }
} else
*attributes |= gpt_attr[i].mask;
}
@@ -1274,7 +1296,7 @@ gpt_attr_list(char *buf, size_t len, uin
* (it does build however).
*/
if (gpt_attr[i].mask & (gpt_attr[i].mask - 1)) {
- /* This only happens in bits 46..63 */
+ /* This only happens in bits 48..63 */
/*
* xbuf is big enough for "=65535\0"