mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-11 13:50:06 +00:00
533bb7c2ae
The s390 ABI requires the stack pointer to be aligned at 8-bytes. When a program is invoked as an argument to the dynamic linker, _dl_start_user adjusts the stack to remove the dynamic linker arguments so that the program sees only its name and arguments. This may result in the stack being misaligned since each argument shift is only a word and not a double-word. This is now fixed shifting argv and envp down instead of shifting argc up and reclaiming the stack. This requires _dl_argv to be adjusted and hence, is no longer relro.
24 lines
1.0 KiB
C
24 lines
1.0 KiB
C
/* System-specific settings for dynamic linker code. S/390 version.
|
|
Copyright (C) 2014 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/>. */
|
|
|
|
#include_next <dl-sysdep.h>
|
|
|
|
/* _dl_argv cannot be attribute_relro, because _dl_start_user
|
|
might write into it after _dl_start returns. */
|
|
#define DL_ARGV_NOT_RELRO 1
|