mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-28 05:21:13 +00:00
12ef66c411
As per https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01220.html ia64 defaults to non-executable stacks in the Linux kernel (furthermore, the use of function descriptors means that trampolines for nested function pointers never need an executable stack). glibc however defines DEFAULT_STACK_PERMS to include PF_X for that architecture, meaning (a) elf/check-execstack fails and (b) (from code inspection, not tested, but this is why I think this is a user-visible bug) thread stacks are unnecessarily mapped with execute permission. This patch fixes the DEFAULT_STACK_PERMS definition in question. Tested (compilation only) with build-many-glibcs.py for ia64. This fixes the check-execstack failure. [BZ #22156] * sysdeps/ia64/stackinfo.h (DEFAULT_STACK_PERMS): Likewise.
34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
/* This file contains a bit of information about the stack allocation
|
|
of the processor. */
|
|
|
|
#ifndef _STACKINFO_H
|
|
#define _STACKINFO_H 1
|
|
|
|
#include <elf.h>
|
|
|
|
/* On IA-64 the stack grows down. The register stack is of no concern
|
|
here. */
|
|
#define _STACK_GROWS_DOWN 1
|
|
|
|
/* Default to a non-executable stack. */
|
|
#define DEFAULT_STACK_PERMS (PF_R|PF_W)
|
|
|
|
#endif /* stackinfo.h */
|