mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
Don't enable new dtags by default with -rpath
ld/ 2013-02-04 H.J. Lu <hongjiu.lu@intel.com> PR ld/15096 * emultempl/alphaelf.em (alpha_after_parse): Call gld${EMULATION_NAME}_after_parse instead of after_parse_default. * emultempl/cr16elf.em (cr16elf_after_parse): Likewise. * emultempl/crxelf.em (crxelf_after_parse): Likewise. * emultempl/hppaelf.em (hppaelf_after_parse): Likewise. * emultempl/mipself.em (mips_after_parse): Likewise. * emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Renamed to ... (gld_${EMULATION_NAME}_after_parse): This. Call gld${EMULATION_NAME}_after_parse instead of after_parse_default. (LDEMUL_AFTER_PARSE): Set to gld_${EMULATION_NAME}_after_parse. * emultempl/elf32.em (new_dtags_set): New variable. (gld${EMULATION_NAME}_before_parse): Don't set link_info.new_dtags here. (gld${EMULATION_NAME}_after_parse): New function. (ld_${EMULATION_NAME}_emulation): Replace after_parse_default' with gld${EMULATION_NAME}_after_parse. (gld${EMULATION_NAME}_handle_option): Set new_dtags_set to TRUE when setting link_info.new_dtags. ld/testsuite/ 2013-02-04 H.J. Lu <hongjiu.lu@intel.com> PR ld/15096 * ld-elf/new-dtags-1.d: New test. * ld-elf/new-dtags-2.d: Likewise. * ld-elf/new-dtags-3.d: Likewise. * ld-elf/new-dtags-4.d: Likewise. * ld-elf/new-dtags-5.d: Likewise. * ld-elf/new-dtags-6.d: Likewise. * ld-elf/new-dtags-7.d: Likewise. * ld-elf/new-dtags-8.d: Likewise.
This commit is contained in:
25
ld/ChangeLog
25
ld/ChangeLog
@ -1,3 +1,28 @@
|
|||||||
|
2013-02-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/15096
|
||||||
|
* emultempl/alphaelf.em (alpha_after_parse): Call
|
||||||
|
gld${EMULATION_NAME}_after_parse instead of after_parse_default.
|
||||||
|
* emultempl/cr16elf.em (cr16elf_after_parse): Likewise.
|
||||||
|
* emultempl/crxelf.em (crxelf_after_parse): Likewise.
|
||||||
|
* emultempl/hppaelf.em (hppaelf_after_parse): Likewise.
|
||||||
|
* emultempl/mipself.em (mips_after_parse): Likewise.
|
||||||
|
|
||||||
|
* emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Renamed
|
||||||
|
to ...
|
||||||
|
(gld_${EMULATION_NAME}_after_parse): This. Call
|
||||||
|
gld${EMULATION_NAME}_after_parse instead of after_parse_default.
|
||||||
|
(LDEMUL_AFTER_PARSE): Set to gld_${EMULATION_NAME}_after_parse.
|
||||||
|
|
||||||
|
* emultempl/elf32.em (new_dtags_set): New variable.
|
||||||
|
(gld${EMULATION_NAME}_before_parse): Don't set link_info.new_dtags
|
||||||
|
here.
|
||||||
|
(gld${EMULATION_NAME}_after_parse): New function.
|
||||||
|
(ld_${EMULATION_NAME}_emulation): Replace after_parse_default'
|
||||||
|
with gld${EMULATION_NAME}_after_parse.
|
||||||
|
(gld${EMULATION_NAME}_handle_option): Set new_dtags_set to TRUE
|
||||||
|
when setting link_info.new_dtags.
|
||||||
|
|
||||||
2013-01-25 Kai Tietz <ktietz@redhat.com>
|
2013-01-25 Kai Tietz <ktietz@redhat.com>
|
||||||
|
|
||||||
* deffilep.y (def_image_name): Adjust type of base-address
|
* deffilep.y (def_image_name): Adjust type of base-address
|
||||||
|
@ -80,7 +80,7 @@ alpha_after_parse (void)
|
|||||||
exp_nameop (SIZEOF_HEADERS, NULL)),
|
exp_nameop (SIZEOF_HEADERS, NULL)),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -119,7 +119,7 @@ cr16elf_after_parse (void)
|
|||||||
is true the link sometimes fails. */
|
is true the link sometimes fails. */
|
||||||
config.magic_demand_paged = FALSE;
|
config.magic_demand_paged = FALSE;
|
||||||
|
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called after the sections have been attached to output
|
/* This is called after the sections have been attached to output
|
||||||
|
@ -43,7 +43,7 @@ crxelf_after_parse (void)
|
|||||||
is true the link sometimes fails. */
|
is true the link sometimes fails. */
|
||||||
config.magic_demand_paged = FALSE;
|
config.magic_demand_paged = FALSE;
|
||||||
|
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called after the sections have been attached to output
|
/* This is called after the sections have been attached to output
|
||||||
|
@ -63,6 +63,7 @@ fragment <<EOF
|
|||||||
|
|
||||||
/* Declare functions used by various EXTRA_EM_FILEs. */
|
/* Declare functions used by various EXTRA_EM_FILEs. */
|
||||||
static void gld${EMULATION_NAME}_before_parse (void);
|
static void gld${EMULATION_NAME}_before_parse (void);
|
||||||
|
static void gld${EMULATION_NAME}_after_parse (void);
|
||||||
static void gld${EMULATION_NAME}_after_open (void);
|
static void gld${EMULATION_NAME}_after_open (void);
|
||||||
static void gld${EMULATION_NAME}_before_allocation (void);
|
static void gld${EMULATION_NAME}_before_allocation (void);
|
||||||
static void gld${EMULATION_NAME}_after_allocation (void);
|
static void gld${EMULATION_NAME}_after_allocation (void);
|
||||||
@ -70,6 +71,15 @@ static lang_output_section_statement_type *gld${EMULATION_NAME}_place_orphan
|
|||||||
(asection *, const char *, int);
|
(asection *, const char *, int);
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
|
||||||
|
fragment <<EOF
|
||||||
|
|
||||||
|
/* TRUE if link_info.new_dtags is set. */
|
||||||
|
static bfd_boolean new_dtags_set;
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "x${USE_LIBPATH}" = xyes ] ; then
|
if [ "x${USE_LIBPATH}" = xyes ] ; then
|
||||||
case ${target} in
|
case ${target} in
|
||||||
*-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
|
*-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
|
||||||
@ -105,16 +115,35 @@ gld${EMULATION_NAME}_before_parse (void)
|
|||||||
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
|
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
|
||||||
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
|
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
|
||||||
config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
|
config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
fragment <<EOF
|
||||||
|
static void
|
||||||
|
gld${EMULATION_NAME}_after_parse (void)
|
||||||
|
{
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
if test x"$LDEMUL_AFTER_PARSE" != xgld"$EMULATION_NAME"_after_parse; then
|
||||||
|
# Enable the "new" dtags by default only for Linux target emulation if
|
||||||
|
# -rpath isn't used.
|
||||||
case ${target} in
|
case ${target} in
|
||||||
*-*-linux-* | *-*-k*bsd*-* | *-*-gnu* | *-*-nacl*)
|
*-*-linux-* | *-*-k*bsd*-* | *-*-gnu* | *-*-nacl*)
|
||||||
|
case " ${EMULATION_LIBPATH} " in
|
||||||
|
*" ${EMULATION_NAME} "*)
|
||||||
fragment <<EOF
|
fragment <<EOF
|
||||||
|
if (!new_dtags_set && command_line.rpath == NULL)
|
||||||
link_info.new_dtags = TRUE;
|
link_info.new_dtags = TRUE;
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
fragment <<EOF
|
fragment <<EOF
|
||||||
|
after_parse_default ();
|
||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@ -2227,10 +2256,12 @@ fragment <<EOF
|
|||||||
|
|
||||||
case OPTION_DISABLE_NEW_DTAGS:
|
case OPTION_DISABLE_NEW_DTAGS:
|
||||||
link_info.new_dtags = FALSE;
|
link_info.new_dtags = FALSE;
|
||||||
|
new_dtags_set = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPTION_ENABLE_NEW_DTAGS:
|
case OPTION_ENABLE_NEW_DTAGS:
|
||||||
link_info.new_dtags = TRUE;
|
link_info.new_dtags = TRUE;
|
||||||
|
new_dtags_set = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPTION_EH_FRAME_HDR:
|
case OPTION_EH_FRAME_HDR:
|
||||||
@ -2515,7 +2546,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
|
|||||||
${LDEMUL_BEFORE_PARSE-gld${EMULATION_NAME}_before_parse},
|
${LDEMUL_BEFORE_PARSE-gld${EMULATION_NAME}_before_parse},
|
||||||
${LDEMUL_SYSLIB-syslib_default},
|
${LDEMUL_SYSLIB-syslib_default},
|
||||||
${LDEMUL_HLL-hll_default},
|
${LDEMUL_HLL-hll_default},
|
||||||
${LDEMUL_AFTER_PARSE-after_parse_default},
|
${LDEMUL_AFTER_PARSE-gld${EMULATION_NAME}_after_parse},
|
||||||
${LDEMUL_AFTER_OPEN-gld${EMULATION_NAME}_after_open},
|
${LDEMUL_AFTER_OPEN-gld${EMULATION_NAME}_after_open},
|
||||||
${LDEMUL_AFTER_ALLOCATION-gld${EMULATION_NAME}_after_allocation},
|
${LDEMUL_AFTER_ALLOCATION-gld${EMULATION_NAME}_after_allocation},
|
||||||
${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
|
${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
|
||||||
|
@ -60,7 +60,7 @@ hppaelf_after_parse (void)
|
|||||||
NULL);
|
NULL);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called before the input files are opened. We create a new
|
/* This is called before the input files are opened. We create a new
|
||||||
|
@ -31,12 +31,12 @@ fragment <<EOF
|
|||||||
static int itanium = 0;
|
static int itanium = 0;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gld${EMULATION_NAME}_after_parse (void)
|
gld_${EMULATION_NAME}_after_parse (void)
|
||||||
{
|
{
|
||||||
link_info.relax_pass = 2;
|
link_info.relax_pass = 2;
|
||||||
bfd_elf${ELFSIZE}_ia64_after_parse (itanium);
|
bfd_elf${ELFSIZE}_ia64_after_parse (itanium);
|
||||||
|
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@ -61,5 +61,5 @@ PARSE_AND_LIST_ARGS_CASES='
|
|||||||
break;
|
break;
|
||||||
'
|
'
|
||||||
|
|
||||||
LDEMUL_AFTER_PARSE=gld${EMULATION_NAME}_after_parse
|
LDEMUL_AFTER_PARSE=gld_${EMULATION_NAME}_after_parse
|
||||||
source_em ${srcdir}/emultempl/needrelax.em
|
source_em ${srcdir}/emultempl/needrelax.em
|
||||||
|
@ -45,7 +45,7 @@ mips_after_parse (void)
|
|||||||
link_info.emit_hash = TRUE;
|
link_info.emit_hash = TRUE;
|
||||||
link_info.emit_gnu_hash = FALSE;
|
link_info.emit_gnu_hash = FALSE;
|
||||||
}
|
}
|
||||||
after_parse_default ();
|
gld${EMULATION_NAME}_after_parse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct hook_stub_info
|
struct hook_stub_info
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
2013-02-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/15096
|
||||||
|
* ld-elf/new-dtags-1.d: New test.
|
||||||
|
* ld-elf/new-dtags-2.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-3.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-4.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-5.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-6.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-7.d: Likewise.
|
||||||
|
* ld-elf/new-dtags-8.d: Likewise.
|
||||||
|
|
||||||
2013-01-31 Alan Modra <amodra@gmail.com>
|
2013-01-31 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* ld-powerpc/tlsexe.d: Update for changed stub names.
|
* ld-powerpc/tlsexe.d: Update for changed stub names.
|
||||||
|
9
ld/testsuite/ld-elf/new-dtags-1.d
Normal file
9
ld/testsuite/ld-elf/new-dtags-1.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -rpath .
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
+0x[0-9a-f]+ +\(RUNPATH\) +Library runpath: +\[.\]
|
||||||
|
#...
|
8
ld/testsuite/ld-elf/new-dtags-2.d
Normal file
8
ld/testsuite/ld-elf/new-dtags-2.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -rpath .
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#...
|
||||||
|
+0x[0-9a-f]+ +\(RPATH\) +Library rpath: +\[.\]
|
||||||
|
#pass
|
9
ld/testsuite/ld-elf/new-dtags-3.d
Normal file
9
ld/testsuite/ld-elf/new-dtags-3.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -rpath . --enable-new-dtags
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
+0x[0-9a-f]+ +\(RPATH\) +Library rpath: +\[.\]
|
||||||
|
#...
|
8
ld/testsuite/ld-elf/new-dtags-4.d
Normal file
8
ld/testsuite/ld-elf/new-dtags-4.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -rpath . --enable-new-dtags
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#...
|
||||||
|
+0x[0-9a-f]+ +\(RUNPATH\) +Library runpath: +\[.\]
|
||||||
|
#pass
|
9
ld/testsuite/ld-elf/new-dtags-5.d
Normal file
9
ld/testsuite/ld-elf/new-dtags-5.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -z now
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
0x[0-9a-f]+ +\(BIND_NOW\) +
|
||||||
|
#...
|
8
ld/testsuite/ld-elf/new-dtags-6.d
Normal file
8
ld/testsuite/ld-elf/new-dtags-6.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -z now
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#...
|
||||||
|
0x[0-9a-f]+ +\(FLAGS\) +BIND_NOW
|
||||||
|
#pass
|
9
ld/testsuite/ld-elf/new-dtags-7.d
Normal file
9
ld/testsuite/ld-elf/new-dtags-7.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -z now --disable-new-dtags
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
0x[0-9a-f]+ +\(FLAGS\) +BIND_NOW
|
||||||
|
#pass
|
8
ld/testsuite/ld-elf/new-dtags-8.d
Normal file
8
ld/testsuite/ld-elf/new-dtags-8.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#source: start.s
|
||||||
|
#readelf: -d -W
|
||||||
|
#ld: -shared -z now --disable-new-dtags
|
||||||
|
#target: *-*-linux* *-*-gnu*
|
||||||
|
|
||||||
|
#...
|
||||||
|
0x[0-9a-f]+ +\(BIND_NOW\) +
|
||||||
|
#pass
|
Reference in New Issue
Block a user