diff --git a/build/config/linux/BUILD.gn b/build/config/linux/BUILD.gn
index ce9ae50..212e189 100644
--- a/build/config/linux/BUILD.gn
+++ b/build/config/linux/BUILD.gn
@@ -45,9 +45,14 @@
 }
 
 config("sysroot") {
-  cflags = [ "--sysroot=$sysroot" ]
+  cflags = [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
   ldflags = cflags
   asmflags = cflags
+
+  rustflags = []
+  foreach(flag, ldflags) {
+    rustflags += [ "-Clink-arg=$flag" ]
+  }
 }
 
 config("target") {
diff --git a/src/bin/config_parser/test_source_generator_for_all_projects.py b/src/bin/config_parser/test_source_generator_for_all_projects.py
index 4eb0581..22a1e3a 100755
--- a/src/bin/config_parser/test_source_generator_for_all_projects.py
+++ b/src/bin/config_parser/test_source_generator_for_all_projects.py
@@ -28,7 +28,7 @@
 RUSTC = os.path.join(SYSROOT_BIN, 'rustc')
 GO_BIN = os.path.join(SRC_ROOT_DIR, 'sysroot', 'golang', 'bin', 'go')
 DART = os.path.join(SYSROOT_BIN, 'dart')
-
+LINUX_SYSROOT = os.path.join(SRC_ROOT_DIR, 'sysroot')
 
 def main():
   customers = []
@@ -66,32 +66,43 @@
           src = tempfile.NamedTemporaryFile(suffix='.hpp')
           src.write(out1)
           src.flush()
-          compile = subprocess.Popen([CLANG, '-std=c++17', src.name])
+          cmd = [CLANG, '-std=c++17']
+          if sys.platform == 'linux':
+              cmd += ['--sysroot=' + LINUX_SYSROOT]
+          cmd += [src.name]
+          compile = subprocess.Popen(cmd)
         elif format == 'rust':
           src = tempfile.NamedTemporaryFile(
               prefix=project['project_name'], suffix='.rs')
           src.write(out1)
           src.flush()
           tmpdir = tempfile.TemporaryDirectory()
-          subprocess.run([
+          cmd = [
               RUSTC, '--out-dir', tmpdir.name, '--edition=2018',
-              '--crate-type=lib', '--crate-name=cobalt_client',
-              os.path.join(SRC_ROOT_DIR, 'src', 'lib', 'client', 'rust', 'src',
-                           'lib.rs')
-          ],
-                         check=True)
-          compile = subprocess.Popen([
+              '--crate-type=lib', '--crate-name=cobalt_client'
+          ]
+          if sys.platform == 'linux':
+              cmd += ['-Clink-arg=--sysroot=' + LINUX_SYSROOT]
+          cmd += [os.path.join(SRC_ROOT_DIR, 'src', 'lib', 'client', 'rust', 'src', 'lib.rs')]
+          subprocess.run(cmd, check=True)
+          compile_cmd = [
               RUSTC, '--out-dir', tmpdir.name, '--edition=2018', '--extern',
               'cobalt_client=%s/libcobalt_client.rlib' % tmpdir.name,
-              '--crate-type=lib', src.name
-          ],
+              '--crate-type=lib'
+          ]
+          if sys.platform == 'linux':
+              compile_cmd += ['-Clink-arg=--sysroot=' + LINUX_SYSROOT]
+          compile_cmd += [src.name]
+          compile = subprocess.Popen(compile_cmd,
                                      stderr=subprocess.STDOUT,
                                      stdout=subprocess.PIPE)
         elif format == 'go':
           src = tempfile.NamedTemporaryFile(suffix='.go')
           src.write(out1)
           src.flush()
-          compile = subprocess.Popen([GO_BIN, 'build', '-a', src.name])
+          env = os.environ.copy()
+          env['CGO_ENABLED'] = '0'
+          compile = subprocess.Popen([GO_BIN, 'build', '-a', src.name], env=env)
         elif format == 'dart':
           src = tempfile.NamedTemporaryFile(suffix='.dart')
           src.write(out1)
