Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: binutils-2.20/bfd/plugin.c

Issue 8713008: Add dlwrap.c to binutils to simulate dlopen/dlsym for gold plugin (Closed)
Patch Set: x Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 */
OLDNEW
« no previous file with comments | « binutils-2.20/bfd/dlwrap.c ('k') | binutils-2.20/dlwrap.h » ('j') | binutils-2.20/dlwrap.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698