From bc134cb1f18e6870ccebbf03e40b7de11f274644 Mon Sep 17 00:00:00 2001 From: Alp Toker Date: Mon, 2 Dec 2013 07:15:33 +0000 Subject: [PATCH] Update the LTO GoldPlugin documentation * Update build instructions to reflect the current source tree layout. * Don't inflict CVS on readers; there's a perfectly good git mirror. * configure with --disable-werror making it possible to build using clang. * ar and nm-new now support the -plugin option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196069 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/GoldPlugin.rst | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/docs/GoldPlugin.rst b/docs/GoldPlugin.rst index d0161e8fee9..28b202adf08 100644 --- a/docs/GoldPlugin.rst +++ b/docs/GoldPlugin.rst @@ -30,29 +30,22 @@ by running ``/usr/bin/ld -plugin``. If it complains "missing argument" then you have plugin support. If not, such as an "unknown option" error then you will either need to build gold or install a version with plugin support. -* To build gold with plugin support: +* Download, configure and build gold with plugin support: .. code-block:: bash - $ mkdir binutils - $ cd binutils - $ cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src login - {enter "anoncvs" as the password} - $ cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co binutils + $ git clone --depth 1 git://sourceware.org/git/binutils-gdb.git binutils $ mkdir build $ cd build - $ ../src/configure --enable-gold --enable-plugins + $ ../binutils/configure --enable-gold --enable-plugins --disable-werror $ make all-gold - That should leave you with ``binutils/build/gold/ld-new`` which supports - the ``-plugin`` option. It also built would have - ``binutils/build/binutils/ar`` and ``nm-new`` which support plugins but - don't have a visible -plugin option, instead relying on the gold plugin - being present in ``../lib/bfd-plugins`` relative to where the binaries - are placed. + That should leave you with ``build/gold/ld-new`` which supports + the ``-plugin`` option. Running ``make`` will additionally build + ``build/binutils/ar`` and ``nm-new`` binaries supporting plugins. * Build the LLVMgold plugin: Configure LLVM with - ``--with-binutils-include=/path/to/binutils/src/include`` and run + ``--with-binutils-include=/path/to/binutils/include`` and run ``make``. Usage @@ -72,9 +65,10 @@ the ``lib`` directory under its prefix and pass the ``-plugin`` option to ``ld``. It will not look for an alternate linker, which is why you need gold to be the installed system linker in your path. -If you want ``ar`` and ``nm`` to work seamlessly as well, install -``LLVMgold.so`` to ``/usr/lib/bfd-plugins``. If you built your own gold, be -sure to install the ``ar`` and ``nm-new`` you built to ``/usr/bin``. +``ar`` and ``nm`` also accept the ``-plugin`` option and it's possible to +to install ``LLVMgold.so`` to ``/usr/lib/bfd-plugins`` for a seamless setup. +If you built your own gold, be sure to install the ``ar`` and ``nm-new`` you +built to ``/usr/bin``. Example of link time optimization -- 2.34.1