30 May, 2018

1 commit

  • [ Upstream commit 825d487583089f9a33d31650c9c41f6474aab7fc ]

    Some filesystems have timestamps with coarse precision that may allow
    for a recently built object file to have the same timestamp as the
    updated time on one of its dependency files. When that happens, the
    object file doesn't get rebuilt as it should.

    This is especially the case on filesystems that don't have sub-second
    time precision, such as ext3 or Ext4 with 128B inodes.

    Let's prevent that by making sure updated dependency files have a newer
    timestamp than the first file we created (i.e. autoksyms.h.tmpnew).

    Reported-by: Thomas Lindroth
    Signed-off-by: Nicolas Pitre
    Tested-by: Thomas Lindroth
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Nicolas Pitre
     

12 Dec, 2016

1 commit


10 May, 2016

1 commit


30 Mar, 2016

1 commit

  • Given the list of exported symbols needed by all modules, we can create
    a header file containing preprocessor defines for each of those symbols.
    Also, when some symbols are added and/or removed from the list, we can
    update the time on the corresponding files used as build dependencies for
    those symbols. And finally, if any symbol did change state, the
    corresponding source files must be rebuilt.

    The insertion or removal of an EXPORT_SYMBOL() entry within a module may
    create or remove the need for another exported symbol. This is why this
    operation has to be repeated until the list of needed exported symbols
    becomes stable. Only then the final kernel and modules link take place.

    Signed-off-by: Nicolas Pitre
    Acked-by: Rusty Russell

    Nicolas Pitre