Solaris PIE support
include/elf: * common.h (DF_1_STUB, DF_1_PIE): Define. ld: * emulparams/solaris2.sh (GENERATE_PIE_SCRIPT): Set to yes. * emultempl/elf32.em: Include ldlex.h. (gld${EMULATION_NAME}_handle_option) [GENERATE_PIE_SCRIPT] <OPTION_PIE>: Set DF_1_PIE. binutils: * readelf.c (process_dynamic_section): Handle DF_1_STUB, DF_1_PIE.
This commit is contained in:
parent
6dca4fd141
commit
5c383f0262
7 changed files with 38 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2015-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* readelf.c (process_dynamic_section): Handle DF_1_STUB, DF_1_PIE.
|
||||||
|
|
||||||
2015-09-10 Erik Ackermann <kurterikackermann@gmail.com>
|
2015-09-10 Erik Ackermann <kurterikackermann@gmail.com>
|
||||||
|
|
||||||
* strings.c: Add -s/--output-separator option to specify custom
|
* strings.c: Add -s/--output-separator option to specify custom
|
||||||
|
|
|
@ -9241,6 +9241,16 @@ process_dynamic_section (FILE * file)
|
||||||
printf (" SINGLETON");
|
printf (" SINGLETON");
|
||||||
val ^= DF_1_SINGLETON;
|
val ^= DF_1_SINGLETON;
|
||||||
}
|
}
|
||||||
|
if (val & DF_1_STUB)
|
||||||
|
{
|
||||||
|
printf (" STUB");
|
||||||
|
val ^= DF_1_STUB;
|
||||||
|
}
|
||||||
|
if (val & DF_1_PIE)
|
||||||
|
{
|
||||||
|
printf (" PIE");
|
||||||
|
val ^= DF_1_PIE;
|
||||||
|
}
|
||||||
if (val != 0)
|
if (val != 0)
|
||||||
printf (" %lx", val);
|
printf (" %lx", val);
|
||||||
puts ("");
|
puts ("");
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2015-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* common.h (DF_1_STUB, DF_1_PIE): Define.
|
||||||
|
|
||||||
2015-09-21 H.J. Lu <hongjiu.lu@intel.com>
|
2015-09-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* external.h (Elf64_External_Chdr): Change ch_type to 4 bytes
|
* external.h (Elf64_External_Chdr): Change ch_type to 4 bytes
|
||||||
|
|
|
@ -867,6 +867,8 @@
|
||||||
#define DF_1_SYMINTPOSE 0x00800000
|
#define DF_1_SYMINTPOSE 0x00800000
|
||||||
#define DF_1_GLOBAUDIT 0x01000000
|
#define DF_1_GLOBAUDIT 0x01000000
|
||||||
#define DF_1_SINGLETON 0x02000000
|
#define DF_1_SINGLETON 0x02000000
|
||||||
|
#define DF_1_STUB 0x04000000
|
||||||
|
#define DF_1_PIE 0x08000000
|
||||||
|
|
||||||
/* Flag values for the DT_FLAGS entry. */
|
/* Flag values for the DT_FLAGS entry. */
|
||||||
#define DF_ORIGIN (1 << 0)
|
#define DF_ORIGIN (1 << 0)
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2015-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* emulparams/solaris2.sh (GENERATE_PIE_SCRIPT): Set to yes.
|
||||||
|
|
||||||
|
* emultempl/elf32.em: Include ldlex.h.
|
||||||
|
(gld${EMULATION_NAME}_handle_option) [GENERATE_PIE_SCRIPT]
|
||||||
|
<OPTION_PIE>: Set DF_1_PIE.
|
||||||
|
|
||||||
2015-09-22 Alan Modra <amodra@gmail.com>
|
2015-09-22 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* ld.texinfo: Put --dotsyms/--no-dotsyms on separate lines.
|
* ld.texinfo: Put --dotsyms/--no-dotsyms on separate lines.
|
||||||
|
|
|
@ -8,3 +8,5 @@
|
||||||
# File, p.63.
|
# File, p.63.
|
||||||
TEXT_START_SYMBOLS='_START_ = .;'
|
TEXT_START_SYMBOLS='_START_ = .;'
|
||||||
OTHER_END_SYMBOLS='_END_ = .;'
|
OTHER_END_SYMBOLS='_END_ = .;'
|
||||||
|
# Beginning with Solaris 11.x and Solaris 12, there's PIE support.
|
||||||
|
GENERATE_PIE_SCRIPT=yes
|
||||||
|
|
|
@ -49,6 +49,7 @@ fragment <<EOF
|
||||||
#include "ldmain.h"
|
#include "ldmain.h"
|
||||||
#include "ldmisc.h"
|
#include "ldmisc.h"
|
||||||
#include "ldexp.h"
|
#include "ldexp.h"
|
||||||
|
#include "ldlex.h"
|
||||||
#include "ldlang.h"
|
#include "ldlang.h"
|
||||||
#include "ldfile.h"
|
#include "ldfile.h"
|
||||||
#include "ldemul.h"
|
#include "ldemul.h"
|
||||||
|
@ -2289,6 +2290,13 @@ fragment <<EOF
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
if test x"$GENERATE_PIE_SCRIPT" = xyes; then
|
||||||
|
fragment <<EOF
|
||||||
|
case OPTION_PIE:
|
||||||
|
link_info.flags_1 |= (bfd_vma) DF_1_PIE;
|
||||||
|
break;
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
fragment <<EOF
|
fragment <<EOF
|
||||||
case 'z':
|
case 'z':
|
||||||
if (strcmp (optarg, "defs") == 0)
|
if (strcmp (optarg, "defs") == 0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue