OLD | NEW |
1 /* Plugin support for BFD. | 1 /* Plugin support for BFD. |
2 Copyright 2009 | 2 Copyright 2009 |
3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
4 | 4 |
5 This file is part of BFD, the Binary File Descriptor library. | 5 This file is part of BFD, the Binary File Descriptor library. |
6 | 6 |
7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
11 | 11 |
12 This program is distributed in the hope that it will be useful, | 12 This program is distributed in the hope that it will be useful, |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 GNU General Public License for more details. | 15 GNU General Public License for more details. |
16 | 16 |
17 You should have received a copy of the GNU General Public License | 17 You should have received a copy of the GNU General Public License |
18 along with this program; if not, write to the Free Software | 18 along with this program; if not, write to the Free Software |
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | 19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
20 MA 02110-1301, USA. */ | 20 MA 02110-1301, USA. */ |
21 | 21 |
22 #include "config.h" | 22 #include "config.h" |
23 #include "bfd.h" | 23 #include "bfd.h" |
24 | 24 |
25 #if BFD_SUPPORTS_PLUGINS | 25 #if BFD_SUPPORTS_PLUGINS |
26 | 26 |
27 #include <assert.h> | 27 #include <assert.h> |
28 #include <dlfcn.h> | 28 #include "../dlwrap.h" // @LOCALMOD |
29 #include <stdarg.h> | 29 #include <stdarg.h> |
30 #include "plugin-api.h" | 30 #include "plugin-api.h" |
31 #include "sysdep.h" | 31 #include "sysdep.h" |
32 #include "plugin.h" | 32 #include "plugin.h" |
33 #include "libbfd.h" | 33 #include "libbfd.h" |
34 #include "libiberty.h" | 34 #include "libiberty.h" |
35 #include <dirent.h> | 35 #include <dirent.h> |
36 | 36 |
37 #define bfd_plugin_close_and_cleanup _bfd_generic_close_and_cle
anup | 37 #define bfd_plugin_close_and_cleanup _bfd_generic_close_and_cle
anup |
38 #define bfd_plugin_bfd_free_cached_info _bfd_generic_bfd_free_cach
ed_info | 38 #define bfd_plugin_bfd_free_cached_info _bfd_generic_bfd_free_cach
ed_info |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 | 182 |
183 static int | 183 static int |
184 load_plugin (void) | 184 load_plugin (void) |
185 { | 185 { |
186 char *plugin_dir; | 186 char *plugin_dir; |
187 char *p; | 187 char *p; |
188 DIR *d; | 188 DIR *d; |
189 struct dirent *ent; | 189 struct dirent *ent; |
190 int found = 0; | 190 int found = 0; |
191 | 191 |
| 192 // @LOCALMOD-BEGIN |
| 193 return try_load_plugin("LLVMgold"); |
| 194 // @LOCALMOD-END |
| 195 |
192 if (plugin_name) | 196 if (plugin_name) |
193 return try_load_plugin (plugin_name); | 197 return try_load_plugin (plugin_name); |
194 | 198 |
195 if (plugin_program_name == NULL) | 199 if (plugin_program_name == NULL) |
196 return 0; | 200 return 0; |
197 | 201 |
198 plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL); | 202 plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL); |
199 p = make_relative_prefix (plugin_program_name, | 203 p = make_relative_prefix (plugin_program_name, |
200 BINDIR, | 204 BINDIR, |
201 plugin_dir); | 205 plugin_dir); |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), | 517 BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), |
514 BFD_JUMP_TABLE_WRITE (bfd_plugin), | 518 BFD_JUMP_TABLE_WRITE (bfd_plugin), |
515 BFD_JUMP_TABLE_LINK (bfd_plugin), | 519 BFD_JUMP_TABLE_LINK (bfd_plugin), |
516 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 520 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
517 | 521 |
518 NULL, | 522 NULL, |
519 | 523 |
520 NULL /* backend_data. */ | 524 NULL /* backend_data. */ |
521 }; | 525 }; |
522 #endif /* BFD_SUPPORTS_PLUGIN */ | 526 #endif /* BFD_SUPPORTS_PLUGIN */ |
OLD | NEW |