On 8/22/2022 3:39 AM, Martin Liška wrote:
On 4/28/22 18:10, Jeff Law via Gcc-patches wrote:
As I mentioned in the original thread, my change to pr94157_0 was an attempt to
avoid these warnings by passing a magic flag to the linker. Of course we may
not be using GNU ld. Or we may be on a non-elf target where the flag I used
doesn't exist. Or we may even be on a ELF target where those bits weren't
added to the linker (frv). Furthermore, we need fixes to all the nested
function tests as well.
So even though I initially resisted pruning the warning, that seems like the
best course of action. So this patch removes my recent change to pr94157_0 and
instead uses our pruning facilities.
I'll be pushing this to the trunk and gcc-12 branch.
Jeff
Hello.
I noticed this patch during my GCC test-suite run with mold linker. As you
likely now, the linker defaults
to non-executable stack and so one sees test-suite crashes (not only warnings)
[1].
So the question is if we want to explicitly fix all tests that rely on
exectack? Or is it something
we can assume as it's what GNU linkers do?
List of affected tests:
https://gist.githubusercontent.com/marxin/aadb75408a5a7867bf9fb26e879ce4c4/raw/aff2a0e4559e2dba8ea358520ca836eda6e7dc70/gistfile1.txt
The problem I ran into was that there wasn't a good way to determine
what to do, even if we know the test was going to need execstack. We
can't just blindly pass the magic flag to the linker -- at the least
that would need to be conditional on the linker being used as well as
the target as some of the ELF targets don't have the linker
infrastructure. And given that the linker can vary across gnu-ld, gold,
mold, it's a rats nest.
jeff