From: Jeremy Drake Date: Fri, 11 Sep 2020 16:51:16 +0000 (+0100) Subject: Fix a segfault when creating an import library with 0 exports. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9cdc5bacddc3776a455cc918e034b01dfb31c75b;p=binutils-gdb.git 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. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 3b9a4266972..d81ebcc6c01 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 9d2097f486a..055d08d1849 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 7d9395168d2..f161cce2b5f 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); }