An error occurred fetching the project authors.
  1. 27 Oct, 2004 1 commit
  2. 15 Aug, 2004 1 commit
    • Sam Ravnborg's avatar
      kbuild: Generate *.lds instead of *.lds.s · c51824f0
      Sam Ravnborg authored
      When building a kernel on platforms where the filesytem do
      not distingush between upper and lower case the rule:
      .S -> .s did not work.
      In a normal build this is only used for linker scripts.
      So create a separate rule for .lds files, and use generic cpp flags.
      
      Patch from: Dan Aloni <da-x@colinux.org>
      Modified to use cpp flags + added documentation.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      c51824f0
  3. 10 Aug, 2004 1 commit
  4. 15 Mar, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Fix early parallel make failures · 952a0ae3
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>
      
      Ingo said:
      
        Starting at around 2.6.4-rc2-mm1, I keep seeing 'scripts/fixdep: Text
        file busy' messages when doing a -j10 bzImage build - which seems to
        suggest that by the time fixdep is used by the build system it's not
        built yet.
      
      Sam said:
      
      I was pretty sure it was something I had caused, so I gave it a spin.  What
      actually happened was that we tried to build the target 'silentoldconfig'
      in parrallel with 'scripts'.  Since 'silentoldconfig' started a new make
      and then the config target needed 'scripts' we saw two parallel runs.
      
      The way I decided to fix it was to split scripts/ in two parts.  The first
      part is now the very basic stuff - moved to scripts/basic/.  The second
      part is dependent on kernel config etc.  and kept in scripts/
      
      In the 2.7 timeframe i will redo this initial stuff - it's becoming too
      messy for anyone to understand today.
      
      
      Description:
      
      Fix dependencies in early phases of kernel build.  This solves a few
      problems nively: modpost is no longer rebuild twicewhen reaching the
      'target' state 'make -j10' now works nicely again
      
      The patch is rather large due to the following file moves:
      mkdir scripts/basic
      mv scripts/fixdep.c        scripts/basic
      mv scripts/split-include.c scripts/basic
      mv scripts/docproc.c       scripts/basic
      952a0ae3
  5. 04 Feb, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] kbuild: Unmangle include options for gcc · 9f61b232
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>
      
      When utilising the make O=...  option the include options for gcc were
      mangled even when absolute paths was used.  Also remove duplication of
      CPPFLAGS.  They were assigned twice.  [It is still possible for
      architectures to modify CPPFLAGS].
      
      This patch allows xconfig to be build with make O=...  xconfig.It will also
      help development of external modules with absolute paths for their -I
      options.
      
      Note: As a side effect a full recompile of the kernel takes place due to
      changes in number of gcc options.
      9f61b232
  6. 20 Sep, 2003 1 commit
    • Sam Ravnborg's avatar
      kbuild: Escape "'" in cmd macro · efacc216
      Sam Ravnborg authored
      Building drivers/eisa were broken in non-verbose mode.
      This has been fixed by escaping "'" for cmd. It was used in $(call cmd,eisaid).
      Escaping "'" is already done by if_changed, so this brings cmd in line with
      if_changed
      efacc216
  7. 11 Sep, 2003 1 commit
    • Sam Ravnborg's avatar
      kbuild: Separate output directory · 5a808876
      Sam Ravnborg authored
      Separate output directory support enables the following (at least):
      o Building several configurations from the same SRC base, and in parrallel
      o Building from a RO media
      o More efficient build if files are retreived via NFS (files stored locally)
      
      Usage is simple:
      cd /path/to/kernel/src
      mkdir ~/build/kernel
      make O=~/build/kernel [Make options]
      Please note: The O= syntax must be used for ALL invocations of make.
      
      As an alternative you may set KBUILD_OUTPUT to the directory where
      to put the output files.
      
      The patch works for me, and I have tried with various configurations,
      including allnoconfig and defconfig.
      
      How it works:
      If the O= option is used, or KBUILD_OUTPUT is set then a second invocation
      of make happens in the output directory.
      The second invocation of make uses VPATH to tell make where to locate
      the files. Furthermore include options for gcc is modifyied to point
      both in the directory where the kernel src is located, and in the
      directory where the output files are located. The latter is used for
      generated .h files.
      
      When building the kernel the asm symlink is created. To support this
      a new 'include2' directory is created. Within include2/ asm is a symlink to
      the asm-$(ARCH) directory in the kernel src.
      Also when building the kernel the asm-offset.h file is created, and
      located in the include/asm-$(ARCH) directory, but included via
      <asm/asm-offset.h>.
      Therefore within include/ another asm symlink is created pointing to
      the asm-$(ARCH) directory located in the output directory.
      
      In Makefile.build the output directory is created if not already present.
      This was needed to support xfs, and oprofile.
      
      The patch is loosly based on ideas from Kai G. Roman Zippel
      introduced support for this in kconfig long time ago
      5a808876
  8. 08 Jun, 2003 1 commit
    • Sam Ravnborg's avatar
      kbuild: kill do_cmd · 11acea02
      Sam Ravnborg authored
      The lonely two users of do_cmd has gone.
      Therefore we can now kill it for good
      11acea02
  9. 07 Jun, 2003 1 commit
    • Sam Ravnborg's avatar
      [PATCH] be more flexible about creating library archives · 1ffdd437
      Sam Ravnborg authored
      New makefile variable introduced: lib-y
      
      The lib-y syntax allows you to do the usual tricks such as:
      
      	lib-$(CONFIG_SMP) += percpu_counter.o
      
      A built-in.o is always present in a directory that list .o files in
      either obj-* or lib-*.
      
      In contrast, lib.a is made only when lib-y is defined.
      
      I also updated lib/Makefile, so that crc32.o is now always built-in
      if selected. 
      1ffdd437
  10. 10 Mar, 2003 2 commits
    • Sam Ravnborg's avatar
      kbuild: build-targets replaced with always · 87b2da2b
      Sam Ravnborg authored
      The former name "kbuild-targets" did not give the user the intuitive feeling
      that this target will be build regards less of any dependencies
      no matter if we compile modules or not.
      The new name "always" imply that this will be build always, and
      tus is more informative.
      Fixed the few users of build-targets, and added a warning in Makefile.build
      87b2da2b
    • Sam Ravnborg's avatar
      kbuild: Introduced extra-y, as replacement for EXTRA_TARGETS · f94e5fd7
      Sam Ravnborg authored
      EXTRA_TARGETS has been overloaded with functionality.
      This is now split in two:
      targets := list targets kbuild did not know of otherwise
      extra-y := list targets to be build when not building modules only.
      extra-y is mainly used to list .o files that is not to be included
      in the fnal built-in.o file for a directory.
      f94e5fd7
  11. 09 Mar, 2003 1 commit
    • Sam Ravnborg's avatar
      kbuild: Use targets := to tell kbuild about additional targets · 0be6a9a0
      Sam Ravnborg authored
      EXTRA_TARGETS served several purposes before:
      1) List targets to be build (built-in only)
      2) Inform kbuild of targets within the makefile
      
      Mixing the above are causing confusion, so for now on
      targets :=
      is used to inform kbuild about targets in a Makefile - that it otherwise
      did not know about.
      
      kbuild uses the "targets :=" information to:
      a) read the dependency file .target.cmd
      b) delete the target file during make clean
      0be6a9a0
  12. 10 Feb, 2003 2 commits
    • Kai Germaschewski's avatar
      kbuild: Allow for ',$ in commands · e9dfd3da
      Kai Germaschewski authored
      Quote ',$ before passing them to the shell - ' must be escaped for
      echo, $$ will be converted to $ by make.
      
      This allows to use e.g. perl commands in the build with support
      from the generic $(call if_changed,...).
      
      by Konrad Eisele
      e9dfd3da
    • Kai Germaschewski's avatar
      kbuild: Customflags for cmd_objcopy · 2c683742
      Kai Germaschewski authored
      From Konrad Eisele:
      
      > like with cmd_ld in scripts/Makefile.lib having possibility to add 
      > customflags with cmd_objcopy would be nice. When building a
      > ROMKernel I'd like to use:
      > OBJCOPYFLAGS_rompiggydata := --remove-section=.text
      > OBJCOPYFLAGS_$(MODEL)piggytext := --only-section=.text
      2c683742
  13. 26 Jan, 2003 1 commit
  14. 24 Jan, 2003 2 commits
  15. 30 Dec, 2002 1 commit
    • Sam Ravnborg's avatar
      kbuild: $(build) and $(clean) macros for make invocation · 69964a47
      Sam Ravnborg authored
      The former macro $(descend ...) hide for make the fact that a recursively make was
      invoked. The replacement $(Q)$(MAKE) -f scripts/Makefile.build obj=dir was too verbose.
        
      Introduced $(build) and $(clean) allowing the following syntax:
      $(Q)$(MAKE) $(build)=arch/i386/boot target
      and similar for clean.
        
      Introduced $(build) and $(clean) in general, and for i386 architecture.
      69964a47
  16. 05 Dec, 2002 1 commit
  17. 04 Dec, 2002 1 commit
  18. 01 Dec, 2002 1 commit
    • Rusty Russell's avatar
      [PATCH] module names fix · c99f5cea
      Rusty Russell authored
      By Kai Germaschewski:
      
       "Well, I have another solution, which doesn't need additional Makefile
        magic or anything.
      
        I just put the module name into each .o file where <linux/module.h> is
        included. Putting it into the section .gnu.linkonce.modname has the effect
        that even for multi-part modules, we only end up with one copy of the
        name.
      
        Caveat: I'm using the preprocessor macro KBUILD_MODNAME to know what to
        put into .gnu.linkonce.modname. The following used to happen:
      
        (drivers/isdn/eicon/Makefile)
      
        divas-objs := common.o Divas_mod.o ...
        eicon-objs := common.o eicon_mod.o ...
      
        Divas_mod.o is compiled with -DKBUILD_MODNAME=divas
        eicon_mod.o is compiled with -DKBUILD_MODNAME=eicon
        common.o is compiled with -DKBUILD_MODNAME=divas_eicon
      
        So in the case above, both divas.o and eicon.o would end up with
        a .gnu.linkonce.modname section containing "divas_eicon"
      
        My fix to this is to not define KBUILD_MODNAME when compiling an object
        whilch will be linked into more than one module - so common.o gets no
        .gnu.linkonce.modname section at all. Works fine here.
      
        Now, doing this I remove one of the reasons why we would need modules
        linked as '.ko' ;), but it seems much cleaner than generating a temporary
        file, using objcopy etc."
      c99f5cea
  19. 24 Nov, 2002 1 commit
    • Kai Germaschewski's avatar
      kbuild: Always generate the module name automatically. · 1b24d807
      Kai Germaschewski authored
      Rusty introduced no_module_init() to provide a way of putting
      the module name into a special section. People didn't like that,
      and it's doable without user visible changes ;)
      
      I didn't keep any compatibility define for no_module_init (and removed
      the current occurences) in order to make sure it doesn't spread anyway.
      1b24d807
  20. 22 Nov, 2002 3 commits
    • Sam Ravnborg's avatar
      kbuild: No longer use descend macro, added 'Kernel: xxx is ready' text · 38a481f5
      Sam Ravnborg authored
      In the top-level Makefile and in the i386 architecture specific
      makefile no longer use descend.
      i386 is used as template for other architectures, so they shall
      be kept nice.
      
      Also added a little text:
      Kernel: arch/i386/boot/bzImage is ready
      A reminder of what target you did build, and where it is located
      38a481f5
    • Sam Ravnborg's avatar
      kbuild: Introduced build-targets · 80fee71c
      Sam Ravnborg authored
      build-targets is used to list targets that is always built.
      This allowed misuse of EXTRA_TARGETS to be deleted.
      built-in.o is now only created for directories defining a obj-* variable,
      avoiding this for scripts and lxdialog
      
      One Makefile needed a dummy obj- statement
      80fee71c
    • Sam Ravnborg's avatar
      kbuild: Move flags to Makefile.lib · 996fdfdc
      Sam Ravnborg authored
      a_flags defined in Makefile.lib, and a set of flags made for host
      related rules. This avoided some duplication in Makefile.build
      996fdfdc
  21. 20 Nov, 2002 1 commit
    • Kai Germaschewski's avatar
      kbuild: Fix KBUILD_MODNAME · a8fae364
      Kai Germaschewski authored
      The KBUILD_MODNAME patch which got included lately dated back a couple
      of months ago and thus got the following wrong:
      o multi-part components which don't live in the local subdir
      o using foo-y instead of foo-objs
      a8fae364
  22. 11 Nov, 2002 1 commit
    • Rusty Russell's avatar
      [PATCH] KBUILD_MODNAME define for build system · 850b830c
      Rusty Russell authored
      By Kai Germaschewski.
      
      This patch adds a -DKBUILD_MODNAME to the kernel compile, which
      contains the base of the module name which is being built.
      
       - Some sreorganization of the c_flags since they're needed for
         generating modversions (.ver) and compiling
       - Use the right KBUILD_MODNAME also when the user just wants a .i/.s/.lst
         file for debugging and also when generating modversions
       - It looks like with your current approach you can't have a ',' or '-' in
         KBUILD_MODNAME - however, that means that KBUILD_MODNAME is not quite
         right for passing module parameters for built-in modules on the command
         line, it would be confusing to pass parameters for ide-cd as
         ide_cd.foo=whatever. So that part could use a little more thought.
       - If you think your module_names trick makes a noticable difference, feel
         free to re-add it.
       - It's possible that objects are linked into more than one module - I
         suppose this shouldn't be a problem, since these objects hopefully
         don't have a module_init() nor do they export symbols. Not sure if your
         patch did handle this.
      850b830c
  23. 29 Oct, 2002 1 commit
  24. 27 Oct, 2002 1 commit
    • Sam Ravnborg's avatar
      kbuild: scrits/Makefile.lib · 675f908d
      Sam Ravnborg authored
      Moved generic definitions to Makefile.lib,
      This allows us to share all generic definitions between the different Makefiles.
      Performance impact has been measured to less than 1%
      675f908d
  25. 25 Oct, 2002 1 commit
    • Sam Ravnborg's avatar
      kbuild: Removed unused definitions · 54a6c2fc
      Sam Ravnborg authored
      o Deleted subdir-n and subdir- handling in Makefile.build
      o Deleted all host-progs related stuff in Makfile.modver
      o In Makefile.modver also deleted everything related to composite objects
      o Fixed an error when deleting a .ver file + .hdepend and then do make
        - filter-out in Makefile.modver was faulty
      54a6c2fc
  26. 23 Oct, 2002 3 commits
    • Kai Germaschewski's avatar
      kbuild: Allow for <mod>-y as well as <mod>-objs for multipart objects. · 17527296
      Kai Germaschewski authored
      Traditionally, the individual components of a multipart module are
      listed in <mod>-objs. Allow for using <mod>-y as well, as that turns
      out to simplify declaring optional parts of multi-part modules, see
      the converted examples in net/*/Makefile.
      
      This change is backwards-compatible, i.e. not converted Makefiles
      still work just fine.
      17527296
    • Kai Germaschewski's avatar
      kbuild: Convert build and modversion phases · e846b41a
      Kai Germaschewski authored
      Alright, so now actually all four phases are converted to new-style,
      i.e. we call make -f scripts/Makefile.<phase> which includes the
      actual subdir Makefile.
      
      The obvious drawback is some code duplication between the four
      scripts/Makefile.<phase>, which could easily be overcome including
      shared parts, but since I'm going for maximum performance, I did not
      for now.
      
      Rules.make is empty now ;) (Well, not quite, since if it was 0 bytes,
      make mrproper would remove it...)
      e846b41a
    • Kai Germaschewski's avatar
      kbuild: Split Rules.make · b706ce29
      Kai Germaschewski authored
      Rules.make is used in 4 phases, 
      o generate modversions
      o build
      o install modules
      o clean
      
      split out the code specific to the phase and move it into 
      scripts/Makefile.<phase>
      b706ce29