Commit Graph

140 Commits

Author SHA1 Message Date
Rui Ueyama f75ea0b995 Implement --{push,pop}-state.
--push-state implemented in this patch saves the states of --as-needed,
--whole-archive and --static. It saves less number of flags than GNU linkers.
Since even GNU linkers save different flags, no one seems to care about the
details. In this patch, I tried to save the minimal number of flags to not
complicate the implementation and the siutation.

I'm not personally happy about adding the --{push,pop}-state flags though.
That options seem too hacky to me. However, gcc started using the options
since GCC 8 when GNU ld is available at the build time. Therefore, lld
is no longer a drop-in replacmenet for GNU linker for that machine
without supporting the flags.

Fixes https://bugs.llvm.org/show_bug.cgi?id=34567

Differential Revision: https://reviews.llvm.org/D47542

llvm-svn: 333646
2018-05-31 13:00:25 +00:00
Sam Clegg 262e09018b [WebAssembly] Remove final -wasm component of target triple. NFC.
This has been the default for a while now.

llvm-svn: 332009
2018-05-10 17:59:41 +00:00
Ed Maste 59c4962c1d Add -warn-backrefs (r329636) to lld's man page
llvm-svn: 331133
2018-04-29 02:18:48 +00:00
Ed Maste dfcd846b26 Update man page for long opts that accept = after r326506
Also remove the space between --lto-O and value, as the option with a
space is not accepted at present.

Leave --opt-remarks-filename as it does not currently accept the = form.

llvm.org/pr36563

llvm-svn: 326536
2018-03-02 02:57:12 +00:00
Ed Maste 9a289f7b72 Correct man page description for --section-start
The argument is section=address, not just address.

(For compatibility with GNU linkers we need to, but do not yet, accept
--section-start=section=address.)

llvm-svn: 326463
2018-03-01 19:02:41 +00:00
Ed Maste dde3a9170c Where possible use --long-opt=value in lld man page
We intend to maintain compatibility with GNU ld, and in the GNU world
long options are conventionally specified as --long-option=value. For
whatever reason GNU ld.bfd accepts both --long-option value and
--long-option=value, but documents the former. Follow suit.

Some lld long options do not accept the = form; this is probably a bug
to be fixed (along with a man page update).

Reported by Ingo Schwarze, for --entry.

llvm-svn: 326459
2018-03-01 18:40:11 +00:00
Ed Maste a83e226c2f Correct markup and nits in ld.lld man page
Patch by Ingo Schwarze

llvm-svn: 326446
2018-03-01 16:02:19 +00:00
Hans Wennborg ff52eb5927 ReleaseNotes: user lower-case for lld in the text
llvm-svn: 325869
2018-02-23 08:27:38 +00:00
Zachary Turner 401b2a463c Update lld documentation to mention PDB support.
Differential Revision: https://reviews.llvm.org/D43636

llvm-svn: 325821
2018-02-22 19:12:57 +00:00
Ed Maste 1136f3f0fd Add IMPLEMENTATION NOTES describing lld's .a handling in the man page
This content is based on the description in NewLLD.rst.

Differential Revision:	https://reviews.llvm.org/D43072

llvm-svn: 324739
2018-02-09 15:36:13 +00:00
Ed Maste 421fdaa121 Document --build-id=fast in ld.lld.1
Initial ld.lld.1 man page commit in r324512 crossed paths with r324502
which added --build-id=fast, allowing --build-id to be documented as a
synonym for --build-id=fast. Catch up with that change in the man page.

Differential Revision:	https://reviews.llvm.org/D43039

llvm-svn: 324528
2018-02-07 21:22:20 +00:00
Ed Maste 3a775a17ca Add ld.lld.1 man page, describing lld's ELF linker
One of the FreeBSD requirements for enabling lld as the system linker is
that it has a man page. Other FreeBSD developers and I created one using
lld's --help output as a starting point.  This is an expanded and
improved version of that.

This man page would benefit from additional content, but it provides
basic user-facing coverage of lld's options and serves as a good
starting point.

Differential Revision:	https://reviews.llvm.org/D42963

llvm-svn: 324512
2018-02-07 20:38:18 +00:00
Hans Wennborg b7f377a863 Docs, release notes: update version to 7.0.0
llvm-svn: 321729
2018-01-03 15:51:31 +00:00
Sam Clegg e8a4d5f808 [docs] Update doc building instructions
Differential Revision: https://reviews.llvm.org/D39984

llvm-svn: 319857
2017-12-05 23:31:26 +00:00
Sam Clegg c3e16d6002 [docs] Formatting-only change
Differential Revision: https://reviews.llvm.org/D40866

llvm-svn: 319856
2017-12-05 23:28:04 +00:00
Sam Clegg c94d393ad5 [WebAssembly] Initial wasm linker implementation
This linker backend is still a work in progress but is
enough to link simple programs including linking against
library archives.

Differential Revision: https://reviews.llvm.org/D34851

llvm-svn: 318539
2017-11-17 18:14:09 +00:00
Raphael Isemann c197fe1782 Fixed link to bugzilla in the sidebar
llvm-svn: 317675
2017-11-08 10:10:31 +00:00
Rui Ueyama f1f00841d9 Merge SymbolBody and Symbol into one class, SymbolBody.
SymbolBody and Symbol were separated classes due to a historical reason.
Symbol used to be a pointer to a SymbolBody, and the relationship
between Symbol and SymbolBody was n:1.

r2681780 changed that. Since that patch, SymbolBody and Symbol are
allocated next to each other to improve memory locality, and they have
1:1 relationship now. So, the separation of Symbol and SymbolBody no
longer makes sense.

This patch merges them into one class. In order to avoid updating too
many places, I chose SymbolBody as a unified name. I'll rename it Symbol
in a follow-up patch.

Differential Revision: https://reviews.llvm.org/D39406

llvm-svn: 317006
2017-10-31 16:07:41 +00:00
Rui Ueyama 3f851704c1 Move new lld's code to Common subdirectory.
New lld's files are spread under lib subdirectory, and it isn't easy
to find which files are actually maintained. This patch moves maintained
files to Common subdirectory.

Differential Revision: https://reviews.llvm.org/D37645

llvm-svn: 314719
2017-10-02 21:00:41 +00:00
Rui Ueyama 0b9fbf97f0 Fix .rst formatting error.
llvm-svn: 314618
2017-10-01 03:50:48 +00:00
Rui Ueyama 7430897a1d Update benchmark numbers.
llvm-svn: 314617
2017-10-01 03:47:02 +00:00
Rui Ueyama 432342b6a8 Update the monorepo URL in a lld's document.
llvm-svn: 313396
2017-09-15 21:04:43 +00:00
Nico Weber d7d98aa49f minor grammar fix
llvm-svn: 310111
2017-08-04 20:06:03 +00:00
Hans Wennborg 884e84533d Clear release notes for 6.0.0
llvm-svn: 308475
2017-07-19 14:09:52 +00:00
Hans Wennborg 7e9b4784a6 Bump docs version to 6.0
llvm-svn: 308463
2017-07-19 13:47:08 +00:00
Shoaib Meenai e7ecbbcd62 [lld] Update Windows support docs
The /appcontainer flag was added in r299728, and the lib.exe dependency
for creating import libraries was removed in r275242. Update the docs
accordingly.

The PDB support also needs updating, but I'll leave that for someone
who's more familiar with the current status (probably rnk).

llvm-svn: 307998
2017-07-14 04:05:39 +00:00
Eric Beckmann 9e19d790a6 Update documentation to reflection disuse of external cvtres.
Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D34316

llvm-svn: 305631
2017-06-17 02:26:27 +00:00
Rui Ueyama 0e2753897e Fix documentation.
We do not actually accept .rc files. We only accept .res files.

Pointed out by Eric Beckmann.

llvm-svn: 305406
2017-06-14 18:18:20 +00:00
Tom Stellard 9cd629a251 docs: Fix Sphinx detection with out-of-tree builds
Adapt to changes made in r302499.

llvm-svn: 302501
2017-05-09 01:43:22 +00:00
Rui Ueyama 42fca6e794 Recommend users use readelf instead of objdump to dump .comment contents.
readelf's output is much easier to read than objdump's as you can see below.

  $ readelf --string-dump .comment foo
  String dump of section '.comment':
    [     1]  GCC: (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
    [    2c]  clang version 5.0.0
    [    41]  Linker: LLD 5.0.0

  $ objdump -j .comment -s foo
  Contents of section .comment:
   0000 00474343 3a202855 62756e74 7520342e  .GCC: (Ubuntu 4.
   0010 382e342d 32756275 6e747531 7e31342e  8.4-2ubuntu1~14.
   0020 30342e33 2920342e 382e3400 636c616e  04.3) 4.8.4.clan
   0030 67207665 7273696f 6e20352e 302e3020  g version 5.0.0
   0040 004c696e 6b65723a 204c4c44 20352e30  .Linker: LLD 5.0
   0050 2e3000                               .0.

llvm-svn: 301515
2017-04-27 04:50:08 +00:00
Sylvestre Ledru b307a0b949 Improve the documentation. Patch from genewitch. Found on https://github.com/llvm-mirror/lld/pull/5
llvm-svn: 296739
2017-03-02 10:40:24 +00:00
Rui Ueyama 9a651672d0 Clarify benchmark conditions.
llvm-svn: 296383
2017-02-27 21:07:50 +00:00
Rui Ueyama 33d9d5d5b4 Remove an obsolete/duplicate part of a document.
llvm-svn: 296304
2017-02-27 00:11:25 +00:00
Rui Ueyama 4d5f70ddea Fix rst markup.
llvm-svn: 296302
2017-02-26 22:17:46 +00:00
Rui Ueyama 81762abb6b Fix typo.
Pointed out by Piotr Padlewski.

llvm-svn: 296297
2017-02-26 18:32:31 +00:00
Rui Ueyama 19ce92e20c Add a section about how to use ld.lld.
llvm-svn: 296278
2017-02-26 00:20:42 +00:00
Rui Ueyama db895d839f Add how long it takes to link chromium using ld.bfd.
llvm-svn: 296236
2017-02-25 03:27:39 +00:00
Rui Ueyama 7c9f00e634 Fix rst document format error.
llvm-svn: 296235
2017-02-25 03:01:18 +00:00
Rui Ueyama bb361fcba1 Mention FreeBSD ports status and wordsmithing.
Differential Revision: https://reviews.llvm.org/D30321

llvm-svn: 296157
2017-02-24 18:54:47 +00:00
Rui Ueyama 0122142c57 Fix errors in the benchmark result.
I was mixing 1000 and 1024 when calculating file sizes in MiB or
in GiB.

llvm-svn: 296155
2017-02-24 18:50:58 +00:00
Rui Ueyama 28f46ba46f Add notes about the scope of the documents.
llvm-svn: 296088
2017-02-24 04:31:08 +00:00
Rui Ueyama 8b1c940c0b Re-add ReleaseNotes to the doc tree.
Looks like it is not allowed to have an .rst file in this directory
that does not belong to a document tree. I don't know why. This patch
adds a file back to fix a bot.

llvm-svn: 296087
2017-02-24 04:23:39 +00:00
Rui Ueyama 1582e76abd Reorganize the document structure a bit.
C++11.rst is removed because LLD now follows the usual coding style
of the LLVM project.

llvm-svn: 296086
2017-02-24 04:13:08 +00:00
Rui Ueyama 741cc4be7e Add documents to a doctree.
Looks like all documents must be in a doctree.

llvm-svn: 296075
2017-02-24 02:46:03 +00:00
Rui Ueyama fca2a110ed Attempt to fix lld-sphinx-docs bot.
llvm-svn: 296074
2017-02-24 02:07:54 +00:00
Rui Ueyama 2698ab4b62 Update the main document of LLD for those who are not familiar with the project.
llvm-svn: 296072
2017-02-24 01:55:50 +00:00
Hans Wennborg 36bcf8caf9 Don't try to link to the 4.0 release notes
llvm-svn: 294659
2017-02-09 23:27:17 +00:00
Sean Silva 69d65ac44b [docs] Fix typo in section heading.
llvm-svn: 292750
2017-01-22 03:28:56 +00:00
Hans Wennborg 1e307707b3 Clear the release notes for 5.0.0
llvm-svn: 291839
2017-01-12 22:00:54 +00:00
Hans Wennborg 0e978de2a9 Update docs/conf.py version
llvm-svn: 291833
2017-01-12 21:43:32 +00:00