From 1a4dcf10fecf3fed7db0573fc859718e05e93f11 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 11 Sep 2018 17:42:03 -0400 Subject: [PATCH] darwin fixups --- src/os.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/os.cpp b/src/os.cpp index f3569ca3bb..9970c04c72 100644 --- a/src/os.cpp +++ b/src/os.cpp @@ -1657,6 +1657,14 @@ Error os_self_exe_shared_libs(ZigList &paths) { paths.resize(0); dl_iterate_phdr(self_exe_shared_libs_callback, &paths); return ErrorNone; +#elif defined(ZIG_OS_DARWIN) + paths.resize(0); + uint32_t img_count = _dyld_image_count(); + for (uint32_t i = 0; i != img_count; i += 1) { + const char *name = _dyld_get_image_name(i); + paths.append(buf_create_from_str(name)); + } + return ErrorNone; #else #error "unimplemented" #endif @@ -1750,7 +1758,7 @@ Error os_file_open_lock_rw(Buf *full_path, OsFile *out_file) { Error os_file_mtime(OsFile file, OsTimeStamp *mtime) { #if defined(ZIG_OS_WINDOWS) #error unimplemented -#else +#elif defined(ZIG_OS_LINUX) struct stat statbuf; if (fstat(file, &statbuf) == -1) return ErrorFileSystem; @@ -1758,6 +1766,16 @@ Error os_file_mtime(OsFile file, OsTimeStamp *mtime) { mtime->sec = statbuf.st_mtim.tv_sec; mtime->nsec = statbuf.st_mtim.tv_nsec; return ErrorNone; +#elif defined(ZIG_OS_DARWIN) + struct stat statbuf; + if (fstat(file, &statbuf) == -1) + return ErrorFileSystem; + + mtime->sec = statbuf.st_mtimespec.tv_sec; + mtime->nsec = statbuf.st_mtimespec.tv_nsec; + return ErrorNone; +#else +#error unimplemented #endif }