[RFA] Incremental LTO linking part 1: simple-object bits
Jan Hubicka
hubicka@ucw.cz
Wed May 30 17:25:00 GMT 2018
> 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
I have managed to commit partially, it should be fixed now. My apologizes for this!
Honza
>
> --
> H.J.
More information about the Gcc-patches
mailing list