Re: [PATCH] Documentation: kbuild: Add document about reproducible builds

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 11, 2019 at 10:15 PM Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote:
>
> On Wed, 2019-09-11 at 14:04 +0100, Ben Hutchings wrote:
> > On Wed, 2019-09-11 at 21:17 +0900, Masahiro Yamada wrote:
> > > Hi Ben,
> > >
> > >
> > > Thanks for this.
> > > Please let me add some comments.
> > >
> > >
> > > On Wed, Sep 11, 2019 at 8:54 PM Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote:
> > [...]
> > > > +Absolute filenames
> > > > +------------------
> > > > +
> > > > +When the kernel is built out-of-tree, debug information may include
> > > > +absolute filenames for the source files.  The ``__FILE__`` macro may
> > > > +also expand to an absolute filename.  This must be overridden by
> > > > +including `prefix-map options`_ in the `KCFLAGS`_ variable.
> > >
> > > Do you mean -fmacro-prefix-map ?
> >
> > No, I mean -ffile-prefix-map or the older -fdebug-prefix-map.
> >
> > > If so, it is already taken care of by the top Makefile.
> > > If you use GCC 8 or newer, it is automatically added to
> > > KBUILD_CFLAGS.
> >
> > Ah, that's helpful.  So, I suppose I should just mention
> > -fdebug-prefix-map here and warn that __FILE__ will still be a proble
> > if using older compiler versions.
>
> My revised text for this section is:
>
> ---
> When the kernel is built out-of-tree, debug information may include
> absolute filenames for the source files.  This must be overridden by
> including the ``-fdebug-prefix-map`` option in the `KCFLAGS`_ variable.
>
> Depending on the compiler used, the ``__FILE__`` macro may also expand
> to an absolute filename in an out-of-tree build.  Kbuild automatically
> uses the ``-fmacro-prefix-map`` option to prevent this, if it is
> supported.
>
> The Reproducible Builds web site has more information about these
> `prefix-map options`_.
> ---
>
> Does that look OK to you?


Both hunks sound good.

Thanks.






> > > > +Generated files in source packages
> > > > +----------------------------------
> > > > +
> > > > +The build processes for some programs under the ``tools/``
> > > > +subdirectory do not completely support out-of-tree builds.  This may
> > > > +cause source packages built using e.g. ``make rpm-pkg`` to include
> > > > +generated files and so be unreproducible.  It may be necessary to
> > > > +clean the source tree completely (``make mrproper`` or
> > > > +``git clean -d -f -x``) before building a source package.
> > >
> > > Currently, the source package building does not support
> > > out-of-tree build anyway.
> >
> > Yes, I realise that.
> >
> > > 'make O=foo rpm-pkg' fails with an error message.
> > >
> > > Building in a pristine source will solve the issue.
> > [...]
> >
> > The issue I'm thinking about is that an out-of-tree build, prior to the
> > package build, *should* leave the source pristine and sometimes does
> > not.
> >
> > For Debian's official kernel packages, we build a binary package of the
> > upstream source, and at some times this has unexpectedly included some
> > generated files.  I believe a similar issue would affect the upstream
> > package scripts.
>
> My revised text for this section is:
>
> ---
> The build processes for some programs under the ``tools/``
> subdirectory do not completely support out-of-tree builds.  This may
> cause a later source package build using e.g. ``make rpm-pkg`` to
> include generated files.  You should ensure the source tree is
> pristine by running ``make mrproper`` or ``git clean -d -f -x`` before
> building a source package.
> ---
>
> Ben.
>
> --
> Ben Hutchings
> The obvious mathematical breakthrough [to break modern encryption]
> would be development of an easy way to factor large prime numbers.
>                                                            - Bill Gates
>
>


-- 
Best Regards
Masahiro Yamada



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux