authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-27 20:05:40+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-09-27 20:05:40+02:00
log1b0bde0d8dedfef324ba16fba5aa3a24b5fb9bbd
treea2c80f94db95ad8e987f8066a0ace4abf0c4c4e1
parent032df7202a1721f4f931d6af0d2afe2da14d2174
parent035219132b1b644095bec85677acc6c0c5651593
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #25373 from mneumann/fix-dragonfly-bootstrap

Fix DragonFly bootstrap

2 files changed, 57 insertions(+), 25 deletions(-)

bootstrap.c+2
......@@ -64,6 +64,8 @@ static const char *get_host_os(void) {
6464 return "linux";
6565#elif defined(__FreeBSD__)
6666 return "freebsd";
67#elif defined(__DragonFly__)
68 return "dragonfly";
6769#elif defined(__HAIKU__)
6870 return "haiku";
6971#else
lib/std/c.zig+55-25
......@@ -2254,40 +2254,70 @@ pub const S = switch (native_os) {
22542254 }
22552255 },
22562256 .dragonfly => struct {
2257 pub const IFMT = 0o170000;
2258
2259 pub const IFIFO = 0o010000;
2260 pub const IFCHR = 0o020000;
2261 pub const IFDIR = 0o040000;
2262 pub const IFBLK = 0o060000;
2263 pub const IFREG = 0o100000;
2264 pub const IFLNK = 0o120000;
2265 pub const IFSOCK = 0o140000;
2266 pub const IFWHT = 0o160000;
2267
2268 pub const ISUID = 0o4000;
2269 pub const ISGID = 0o2000;
2270 pub const ISVTX = 0o1000;
2271 pub const IRWXU = 0o700;
2272 pub const IRUSR = 0o400;
2273 pub const IWUSR = 0o200;
2274 pub const IXUSR = 0o100;
2275 pub const IRWXG = 0o070;
2276 pub const IRGRP = 0o040;
2277 pub const IWGRP = 0o020;
2278 pub const IXGRP = 0o010;
2279 pub const IRWXO = 0o007;
2280 pub const IROTH = 0o004;
2281 pub const IWOTH = 0o002;
2282 pub const IXOTH = 0o001;
2283
22572284 pub const IREAD = IRUSR;
22582285 pub const IEXEC = IXUSR;
22592286 pub const IWRITE = IWUSR;
2260 pub const IXOTH = 1;
2261 pub const IWOTH = 2;
2262 pub const IROTH = 4;
2263 pub const IRWXO = 7;
2264 pub const IXGRP = 8;
2265 pub const IWGRP = 16;
2266 pub const IRGRP = 32;
2267 pub const IRWXG = 56;
2268 pub const IXUSR = 64;
2269 pub const IWUSR = 128;
2270 pub const IRUSR = 256;
2271 pub const IRWXU = 448;
22722287 pub const ISTXT = 512;
22732288 pub const BLKSIZE = 512;
2274 pub const ISVTX = 512;
2275 pub const ISGID = 1024;
2276 pub const ISUID = 2048;
2277 pub const IFIFO = 4096;
2278 pub const IFCHR = 8192;
2279 pub const IFDIR = 16384;
2280 pub const IFBLK = 24576;
2281 pub const IFREG = 32768;
2282 pub const IFDB = 36864;
2283 pub const IFLNK = 40960;
2284 pub const IFSOCK = 49152;
2285 pub const IFWHT = 57344;
2286 pub const IFMT = 61440;
2289
2290 pub fn ISFIFO(m: u32) bool {
2291 return m & IFMT == IFIFO;
2292 }
22872293
22882294 pub fn ISCHR(m: u32) bool {
22892295 return m & IFMT == IFCHR;
22902296 }
2297
2298 pub fn ISDIR(m: u32) bool {
2299 return m & IFMT == IFDIR;
2300 }
2301
2302 pub fn ISBLK(m: u32) bool {
2303 return m & IFMT == IFBLK;
2304 }
2305
2306 pub fn ISREG(m: u32) bool {
2307 return m & IFMT == IFREG;
2308 }
2309
2310 pub fn ISLNK(m: u32) bool {
2311 return m & IFMT == IFLNK;
2312 }
2313
2314 pub fn ISSOCK(m: u32) bool {
2315 return m & IFMT == IFSOCK;
2316 }
2317
2318 pub fn IWHT(m: u32) bool {
2319 return m & IFMT == IFWHT;
2320 }
22912321 },
22922322 .haiku => struct {
22932323 pub const IFMT = 0o170000;