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