This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA] Incremental LTO linking part 1: simple-object bits
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, DJ Delorie <dj at redhat dot com>, Ian Lance Taylor <ian at airs dot com>, Richard Guenther <rguenther at suse dot de>
- Date: Wed, 30 May 2018 10:02:06 -0700
- Subject: Re: [RFA] Incremental LTO linking part 1: simple-object bits
- References: <20180508150531.GA16916@kam.mff.cuni.cz>
On Tue, May 8, 2018 at 8:05 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> for incremental linking of LTO objects we need to copy debug sections from
> source object files into destination without renaming them from .gnu.debuglto
> into the standard debug section (because they will again be LTO debug section
> in the resulting object file).
>
> I have discussed this with Richard on IRC and I hope it is fine to change the
> API here becuase lto-wrapper is the only user of this function. I will send
> lto-wrapper support in separate patch.
>
> I have lto-bootstrapped/regtested the whole incremental linking patchet on
> x86-64-linux with libbackend being incrementaly linked and also experimented
> with extra testcases and tested that debugging works on resulting cc1 binary.
> OK?
>
> Honza
>
> * simple-object.h (simple_object_copy_lto_debug_sections): Add rename
> parameter.
> * simple-object.c (handle_lto_debug_sections): Add rename parameter.
> (handle_lto_debug_sections_rename): New function.
> (handle_lto_debug_sections_norename): New function.
> (simple_object_copy_lto_debug_sections): Add rename parameter.
> Index: include/simple-object.h
> ===================================================================
> --- include/simple-object.h (revision 260042)
> +++ include/simple-object.h (working copy)
> @@ -198,12 +198,15 @@
> simple_object_release_write (simple_object_write *);
>
> /* Copy LTO debug sections from SRC_OBJECT to DEST.
> + If RENAME is true, rename LTO debug section into debug section (i.e.
> + when producing final binary) and if it is false, keep the sections with
> + original names (when incrementally linking).
> If an error occurs, return the errno value in ERR and an error string. */
>
> extern const char *
> simple_object_copy_lto_debug_sections (simple_object_read *src_object,
> const char *dest,
> - int *err);
> + int *err, int rename);
>
> #ifdef __cplusplus
> }
This part is missing from r260956:
https://gcc.gnu.org/ml/gcc-cvs/2018-05/msg01177.html
--
H.J.