An error occurred fetching the project authors.
  1. 04 Mar, 2003 1 commit
  2. 02 Mar, 2003 3 commits
    • Kai Germaschewski's avatar
      kbuild: remove dependency on compile.h · db0d6263
      Kai Germaschewski authored
      We had a dummy dependency on include/linux/compile.h, but it really caused
      more trouble than benefits. It's not actually needed for the module
      postprocessing, it was only put there to make sure we recognize when
      gcc changed under us. However, we really can only do so much, and
      the rest of kbuild won't notice a changed gcc either, so if the user replaces
      gcc during a build, he just can't rely on the build doing the right thing.
      
      The common cases are still covered, anyway. When the command to invoke
      gcc changes ("CC=gcc32") we notice, and when the path to
      
      	/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
      
      changes (which luckily contains the "2.96", we'll notice and handle that,
      too.
      db0d6263
    • Sam Ravnborg's avatar
      [PATCH] kbuild: Top-level Makefile, trivial tidy up · 41f57979
      Sam Ravnborg authored
      1) Remove dep from "make help", it is no longer useful
      2) replace Generating with GEN when generating version.h
      41f57979
    • Sam Ravnborg's avatar
      [PATCH] kbuild: do not run split-include for all compilations · 1ef75673
      Sam Ravnborg authored
      When a rule in the top-level Makefile includes scripts as one
      of the prerequisites it inherits FORCE, and thus is always build.
      include/linux/autoconf.h recently included scripts hereby forcing
      split-include to be run for each compilation.
      
      Fix all rules that lists scripts as a prerequisite but did not list FORCE.
      Fixed by listing the executable needed direct.
      1ef75673
  3. 01 Mar, 2003 3 commits
  4. 24 Feb, 2003 3 commits
  5. 19 Feb, 2003 4 commits
    • Kai Germaschewski's avatar
      kbuild: [PATCH] put genksyms in scripts dir · 46bd1da6
      Kai Germaschewski authored
      This puts genksyms into scripts/genksyms/.
      
      genksyms used to be maintained externally, though the only possible user
      was the kernel build. Moving it into the kernel sources makes it easier to
      keep it uptodate, like for example updating it to generate linker scripts
      directly instead of postprocessing the generated header file fragments 
      with sed, as we do currently.
      
      Also, genksyms does not handle __typeof__, which needs to be fixed since
      some of the exported symbol in the kernel are defined using __typeof__. 
      
      (Rusty Russell/me)
      46bd1da6
    • Kai Germaschewski's avatar
      kbuild: [PATCH] eliminate warnings in generated module files · b45a1476
      Kai Germaschewski authored
      From Richard Henderson:
      
      > The compiler.h fragment should describe the problem well enough.
      
      (I tested egcs 2.91.66, even there no problem)
      b45a1476
    • Kai Germaschewski's avatar
      kbuild: typo fix · 306a1aad
      Kai Germaschewski authored
      Patch from Rolf Eike Beer:
      
      > Linus asked for typo fixes, so here is one...
      306a1aad
    • Kai Germaschewski's avatar
      kbuild: Fix a race with module postprocessing · 939ff499
      Kai Germaschewski authored
      For the modversions case, we need vmlinux to be built before postprocessing
      modules can start, since we need to extract the checksums from it.
      
      For the non-modversions case, we use vmlinux if it's available (so we can
      sensibly give warnings about unresolved symbols), but otherwise not. 
      However, this could race with vmlinux being built at the exact same time as 
      being processed.
      
      Fixed by waiting until vmlinux is finished before starting module
      postprocessing.
      939ff499
  6. 17 Feb, 2003 1 commit
  7. 16 Feb, 2003 1 commit
  8. 14 Feb, 2003 5 commits
    • Kai Germaschewski's avatar
      kbuild: Rename some module postprocessing stuff · 1cc0e052
      Kai Germaschewski authored
      Since it's now not only used for modversioning but generally, rename
      the Makefile .modver -> .modpost and the generated files to
      <module>.ver.[co].
        
      Also, when there's now vmlinux during module postprocessing, don't print
      warnings on unresolved symbols (there's just too many, then).
      1cc0e052
    • Kai Germaschewski's avatar
      kbuild: Use list of modules for "make modules_install" · 46cccf0b
      Kai Germaschewski authored
      Since we rely on our list of all modules for building anyway, we
      can as well use it to install the modules. So we don't need to
      descend in that step anymore, speeding it up, though it's not
      a particularly performance-critical area.
      46cccf0b
    • Kai Germaschewski's avatar
      kbuild: Move the version magic generation into module postprocessing · 2ec54bc1
      Kai Germaschewski authored
      Since we'll have to always do module postprocessing shortly, we can as well
      get rid of the special cased init/vermagic.o which needed to be compiled
      before descending, and instead include the current version magic string
      during post processing. For that purpose, the generation of the string is
      moved from init/vermagic.c to include/linux/vermagic.h.
      
      People who externally maintain modules will also be happy about that.
      2ec54bc1
    • Kai Germaschewski's avatar
      kbuild: Always postprocess modules · 0e7d983b
      Kai Germaschewski authored
      Currently, we are doing the final module link (.ko) at different places
      (Makefile.build vs Makefile.modver) depending on CONFIG_MODVERSIONS.
      Apart from being confusing, that also means we have this code path
      duplicated, and the modversions path most likely gets little testing.
          
      It's actually cleaner to just do the final link from Makefile.modver always,
      performance-wise it's not a noticable difference, since we don't descend
      in that step, but just use the list of modules generated during the build.
          
      This step is also preliminary for doing additional postprocessing, e.g.
      generating module alias information from PCI / USB device tables.
      0e7d983b
    • Linus Torvalds's avatar
      Linux 2.5.61 · 15f1049d
      Linus Torvalds authored
      15f1049d
  9. 10 Feb, 2003 3 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: cosmetics · be2bf2df
      Kai Germaschewski authored
      From ram <ram@curvesoft.com>:
      
      > Appended below is a small patch to the top-level makefile; it
      > -- replaces a call to $(shell/echo/sed) with $(subst) and adds a 
      >    comment
      > -- fixes some typos.
      be2bf2df
    • Linus Torvalds's avatar
      Linux v2.5.60 · f2478c00
      Linus Torvalds authored
      f2478c00
  10. 08 Feb, 2003 1 commit
    • Kai Germaschewski's avatar
      kbuild: Handle external SUBDIRS with modversions · ac844bd1
      Kai Germaschewski authored
      We need to collect a list of all modules during the recursive build. I used
      a "touch .tmp_versions/<path/to/module.ko>" to do so, which however doesn't
      work so well, when path/to isn't inside the kernel tree.
        
      The best way to build external modules is currently using kbuild by saying
      "make SUBDIRS=/some/external/dir modules", which was thus broken. While this
      way is not all that optimal and I hope to come up with something better
      before 2.6, it works and should keep working, so this patch fixes the usage
      above.
        
      Instead of touching files with the entire path added, we just create a
      <module>.mod file in $(MODVERDIR) now, and save the path to the module.ko 
      in it. Since module names are unique, a flat hierarchy is actually fine here.
      ac844bd1
  11. 05 Feb, 2003 1 commit
  12. 04 Feb, 2003 1 commit
  13. 03 Feb, 2003 2 commits
    • Kai Germaschewski's avatar
      kbuild: Assorted fixlets · 03e7dcfb
      Kai Germaschewski authored
      o Build modules with CONFIG_MODVERSIONS when just saying "make"
      o Ignore generated *.ver.c files
      o Fix a typo (Sam Ravnborg)
      o Fix another typo (Paul Marinceu)
      03e7dcfb
    • Kai Germaschewski's avatar
      kbuild: Rename CONFIG_MODVERSIONING -> CONFIG_MODVERSIONS · d5ea3bb5
      Kai Germaschewski authored
      CONFIG_MODVERSIONING was a temporary name introduced to distinguish
      between the old and new module version implementation. Since the
      traces of the old implementation are now gone from the build system,
      we rename the config option back in order to not confuse users more
      than necessary in 2.6.
       
      Also, remove some historic modversions cruft throughout the tree.
      d5ea3bb5
  14. 26 Jan, 2003 3 commits
    • Sam Ravnborg's avatar
      kbuild: Enable the syntax "make dir/" · 8aba4e43
      Sam Ravnborg authored
      "make dir/" is used to build a subsystem without going through the
      full kernel tree, neither completing the build.
      This is solely useful during development, when focus is on a
      single subsystem.
      This is the counterpart to "make dir/module.ko"
      8aba4e43
    • Sam Ravnborg's avatar
      kbuild: HEAD replaced with head-y · 50c71fe5
      Sam Ravnborg authored
      In arch/$(ARCH)/Makefile the objects to be linked as the very first are specified with HEAD.
      To make more consistent naming, and to allow smarter kbuild style declarations
      HEAD is replaced with head-y.
      Support for the old notaion is kept for now.
      Only i386 updated.
      50c71fe5
    • Sam Ravnborg's avatar
      kbuild: arch{mrproper,clean} no longer mandatory · 7806d2f1
      Sam Ravnborg authored
      archmrproper and archclean is declared .PHONY in top-level Makefile,
      therefore they are no longer mandatory in arch/$(ARCH)/Makefile.
      7806d2f1
  15. 25 Jan, 2003 2 commits
  16. 24 Jan, 2003 4 commits
    • Kai Germaschewski's avatar
      kbuild/modules: Record versions for unresolved symbols · dcc38eae
      Kai Germaschewski authored
      In the case of CONFIG_MODVERSIONING, the build step will only
      generate preliminary <module>.o objects, and an additional
      postprocessing step is necessary to record the versions of the unresolved
      symbols and add them into the final <module>.ko
        
      The version information for unresolved symbols is again recorded into
      a special section, "__versions", which contains an array of symbol
      name strings and checksum (struct modversion_info). Size is here not
      an issue, since this section will not be stored permanently in kernel
      memory.
        
      Makefile.modver takes care of the following steps:
      o Collect the version information for all exported symbols from vmlinux
        and all modules which export symbols.
      o For each module, generate a C file which contains the modversion
        information for all unresolved symbols in that module.
      o For each module, compile that C file to an object file
      o Finally, link the <module>.ko using the preliminary <module.o> + the
        version information above.
        
      The first two steps are currently done by not very efficient scripting,
      so there's room for performance improvement using some helper C code.
      dcc38eae
    • Kai Germaschewski's avatar
      kbuild: Don't build final .ko yet when descending with CONFIG_MODVERSIONING · e4ccd604
      Kai Germaschewski authored
      With CONFIG_MODVERSIONING, we need to record the versions of the unresolved
      symbols in the final <module>.ko, which we only know after we finished
      the descending build. So we only build <module>.o in that case.
        
      Also, keep track of the modules we built, the post-processing step needs
      a list of all modules. Keeping track is done by touching
      .tmp_versions/path/to/module.ko
      e4ccd604
    • Kai Germaschewski's avatar
      kbuild: Remove obsolete CONFIG_MODVERSIONS cruft · 81106eac
      Kai Germaschewski authored
      Though the CONFIG_MODVERSIONS option was removed with rusty's module
      rewrite and the associated code broken, a lot of that code was still
      living on here and there. Now it's gone for good.
      81106eac
    • Kai Germaschewski's avatar
      kbuild: Remove -DEXPORT_SYMTAB switch · 61cfcb3d
      Kai Germaschewski authored
      rusty's module rewrite removed the reference to EXPORT_SYMTAB 
      from linux/module.h, and it's not used anywhere else, either.
      61cfcb3d
  17. 16 Jan, 2003 1 commit
  18. 14 Jan, 2003 1 commit
    • Kai Germaschewski's avatar
      Module Sanity Check · 1d411b80
      Kai Germaschewski authored
      This patch, based on Rusty's implementation, adds a special section
      to vmlinux and all modules, which contain the kernel version
      string, values of some particularly important config options
      (SMP,preempt,proc family) and the gcc version.
      
      When inserting a module, the version string is checked against the
      kernel version string and loading is rejected if they don't match.
      
      The version string is actually added to the modules during the
      final .ko generation, so that a changed version string does only
      cause relinking, not recompilation, which is a major performance
      improvement over the old 2.4 way of doing things.
      1d411b80