|
51 | 51 | import mx
|
52 | 52 | import mx_benchmark
|
53 | 53 | import mx_gate
|
| 54 | +import mx_native |
54 | 55 | import mx_unittest
|
55 | 56 | import mx_sdk
|
56 | 57 | import mx_subst
|
@@ -103,6 +104,15 @@ def is_collectiong_coverage():
|
103 | 104 | if os.environ.get("CI") == "true" and not os.environ.get("GRAALPYTEST_FAIL_FAST"):
|
104 | 105 | os.environ["GRAALPYTEST_FAIL_FAST"] = "true"
|
105 | 106 |
|
| 107 | + |
| 108 | +def wants_debug_build(flags=os.environ.get("CFLAGS", "")): |
| 109 | + return any(x in flags for x in ["-g", "-ggdb", "-ggdb3"]) |
| 110 | + |
| 111 | + |
| 112 | +if wants_debug_build(): |
| 113 | + mx_native.DefaultNativeProject.cflags = property(lambda self: self._cflags + ["-fPIC", "-ggdb3"]) |
| 114 | + |
| 115 | + |
106 | 116 | def _sibling(filename):
|
107 | 117 | return os.path.join(os.path.dirname(__file__), filename)
|
108 | 118 |
|
@@ -2447,14 +2457,20 @@ def run(self, args, env=None, cwd=None, **kwargs):
|
2447 | 2457 | # besides keeping custom sysroot, since our toolchain forwards to the system headers
|
2448 | 2458 | for var in ["CC", "CFLAGS", "LDFLAGS"]:
|
2449 | 2459 | value = env.pop(var, None)
|
2450 |
| - if value and "--sysroot" in value: |
2451 |
| - seen_sysroot = False |
2452 |
| - for element in shlex.split(value): |
2453 |
| - if element == "--sysroot": |
2454 |
| - seen_sysroot = True |
2455 |
| - elif seen_sysroot: |
2456 |
| - env[var] = f"--sysroot {element}" |
2457 |
| - break |
| 2460 | + new_value = [] |
| 2461 | + if value: |
| 2462 | + if wants_debug_build(value): |
| 2463 | + new_value.append("-ggdb3") |
| 2464 | + if "--sysroot" in value: |
| 2465 | + seen_sysroot = False |
| 2466 | + for element in shlex.split(value): |
| 2467 | + if element == "--sysroot": |
| 2468 | + seen_sysroot = True |
| 2469 | + elif seen_sysroot: |
| 2470 | + new_value.append(f"--sysroot {element}") |
| 2471 | + break |
| 2472 | + if new_value: |
| 2473 | + env[var] = " ".join(new_value) |
2458 | 2474 | return super().run(args, env=env, cwd=cwd, **kwargs)
|
2459 | 2475 |
|
2460 | 2476 | def _dev_headers_dir(self):
|
|
0 commit comments