gcc/gfortran will put executable "trampoline" code on the stack as a way to
implement procedures passed as arguments ("funargs" in the lingo) to other
procedures.Executable stacks are a *major* security breach, and should be avoided. In the wsjt Fortran code base there are 2 ways to avoid this, I think. (1) rewrite the fortran code involving dispatch through "callback" routines. I think this is doable, and the infrastructure to support this style of object oriented programming could probably be removed too. (2) If using GNU compilers, compile everywhere with -ftrampoline-impl=heap -z noexecstack which will put trampolines on the heap (dynamic memory) and tell the linker to tell the operating system to not make the stack executable. I *think* that gcc on x86/x64 is the only pair of compilers and targets that still puts trampolines on the stack. ARM, MacOsX and Windows probably use the heap all the time for trampolines.
_______________________________________________ wsjt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wsjt-devel
