diff options
author | Howard Chu <hyc@symas.com> | 2020-11-03 15:12:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-11-03 15:12:47 +0000 |
commit | f3016d6ce178b76002edde12c30ebe7f608a8e21 (patch) | |
tree | c8c1943182747f75bafa7c34c4b7562ea7dfbbce /binutils/testsuite | |
parent | fd65497db4098140490e59e3dbf4709da5536081 (diff) | |
download | fsf-binutils-gdb-f3016d6ce178b76002edde12c30ebe7f608a8e21.zip fsf-binutils-gdb-f3016d6ce178b76002edde12c30ebe7f608a8e21.tar.gz fsf-binutils-gdb-f3016d6ce178b76002edde12c30ebe7f608a8e21.tar.bz2 |
Add an option to the archiver to add a section recording library dependencies.
* ar.c (long_options): Add --record-libdeps.
(usage): Mention the new option.
(decode_options): Handle the new option.
(replace_members): If necessary, create a bfd to hold the libdeps
description.
* binemul.c (ar_emul_append_bfd): New function.
(ar_emul_replace_bfd): New function.
(ar_emul_default_append): Replace file_name and target arguments
with new_bfd argument.
(ar_emul_default_replace): Likewise.
* binemul.h: Update prototypes.
(struct bin_emulation_xfer_struct): Update fields.
* doc/binutils.texi: Document the new option.
* NEWS: Mention the new feature.
* emul_aix.c (ar_emul_aix_append): Update.
(ar_emul_aix_replace): Likewise.
* testsuite/binutils-all/ar.exp: Add test of new feature.
Diffstat (limited to 'binutils/testsuite')
-rw-r--r-- | binutils/testsuite/binutils-all/ar.exp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp index 5a9d27c..273a0a3 100644 --- a/binutils/testsuite/binutils-all/ar.exp +++ b/binutils/testsuite/binutils-all/ar.exp @@ -715,6 +715,46 @@ proc many_files { } { pass $testname } +proc test_add_dependencies { } { + global AR + global AS + global srcdir + global subdir + global obj + + set testname "ar adding library dependencies" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.${obj}] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.${obj} + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-r -c $archive --record-libdeps /foo/bar ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "-t $archive"] + if ![string match "*bintest.${obj}
__.LIBDEP*" $got] { + fail $testname + return + } + + pass $testname +} + # Run the tests. # Only run the bfdtest checks if the programs exist. Since these @@ -743,6 +783,7 @@ move_an_element empty_archive extract_an_element many_files +test_add_dependencies if { [is_elf_format] && [supports_gnu_unique] } { unique_symbol |