Rafael Espindola
a339e47689
libLTO has a bug in that it will keep every symbol if none is needed. We used
...
to hack around this in the gold plugin by deleting a module if no symbol was
needed. Unfortunately, the hack is wrong in the case of o module having no
visible symbols but still having side effects via static constructors.
The bug will have to be fixed in libLTO itself.
llvm-svn: 166745
2012-10-26 00:29:57 +00:00
Rafael Espindola
5e892a7a03
Pass -lLTO after gold-plugin.o so that it gets used in systems that default to
...
--as-needed.
Patch by Felix Geyer. Fixes pr13262.
llvm-svn: 162652
2012-08-27 03:03:07 +00:00
Rafael Espindola
9aa1fcce58
Use LTO_CODEGEN_PIC_MODEL_DYNAMIC for PIE. This requirest a git version of
...
gold to work. Since the enum value LDPO_PIE has just been added to plugin-api.h,
use a numeric constant for now so that we don't require an unreleased
version of gold to build.
llvm-svn: 158402
2012-06-13 13:30:24 +00:00
Dylan Noblesmith
9e5b178ecc
drop unneeded config.h includes
...
llvm-svn: 147197
2011-12-22 23:04:07 +00:00
Rafael Espindola
5d03d46127
Point to libLTO with -L/PATH/ -lLTO so that it is found in the install
...
directory.
Patch by Markus Trippelsdorf.
llvm-svn: 145095
2011-11-23 03:07:25 +00:00
Peter Collingbourne
00221ce63d
Use absolute path to exportsfile in gold plugin CMake build.
...
(Ninja generator requirement.)
llvm-svn: 143783
2011-11-05 04:17:20 +00:00
Daniel Dunbar
96d812a68d
build: Tidy up a bunch of tool Makefiles, and simplify where possible using the
...
new all-targets pseudo-component.
llvm-svn: 142401
2011-10-18 19:27:24 +00:00
Ivan Krasin
639222d090
use 64-bit types instead of off_t/size_t to avoid the issue when
...
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686)
and the rest of LLVM is built w/o Large File Support
(sizeof(off_t) == 32 on i686) which corrupts the stack.
llvm-svn: 139873
2011-09-15 23:13:00 +00:00
Ivan Krasin
5021af51d9
gold plugin: don't report error on non-bitcode (e.g. ELF) files.
...
llvm-svn: 139544
2011-09-12 21:47:50 +00:00
Ivan Krasin
d5f2d8c341
gold plugin: report errors occured in lto_module_create_from_*
...
llvm-svn: 139340
2011-09-09 00:14:04 +00:00
Nick Lewycky
1fcd0f1581
Don't try to dereference syms[0] on an empty vector. Reported by Todd Jackson
...
and Jeffrey Bosboom!
llvm-svn: 136066
2011-07-26 08:40:36 +00:00
Nick Lewycky
42bdfc0708
Also remove -lLTO which should have been in r132349. I failed to apply this
...
from David Meyer's patch!
llvm-svn: 132352
2011-05-31 20:00:45 +00:00
Nick Lewycky
a0484fcef1
Make the gold plugin build on Cygwin as well as Linux. Patch by David Meyer!
...
llvm-svn: 132349
2011-05-31 19:53:26 +00:00
Oscar Fuentes
a4445d6a51
CMake builds gold by default since revision 127466. This is
...
inconsistent with autoconf, which by default set BINUTILS_INCDIR to
empty and exclude gold from target list.
Based on a patch by Haitao Li!
llvm-svn: 131229
2011-05-12 11:26:21 +00:00
Duncan Sands
9aa54fef84
Remove an unused variable.
...
llvm-svn: 130860
2011-05-04 19:13:01 +00:00
Rafael Espindola
ece7c9c282
If present, use gold's support for getting a file view. This prevents having
...
to map the file both in the linker and in the plugin.
llvm-svn: 129109
2011-04-07 21:11:00 +00:00
Rafael Espindola
26b57ffa27
Add a lto_codegen_compile_to_file to avoid producing a file, reading it to
...
memory and writing it back to disk.
llvm-svn: 128108
2011-03-22 20:57:13 +00:00
Rafael Espindola
b39c7c7b17
Add support in the LTO library for loading an object from the middle
...
of an file.
llvm-svn: 127781
2011-03-17 00:36:11 +00:00
Oscar Fuentes
0122841626
Force re-linking of LLVMgold.so when its exports file changes.
...
llvm-svn: 127473
2011-03-11 18:27:13 +00:00
Oscar Fuentes
87e4a4da0d
Fix processing of gold.exports.
...
llvm-svn: 127471
2011-03-11 18:07:46 +00:00
Oscar Fuentes
64d05bc281
Add LTO and gold plugin to the CMake build. Linux-only, support for
...
other systems pending.
PR9456.
llvm-svn: 127466
2011-03-11 15:44:24 +00:00
Rafael Espindola
7e5fe6ce1c
Gold now rescans archives as needed, so the pass-through options are not
...
necessary anymore.
llvm-svn: 126580
2011-02-27 20:30:22 +00:00
Rafael Espindola
92c06ba158
bfd was fixed, remove the work around.
...
llvm-svn: 126579
2011-02-27 20:15:37 +00:00
Rafael Espindola
908d391bd2
LTO uses MC now.
...
llvm-svn: 126546
2011-02-26 16:44:13 +00:00
Rafael Espindola
9ef90d5b35
Dispose modules early and only create codegen when the plugin is being
...
used by the linker and not by nm or ar.
llvm-svn: 126089
2011-02-20 18:28:29 +00:00
Rafael Espindola
d4f34d840e
Add modules to codegen as soon as possible. This reduces the link time
...
of libxul from 12m31.084s to 7m1.359s.
llvm-svn: 126052
2011-02-19 21:49:57 +00:00
Rafael Espindola
6b6ed5d1f9
Add a debug obj-path option to make it easy to keep the .o produce by LTO.
...
llvm-svn: 125663
2011-02-16 11:19:44 +00:00
Rafael Espindola
70d8015063
Switch llvm to using comdats. For now always use groups with a single
...
section.
llvm-svn: 125526
2011-02-14 22:23:49 +00:00
Rafael Espindola
56e41f7f0b
Don't open the file again in the gold plugin. To be able to do this, update
...
MemoryBuffer::getOpenFile to not close the file descriptor.
llvm-svn: 125128
2011-02-08 22:40:47 +00:00
Michael J. Spencer
06f5223621
gold: MinGW fix.
...
llvm-svn: 123886
2011-01-20 05:43:16 +00:00
Charles Davis
54c9eb6fff
Now to chant the magical incantation that will exorcise the System library
...
from LLVM forever:
grep -lR "llvm/System" * | grep -v .svn | xargs sed -ie 's#llvm/System#llvm/Support#g'
llvm-svn: 120314
2010-11-29 19:44:50 +00:00
Michael J. Spencer
ab425d8360
I swear I did a make clean and make before committing all this...
...
llvm-svn: 120304
2010-11-29 18:47:54 +00:00
Dan Gohman
0df7ea4c24
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
NAKAMURA Takumi
217cadd434
Don't build redundant libLLVMgold.a.
...
Building archive would be executed due to definition of BUILD_ARCHIVE,
even if BUILD_ARCHIVE = "0".
llvm-svn: 113578
2010-09-10 06:26:57 +00:00
Nick Lewycky
3e19542ed3
Fix compile errors.
...
llvm-svn: 112808
2010-09-02 05:44:31 +00:00
Dan Gohman
8525fe7155
Convert tools to use tool_output_file, and introduce error
...
checking to places which previously lacked it.
llvm-svn: 111651
2010-08-20 16:59:15 +00:00
Rafael Espindola
ccab1dddd1
Make it possible to set the cpu used for codegen.
...
llvm-svn: 110759
2010-08-11 00:15:13 +00:00
Rafael Espindola
0045646633
Make it possible to set the flags passed to the assembler.
...
Nick, please review.
llvm-svn: 110705
2010-08-10 18:55:09 +00:00
Rafael Espindola
148c3284ee
Fix silly bug.
...
llvm-svn: 110684
2010-08-10 16:32:15 +00:00
Rafael Espindola
4ef89f5200
Make it possible to set the target triple and expose that with an option in the
...
gold plugin.
llvm-svn: 110604
2010-08-09 21:09:46 +00:00
Rafael Espindola
717cd17f6f
s/libLLVMgold/LLVMgold/g
...
llvm-svn: 110552
2010-08-08 21:14:26 +00:00
Duncan Sands
b69a3e27df
Remove variables that are written by not read.
...
llvm-svn: 107126
2010-06-29 11:07:47 +00:00
Rafael Espindola
ef49815638
Add an extra-library-path option to the plugin. This is used to support
...
having a library both as bitcode and native code. We want to use the
bitcode first, but if codegen produces new undefined references we have to use
the native code to satisfy those references.
Gold has no notion of bitcode and native search directories, so instead it has
an API where the plugin can instruct it to look for the libraries it is passing
to it. This patch uses that API.
llvm-svn: 106674
2010-06-23 20:20:59 +00:00
Rafael Espindola
9d94ebf1b6
add_input_file and add_input_library now take const arguments, remove the
...
const_cast.
llvm-svn: 106410
2010-06-21 02:23:12 +00:00
Rafael Espindola
8297640062
Add a pass-through option to the plugin. The use case for this option is to
...
ask the linker to take another look into some library or object. The case when
one might want to do this is when codegen introduces a new undefined reference.
The canonical example is libgcc.
llvm-svn: 106303
2010-06-18 19:18:58 +00:00
Rafael Espindola
77b6d01906
Don't produce output only if *all* files are unused.
...
llvm-svn: 105962
2010-06-14 21:20:52 +00:00
Nick Lewycky
4ecf2cc5ea
Plug a leak in the non-error case by removing one level of indirection.
...
llvm-svn: 105556
2010-06-07 21:42:19 +00:00
Rafael Espindola
c4dca3aeb6
Misc cleanups to the gold plugin.
...
llvm-svn: 105534
2010-06-07 16:45:22 +00:00
Rafael Espindola
8fb957e5cb
Add a emit-llvm option to the plugin and make the path argument to also-emit-llvm optional.
...
llvm-svn: 105414
2010-06-03 21:11:20 +00:00
Nick Lewycky
ca4180c92a
Perfer !string.empty() over string != "".
...
llvm-svn: 105397
2010-06-03 17:13:23 +00:00