Add -z globalaudit linker command line option to set the DF_GLOBALAUDIT flag bit in the dynamic tags.
* emultempl/elf32.em (handle_option): Accept the -z globalaudit command line option. * lexsup.c (elf_static_list_options): Add -z globalaudit. * ld.texinfo: Document the support for the new command line option. * NEWS: Mention the new feature. * testsuite/ld-elf/audit.exp: Add a test of the -z globalaudit command line option. * testsuite/ld-elf/globalaudit.rd: New file: Expected output from readelf.
This commit is contained in:
parent
9593aade74
commit
93ab9c0de7
7 changed files with 36 additions and 0 deletions
13
ld/ChangeLog
13
ld/ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2017-08-11 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* emultempl/elf32.em (handle_option): Accept the -z globalaudit
|
||||
command line option.
|
||||
* lexsup.c (elf_static_list_options): Add -z globalaudit.
|
||||
* ld.texinfo: Document the support for the new command line
|
||||
option.
|
||||
* NEWS: Mention the new feature.
|
||||
* testsuite/ld-elf/audit.exp: Add a test of the -z globalaudit
|
||||
command line option.
|
||||
* testsuite/ld-elf/globalaudit.rd: New file: Expected output from
|
||||
readelf.
|
||||
|
||||
2017-08-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/21884
|
||||
|
|
3
ld/NEWS
3
ld/NEWS
|
@ -1,4 +1,7 @@
|
|||
-*- text -*-
|
||||
* Add -z globalaudit command line option to force audit libraries to be run
|
||||
for every dynamic object loaded by an executable - provided that the loader
|
||||
supports this functionality.
|
||||
|
||||
* Tighten linker script grammar around file name specifiers to prevent the use
|
||||
of SORT_BY_ALIGNMENT and SORT_BY_INIT_PRIORITY on filenames. These would
|
||||
|
|
|
@ -2676,6 +2676,10 @@ fragment <<EOF
|
|||
link_info.noexecstack = TRUE;
|
||||
link_info.execstack = FALSE;
|
||||
}
|
||||
else if (strcmp (optarg, "globalaudit") == 0)
|
||||
{
|
||||
link_info.flags_1 |= DF_1_GLOBAUDIT;
|
||||
}
|
||||
EOF
|
||||
|
||||
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
|
||||
|
|
|
@ -1136,6 +1136,14 @@ This option is only meaningful when building a shared object. It makes
|
|||
the symbols defined by this shared object available for symbol resolution
|
||||
of subsequently loaded libraries.
|
||||
|
||||
@item globalaudit
|
||||
This option is only meaningful when building a dynamic executable.
|
||||
This option marks the executable as requiring global auditing by
|
||||
setting the @code{DF_1_GLOBAUDIT} bit in the @code{DT_FLAGS_1} dynamic
|
||||
tag. Global auditing requires that any auditing library defined via
|
||||
the @option{--depaudit} or @option{-P} command line options be run for
|
||||
all dynamic objects loaded by the application.
|
||||
|
||||
@item initfirst
|
||||
This option is only meaningful when building a shared object.
|
||||
It marks the object so that its runtime initialization will occur
|
||||
|
|
|
@ -1828,6 +1828,8 @@ elf_static_list_options (FILE *file)
|
|||
-z execstack Mark executable as requiring executable stack\n"));
|
||||
fprintf (file, _("\
|
||||
-z noexecstack Mark executable as not requiring executable stack\n"));
|
||||
fprintf (file, _("\
|
||||
-z globalaudit Mark executable requiring global auditing\n"));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -60,6 +60,9 @@ set build_tests {
|
|||
{"Run with -lusesaudit -lusesaudit2"
|
||||
"-Ltmpdir/ -lusesaudit -lusesaudit2" ""
|
||||
{main.c} {{"readelf" {-d} "depaudit2.rd"}} "useslibusesaudit2.out"}
|
||||
{"Link with -z globalaudit"
|
||||
"-Wl,-Paudit.so -Wl,-z,globalaudit" ""
|
||||
{main.c} {{"readelf" {-d} "globalaudit.rd"}} "globalaudit.out"}
|
||||
}
|
||||
|
||||
run_cc_link_tests $build_tests
|
||||
|
|
3
ld/testsuite/ld-elf/globalaudit.rd
Normal file
3
ld/testsuite/ld-elf/globalaudit.rd
Normal file
|
@ -0,0 +1,3 @@
|
|||
#...
|
||||
.*\(FLAGS_1\).*Flags: GLOBAUDIT
|
||||
#pass
|
Loading…
Add table
Add a link
Reference in a new issue