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) {...@@ -64,6 +64,8 @@ static const char *get_host_os(void) {
64 return "linux";64 return "linux";
65#elif defined(__FreeBSD__)65#elif defined(__FreeBSD__)
66 return "freebsd";66 return "freebsd";
67#elif defined(__DragonFly__)
68 return "dragonfly";
67#elif defined(__HAIKU__)69#elif defined(__HAIKU__)
68 return "haiku";70 return "haiku";
69#else71#else
lib/std/c.zig+55-25
...@@ -2254,40 +2254,70 @@ pub const S = switch (native_os) {...@@ -2254,40 +2254,70 @@ pub const S = switch (native_os) {
2254 }2254 }
2255 },2255 },
2256 .dragonfly => struct {2256 .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
2257 pub const IREAD = IRUSR;2284 pub const IREAD = IRUSR;
2258 pub const IEXEC = IXUSR;2285 pub const IEXEC = IXUSR;
2259 pub const IWRITE = IWUSR;2286 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;
2272 pub const ISTXT = 512;2287 pub const ISTXT = 512;
2273 pub const BLKSIZE = 512;2288 pub const BLKSIZE = 512;
2274 pub const ISVTX = 512;2289
2275 pub const ISGID = 1024;2290 pub fn ISFIFO(m: u32) bool {
2276 pub const ISUID = 2048;2291 return m & IFMT == IFIFO;
2277 pub const IFIFO = 4096;2292 }
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;
22872293
2288 pub fn ISCHR(m: u32) bool {2294 pub fn ISCHR(m: u32) bool {
2289 return m & IFMT == IFCHR;2295 return m & IFMT == IFCHR;
2290 }2296 }
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 }
2291 },2321 },
2292 .haiku => struct {2322 .haiku => struct {
2293 pub const IFMT = 0o170000;2323 pub const IFMT = 0o170000;