summary refs log tree commit diff stats
path: root/lib/pure/os.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/os.nim')
-rwxr-xr-xlib/pure/os.nim7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/pure/os.nim b/lib/pure/os.nim
index 992b34c49..f7d22ca06 100755
--- a/lib/pure/os.nim
+++ b/lib/pure/os.nim
@@ -699,7 +699,10 @@ when defined(windows):
       discard FreeEnvironmentStringsA(env)
 
 else:
-  when defined(macosx):
+  const
+    useNSGetEnviron = defined(macosx) and 
+      (defined(createNimRtl) or defined(useNimRtl))
+  when useNSGetEnviron:
     # From the manual:
     # Shared libraries and bundles don't have direct access to environ, 
     # which is only available to the loader ld(1) when a complete program
@@ -716,7 +719,7 @@ else:
   proc getEnvVarsC() =
     # retrieves the variables of char** env of C's main proc
     if not envComputed:
-      when defined(macosx):
+      when useNSGetEnviron:
         var gEnv = NSGetEnviron()^
       var i = 0
       while True: