Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 345f8f34 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: revert ELF_ET_DYN_BASE base changes



This reverts commit a73dc537.

Reducing the base address for 31-bit PIE executables from
(STACK_TOP/3)*2 to 4MB broke several compat programs which
use -fpie to move the executable out of the lower 16MB.

Cc: <stable@vger.kernel.org> # 4.13+
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent fec37202
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -194,13 +194,14 @@ struct arch_elf_state {
#define CORE_DUMP_USE_REGSET
#define ELF_EXEC_PAGESIZE	PAGE_SIZE

/*
 * This is the base location for PIE (ET_DYN with INTERP) loads. On
 * 64-bit, this is raised to 4GB to leave the entire 32-bit address
 * space open for things that want to use the area for 32-bit pointers.
 */
#define ELF_ET_DYN_BASE		(is_compat_task() ? 0x000400000UL : \
						    0x100000000UL)
/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
   use of this is to invoke "./ld.so someprog" to test out a new version of
   the loader.  We need to make sure that it is out of the way of the program
   that it will "exec", and that there is sufficient room for the brk. 64-bit
   tasks are aligned to 4GB. */
#define ELF_ET_DYN_BASE (is_compat_task() ? \
				(STACK_TOP / 3 * 2) : \
				(STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))

/* This yields a mask that user programs can use to figure out what
   instruction set this CPU supports. */