gcc/libgcc
Joseph Myers 938b6f1e5d Enable no-exec stacks for more targets using the Linux kernel.
Building glibc for many different configurations and running the
compilation parts of the testsuite runs into failures of the
elf/check-execstack test for hppa and microblaze.  Those
configurations default to executable stacks in the Linux kernel
because of VM_DATA_DEFAULT_FLAGS definitions including VM_EXEC
(VM_DATA_DEFAULT_FLAGS being the default definition of
VM_STACK_DEFAULT_FLAGS).

This fails because those configurations are not generating
.note.GNU-stack sections to indicate that programs do not need an
executable stack.  This patch fixes GCC to generate those sections on
those architectures (when configured for a target using the Linux
kernel), as it does on other architectures, together with adding that
section to libgcc .S sources, with the same code as used on other
architectures (or a variant using "#ifdef __linux__" instead of the
usual "#if defined(__ELF__) && defined(__linux__)" for microblaze, as
that configuration doesn't use elfos.h and so doesn't define __ELF__).

This suffices to eliminate that glibc test failure.  (For hppa, the
compilation parts of the glibc testsuite still fail because of the
separate elf/check-textrel failure.)

gcc:
	* config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
	* config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
	* config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
	Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
	conditionals inside the function instead of around it.  Call
	file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
	(TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.

libgcc:
	* config/microblaze/crti.S, config/microblaze/crtn.S,
	config/microblaze/divsi3.S, config/microblaze/moddi3.S,
	config/microblaze/modsi3.S, config/microblaze/muldi3_hard.S,
	config/microblaze/mulsi3.S,
	config/microblaze/stack_overflow_exit.S,
	config/microblaze/udivsi3.S, config/microblaze/umodsi3.S,
	config/pa/milli64.S: Add .note.GNU-stack section.

From-SVN: r253204
2017-09-26 17:35:53 +01:00
..
config Enable no-exec stacks for more targets using the Linux kernel. 2017-09-26 17:35:53 +01:00
soft-fp op-common.h (_FP_MUL, [...]): Add /* FALLTHRU */ comments. 2017-01-24 23:32:30 +01:00
ChangeLog Enable no-exec stacks for more targets using the Linux kernel. 2017-09-26 17:35:53 +01:00
config.host config.host (*-*-vxworks7): Widen scope to vxworks7*. 2017-09-01 13:43:01 +00:00
config.in PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris 2017-09-23 11:02:54 +00:00
configure PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris 2017-09-23 11:02:54 +00:00
configure.ac PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris 2017-09-23 11:02:54 +00:00
crtstuff.c Update copyright years. 2017-01-01 13:07:43 +01:00
dfp-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
dfp-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
divmod.c Update copyright years. 2017-01-01 13:07:43 +01:00
empty.mk
emutls.c Update copyright years. 2017-01-01 13:07:43 +01:00
enable-execute-stack-empty.c enable-execute-stack-empty.c (__enable_execute_stack): Add prototype. 2011-06-22 13:20:07 +02:00
enable-execute-stack-mprotect.c Update copyright years. 2017-01-01 13:07:43 +01:00
find-symver.awk Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsisf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsitf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsixf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
fp-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
fp-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
gbl-ctors.h Update copyright years. 2017-01-01 13:07:43 +01:00
gcov.h Introduce gcov.h header file (PR gcov-profile/80435). 2017-04-19 08:08:44 +00:00
gen-fixed.sh fixed-obj.mk: New file to support fine-grain fixed-point functions. 2007-09-17 22:18:13 +00:00
generic-morestack-thread.c Update copyright years. 2017-01-01 13:07:43 +01:00
generic-morestack.c Update copyright years. 2017-01-01 13:07:43 +01:00
generic-morestack.h Update copyright years. 2017-01-01 13:07:43 +01:00
gstdint.h dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. 2008-06-11 00:43:09 +01:00
gthr-posix.h Update copyright years. 2017-01-01 13:07:43 +01:00
gthr-single.h Update copyright years. 2017-01-01 13:07:43 +01:00
gthr.h Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc2.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc2.h Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc-std.ver.in Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-driver-system.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-driver.c Validate that destination gcov file does not exist for gcov-tool (PR gcov-profile/78783). 2017-04-18 07:24:20 +00:00
libgcov-interface.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-merge.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-profiler.c Speed-up indirect-call instrumentation 2017-06-09 12:54:53 +00:00
libgcov-util.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov.h re PR gcov-profile/81080 (target libgcov not built with large file support) 2017-06-21 07:01:34 +00:00
Makefile.in Introduce gcov.h header file (PR gcov-profile/80435). 2017-04-19 08:08:44 +00:00
memcmp.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memcpy.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memmove.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memset.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
mkheader.sh Update copyright years. 2017-01-01 13:07:43 +01:00
mkmap-flat.awk Update copyright years. 2017-01-01 13:07:43 +01:00
mkmap-symver.awk Update copyright years. 2017-01-01 13:07:43 +01:00
offloadstuff.c Update copyright years. 2017-01-01 13:07:43 +01:00
shared-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
siditi-object.mk Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
static-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
sync.c Update copyright years. 2017-01-01 13:07:43 +01:00
udivmod.c Update copyright years. 2017-01-01 13:07:43 +01:00
udivmodsi4.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-arm-common.inc Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-c.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-compat.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-compat.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2.c [AArch64] Only build & test pauth code for LP64 2017-01-20 21:03:41 +00:00
unwind-dw2.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-generic.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-pe.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-seh.c unwind-seh.c: Suppress warnings for RtlUnwindEx calls. 2017-03-02 11:00:28 +00:00
unwind-sjlj.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind.inc Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_end_preinit.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_end.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_start_preinit.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_start.c Update copyright years. 2017-01-01 13:07:43 +01:00