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>
|
2017-08-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/21884
|
PR ld/21884
|
||||||
|
|
3
ld/NEWS
3
ld/NEWS
|
@ -1,4 +1,7 @@
|
||||||
-*- text -*-
|
-*- 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
|
* 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
|
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.noexecstack = TRUE;
|
||||||
link_info.execstack = FALSE;
|
link_info.execstack = FALSE;
|
||||||
}
|
}
|
||||||
|
else if (strcmp (optarg, "globalaudit") == 0)
|
||||||
|
{
|
||||||
|
link_info.flags_1 |= DF_1_GLOBAUDIT;
|
||||||
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
|
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
|
the symbols defined by this shared object available for symbol resolution
|
||||||
of subsequently loaded libraries.
|
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
|
@item initfirst
|
||||||
This option is only meaningful when building a shared object.
|
This option is only meaningful when building a shared object.
|
||||||
It marks the object so that its runtime initialization will occur
|
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"));
|
-z execstack Mark executable as requiring executable stack\n"));
|
||||||
fprintf (file, _("\
|
fprintf (file, _("\
|
||||||
-z noexecstack Mark executable as not requiring executable stack\n"));
|
-z noexecstack Mark executable as not requiring executable stack\n"));
|
||||||
|
fprintf (file, _("\
|
||||||
|
-z globalaudit Mark executable requiring global auditing\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -60,6 +60,9 @@ set build_tests {
|
||||||
{"Run with -lusesaudit -lusesaudit2"
|
{"Run with -lusesaudit -lusesaudit2"
|
||||||
"-Ltmpdir/ -lusesaudit -lusesaudit2" ""
|
"-Ltmpdir/ -lusesaudit -lusesaudit2" ""
|
||||||
{main.c} {{"readelf" {-d} "depaudit2.rd"}} "useslibusesaudit2.out"}
|
{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
|
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