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
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
constraints.md | Loading commit data... | |
elf.h | Loading commit data... | |
pa-64.h | Loading commit data... | |
pa-hpux.h | Loading commit data... | |
pa-hpux.opt | Loading commit data... | |
pa-hpux10.h | Loading commit data... | |
pa-hpux10.opt | Loading commit data... | |
pa-hpux1010.h | Loading commit data... | |
pa-hpux1010.opt | Loading commit data... | |
pa-hpux11.h | Loading commit data... | |
pa-hpux1111.h | Loading commit data... | |
pa-hpux1111.opt | Loading commit data... | |
pa-hpux1131.h | Loading commit data... | |
pa-hpux1131.opt | Loading commit data... | |
pa-linux.h | Loading commit data... | |
pa-modes.def | Loading commit data... | |
pa-openbsd.h | Loading commit data... | |
pa-opts.h | Loading commit data... | |
pa-protos.h | Loading commit data... | |
pa.c | Loading commit data... | |
pa.h | Loading commit data... | |
pa.md | Loading commit data... | |
pa.opt | Loading commit data... | |
pa32-linux.h | Loading commit data... | |
pa32-openbsd.h | Loading commit data... | |
pa32-regs.h | Loading commit data... | |
pa64-hpux.h | Loading commit data... | |
pa64-hpux.opt | Loading commit data... | |
pa64-linux.h | Loading commit data... | |
pa64-regs.h | Loading commit data... | |
pa64-start.h | Loading commit data... | |
predicates.md | Loading commit data... | |
som.h | Loading commit data... | |
t-dce-thr | Loading commit data... | |
t-linux | Loading commit data... |