From 9cdc5bacddc3776a455cc918e034b01dfb31c75b Mon Sep 17 00:00:00 2001 From: Jeremy Drake Date: Fri, 11 Sep 2020 17:51:16 +0100 Subject: [PATCH 1/1] Fix a segfault when creating an import library with 0 exports. PR 26588 * emultempl/pe.em (_finish): Only generate a import library if not exporting relocs. * emultempl/pep.em: Likewise. --- ld/ChangeLog | 7 +++++++ ld/emultempl/pe.em | 3 ++- ld/emultempl/pep.em | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 3b9a426697..d81ebcc6c0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2020-09-11 Jeremy Drake + + PR 26588 + * emultempl/pe.em (_finish): Only generate a import library if not + exporting relocs. + * emultempl/pep.em: Likewise. + 2020-09-10 Siddhesh Poyarekar * testsuite/ld-aarch64/emit-relocs-560.d: Expect error instead diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 9d2097f486..055d08d184 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1996,7 +1996,8 @@ gld_${EMULATION_NAME}_finish (void) ) { pe_dll_fill_sections (link_info.output_bfd, &link_info); - if (command_line.out_implib_filename) + if (command_line.out_implib_filename + && pe_def_file->num_exports != 0) pe_dll_generate_implib (pe_def_file, command_line.out_implib_filename, &link_info); } diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 7d9395168d..f161cce2b5 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -1823,7 +1823,8 @@ gld_${EMULATION_NAME}_finish (void) && pep_def_file->num_exports != 0)) { pep_dll_fill_sections (link_info.output_bfd, &link_info); - if (command_line.out_implib_filename) + if (command_line.out_implib_filename + && pep_def_file->num_exports != 0) pep_dll_generate_implib (pep_def_file, command_line.out_implib_filename, &link_info); } -- 2.34.1