https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117455
Bug ID: 117455
Summary: ld warning about executable stack, follows from PR
117434
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: jvdelisle at gcc dot gnu.org
Target Milestone: ---
When compiling the test case from PR117434 here:
module julienne_test_description_m
implicit none
abstract interface
logical function test_function_i()
end function
end interface
type test_description_t
procedure(test_function_i), pointer, nopass :: test_function_
end type
contains
type(test_description_t) function new_test_description(test_function)
procedure(test_function_i), intent(in), pointer :: test_function
new_test_description%test_function_ => test_function
end function
end module
use julienne_test_description_m
implicit none
type(test_description_t) test_description
test_description = new_test_description(test)
contains
logical function test()
test = .true.
end function
end
Tests here on x86-64-linux-gnu, Fedora 40.
Using the patch from 117434 applied the resulting executable runs with no
error. An warning occurs from ld when compiling:
$ gfc test1.f90
/usr/bin/ld: warning: /tmp/ccHdNOP8.o: requires executable stack (because the
.note.GNU-stack section is executable)
$ gfc -g test1.f90
/usr/bin/ld: warning: /tmp/ccxn0UoQ.o: requires executable stack (because the
.note.GNU-stack section is executable)
$ ./a.out
$ gfc -O test1.f90
$ gfc test1.f90
/usr/bin/ld: warning: /tmp/ccB9TQqp.o: requires executable stack (because the
.note.GNU-stack section is executable)
$ gfc -O0 test1.f90
/usr/bin/ld: warning: /tmp/cc84FpAG.o: requires executable stack (because the
.note.GNU-stack section is executable)
Evidently there is some difference between -O and -O0