06 Apr, 2013

1 commit

  • The current use-case for fixdep is: a source file is run through a single
    processing step, which creates a single dependency file as a side-effect,
    which fixdep transforms into the file used by the kernel build process.

    In order to transparently run the C pre-processor on device-tree files,
    we wish to run both gcc -E and dtc on a source file in a single rule.
    This generates two dependency files, which must be transformed together
    into the file used by the kernel build process. This change modifies
    fixdep so it can process the concatenation of multiple separate input
    dependency files, and produce a correct unified output.

    The code changes have the slight benefit of transforming the loop in
    parse_dep_file() into more of a lexer/tokenizer, with the loop body being
    more of a parser. Previously, some of this logic was mixed together
    before the loop. I also added some comments, which I hope are useful.

    Benchmarking shows that on a cross-compiled ARM tegra_defconfig build,
    there is less than 0.5 seconds speed decrease with this change, on top
    of a build time of ~2m24s. This is probably within the noise.

    Signed-off-by: Stephen Warren
    Acked-by: Rob Herring

    Stephen Warren
     

09 Jan, 2013

1 commit


09 Sep, 2011

1 commit

  • The introduction of include/linux/kconfig.h created 3 extraneous
    dependencies:
    include/config/.h
    include/config/h.h
    include/config/foo.h

    Fix this by excluding kconfig.h from fixdep calculations.

    Signed-off-by: Peter Foley
    Signed-off-by: Michal Marek

    Peter Foley
     

14 Mar, 2011

1 commit

  • Recent change to fixdep:

    commit b7bd182176960fdd139486cadb9962b39f8a2b50
    Author: Michal Marek
    Date: Thu Feb 17 15:13:54 2011 +0100

    fixdep: Do not record dependency on the source file itself

    changed the format of the *.cmd files without realizing that it is also
    used by modpost. Put the path to the source file to the file back, in a
    special variable, so that modpost sees all source files when calculating
    srcversion for modules.

    Reported-and-tested-by: Henrik Rydberg
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Michal Marek
     

21 Feb, 2011

1 commit

  • The dependency is already expressed by the Makefiles, storing it in the
    .cmd file breaks build if a .c file is replaced by .S or vice versa,
    because the .cmd file contains

    foo/bar.o: foo/bar.c ...

    foo/bar.c ... :

    so the foo/bar.c -> foo/bar.o rule triggers even if there is no
    foo/bar.c anymore.

    Acked-by: Stephen Rothwell
    Signed-off-by: Michal Marek

    Michal Marek
     

23 Dec, 2010

1 commit


12 Nov, 2010

1 commit

  • I noticed fixdep uses ~2% of cpu time in kernel build, in function
    use_config()

    fixdep spends a lot of cpu cycles in linear searches in its internal
    string array. With about 400 stored strings per dep file, this begins to
    be noticeable.

    Convert fixdep to use a hash table.

    kbuild results on my x86_64 allmodconfig

    Before patch :

    real 10m30.414s
    user 61m51.456s
    sys 8m28.200s

    real 10m12.334s
    user 61m50.236s
    sys 8m30.448s

    real 10m42.947s
    user 61m50.028s
    sys 8m32.380s

    After:

    real 10m8.180s
    user 61m22.506s
    sys 8m32.384s

    real 10m35.039s
    user 61m21.654s
    sys 8m32.212s

    real 10m14.487s
    user 61m23.498s
    sys 8m32.312s

    Signed-off-by: Eric Dumazet
    Signed-off-by: Michal Marek

    Eric Dumazet
     

12 Dec, 2009

1 commit


24 Sep, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (30 commits)
    Use macros for .data.page_aligned section.
    Use macros for .bss.page_aligned section.
    Use new __init_task_data macro in arch init_task.c files.
    kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts.
    arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0
    kbuild: add static to prototypes
    kbuild: fail build if recordmcount.pl fails
    kbuild: set -fconserve-stack option for gcc 4.5
    kbuild: echo the record_mcount command
    gconfig: disable "typeahead find" search in treeviews
    kbuild: fix cc1 options check to ensure we do not use -fPIC when compiling
    checkincludes.pl: add option to remove duplicates in place
    markup_oops: use modinfo to avoid confusion with underscored module names
    checkincludes.pl: provide usage helper
    checkincludes.pl: close file as soon as we're done with it
    ctags: usability fix
    kernel hacking: move STRIP_ASM_SYMS from General
    gitignore usr/initramfs_data.cpio.bz2 and usr/initramfs_data.cpio.lzma
    kbuild: Check if linker supports the -X option
    kbuild: introduce ld-option
    ...

    Fix trivial conflict in scripts/basic/fixdep.c

    Linus Torvalds
     

21 Sep, 2009

2 commits


20 Sep, 2009

1 commit


15 Jun, 2009

1 commit

  • gcc-4.4.1:

    HOSTCC scripts/basic/fixdep
    scripts/basic/fixdep.c: In function 'traps':
    scripts/basic/fixdep.c:377: warning: dereferencing type-punned pointer will break strict-aliasing rules
    scripts/basic/fixdep.c:379: warning: dereferencing type-punned pointer will break strict-aliasing rules

    (Apparently -fno-strict-aliasing will fix this too)

    Signed-off-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Amerigo Wang
     

03 May, 2007

1 commit

  • build scripts: fixdep blows segfault on string CONFIG_MODULE seen

    The string "CONFIG_MODULE" appearing anywhere in a source file causes
    fixdep to segfault. This string appeared in the wild in the current
    mISDN sources (I think they meant CONFIG_MODULES). But it shouldn't
    segfault (esp as CONFIG_MODULE appeared in a quoted string).

    Signed-off-by: Andy Green
    Signed-off-by: Sam Ravnborg

    Andy Green
     

02 Apr, 2007

1 commit

  • Commit 2e3646e51b2d6415549b310655df63e7e0d7a080 changed the way the
    split config tree is built, but failed to also adjust fixdep accordingly
    - if changing a config option from or to m, files referencing the
    respective CONFIG_..._MODULE (but not the corresponding CONFIG_...)
    didn't get rebuilt.

    The problem is that trisate symbol are represent with three different
    symbols:
    SYMBOL=n => no symbol defined
    SYMBOL=y => CONFIG_SYMBOL defined to '1'
    SYMBOL=m => CONFIG_SYMBOL_MODULE defined to '1'

    But conf_split_config do not distingush between the =y and =m case, so
    only the =y case is honoured.

    This is fixed in fixdep so when a CONFIG symbol with _MODULE is found we
    skip that part and only look for the CONFIG_SYMBOL version.

    Signed-off-by: Jan Beulich
    Signed-off-by: Sam Ravnborg
    Signed-off-by: Linus Torvalds

    Jan Beulich
     

19 Feb, 2006

1 commit

  • While the recent change to also escape # symbols when storing C-file
    compilation command lines was helpful, it should be in effect for all
    command lines, as much as the dollar escaping should be in effect for
    C-source compilation commands. Additionally, for better readability and
    maintenance, consolidating all the escaping (single quotes, dollars,
    and now sharps) was also desirable.

    Signed-Off-By: Jan Beulich
    Signed-off-by: Sam Ravnborg

    Jan Beulich
     

26 Dec, 2005

1 commit


26 Jun, 2005

1 commit

  • scripts/ is full of mismatches between char* params an signed char* arguments,
    and viceversa. gcc4 now complaints loud about this. Patch below deletes all
    those 'signed'.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    J.A. Magallon
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds