Commit e9be6ec
committed
fix: add -Wl,-z,noexecstack to prevent dlopen failure on modern kernels
Modern kernels (Linux 6.x, OrbStack) reject dlopen of shared objects with
PT_GNU_STACK RWE (executable stack) flag. gfortran historically sets this flag
as a conservative measure for Fortran nested function trampolines.
Analysis confirmed zero risk: wsjtx_lib contains 414 Fortran source files with
no CONTAINS keyword, meaning no nested internal procedures and no trampolines.
Applied to both targets on Linux/Unix:
- wsjtx_core shared library (root cause, directly linked with gfortran)
- wsjtx_lib_nodejs .node module (inherits flag transitively)
Windows (MinGW) unaffected: flag is in UNIX-only branch and would be silently
ignored by PE format linker regardless.1 parent 9f7c31a commit e9be6ec
3 files changed
Lines changed: 9 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
294 | 298 | | |
295 | 299 | | |
296 | 300 | | |
| |||
416 | 420 | | |
417 | 421 | | |
418 | 422 | | |
419 | | - | |
| 423 | + | |
420 | 424 | | |
| 425 | + | |
421 | 426 | | |
422 | 427 | | |
423 | 428 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments