From 64d94ba01a4f56ac10bb277e66bb00d82bd97f10 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 19 Aug 2015 12:32:54 +0930 Subject: Remove link_info.pic Adding type_pie to output_type allows us to remove link_info.pic and with some reordering of the enum, produces better code. include/ * bfdlink.h (enum output_type): Delete type_executable, add type_pde and type_pie. Reorder. (struct bfd_link_info): Delete pic field. (bfd_link_executable, bfd_link_pde, bfd_link_pie, bfd_link_pic): Adjust. ld/ * emultempl/aix.em: Don't set link_info.pic. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/sunos.em: Likewise. * lexsup.c (parse_args): Likewise. Set type_pie for -pie. * plugin.c (set_tv_header ): Simplify. --- ld/emultempl/aix.em | 1 - ld/emultempl/pe.em | 5 +---- ld/emultempl/pep.em | 5 +---- ld/emultempl/sunos.em | 1 - 4 files changed, 2 insertions(+), 10 deletions(-) (limited to 'ld/emultempl') diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index d4147f3..3975e2f 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -533,7 +533,6 @@ gld${EMULATION_NAME}_handle_option (int optc) if (*optarg == 'S') { link_info.type = type_dll; - link_info.pic = TRUE; ++optarg; } if (*optarg == '\0' || optarg[1] == '\0') diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index e817b47..72e2f11 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1956,10 +1956,7 @@ gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIB /* def_file_print (stdout, pe_def_file); */ if (pe_def_file->is_dll == 1) - { - link_info.type = type_dll; - link_info.pic = 1; - } + link_info.type = type_dll; if (pe_def_file->base_address != (bfd_vma)(-1)) { diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 8b30b1c..c82e496 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -1789,10 +1789,7 @@ gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIB /* def_file_print (stdout, pep_def_file); */ if (pep_def_file->is_dll == 1) - { - link_info.type = type_dll; - link_info.pic = 1; - } + link_info.type = type_dll; if (pep_def_file->base_address != (bfd_vma)(-1)) { diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em index c026e35..4422f19 100644 --- a/ld/emultempl/sunos.em +++ b/ld/emultempl/sunos.em @@ -689,7 +689,6 @@ gld${EMULATION_NAME}_before_allocation (void) if (! found_assign) { link_info.type = type_dll; - link_info.pic = TRUE; break; } } -- cgit v1.1