1. 09 Jun, 2002 16 commits
    • Kai Germaschewski's avatar
      kbuild: Improve output alignment · 1a3fbb1f
      Kai Germaschewski authored
      by Sam Ravnborg
      1a3fbb1f
    • Kai Germaschewski's avatar
      Merge linux-isdn@linux-isdn.bkbits.net:linux-2.5.make · d782495d
      Kai Germaschewski authored
      into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.make
      d782495d
    • Kai Germaschewski's avatar
      kbuild: Track dependencies for .ver files · 0ced6457
      Kai Germaschewski authored
      Tracking dependencies for .ver files isn't really different from
      the dependency tracking for the other .[ois] targets we do,
      so just use the normal $(call if_changed_dep) framework. That makes
      speeds up re-running "make dep" a lot.
      0ced6457
    • Kai Germaschewski's avatar
      kbuild: Generate modversions only for selected objects · d84e208a
      Kai Germaschewski authored
      Up to now, we generated module versions for all objects which
      were listed in $(export-objs).
      
      This had one advantage: A changed .config will not affect which
      .ver files are built, thus saving recompiles.
      
      However, it is fundamentally broken. To build .ver files, we preprocess
      the exporting sources - and the result can obviously depend on
      the current .config. Even worse, some files generate errors when
      preprocessed with the wrong .config - it doesn't matter a lot that
      drivers/sbus/* will generate errors on x86, since it won't be used anyway,
      but e.g. kernel/suspend.c cannot be preprocessed unless 
      CONFIG_SOFTWARE_SUSPEND is set. - Up to now, we just silently ignore
      these errors.
      
      Actually, the whole point behind CONFIG_MODVERSIONS is to make sure
      we don't insert modules into a kernel which was configured differently,
      and as such the generation of symbols can only work when .config is
      known.
      
      So we now only generate symbols for objects which will actually be
      compiled - which means less work, and enforce the kernel to be configured
      before "make dep".
      d84e208a
    • Kai Germaschewski's avatar
      kbuild: Optimize include of .*.cmd · badaa98e
      Kai Germaschewski authored
      Keep track of possible targets while we add rules - Later, only
      include the command lines / dependencies as needed.
      
      E.g., when defining how to build multi-part objects listed in
      $(multi-used-y) and $(multi-used-m), add $(multi-used-y,m) to 
      the variable targets. At the end of Rules.make, we then include
      the saved command lines for these targets (if they exist), needed
      to check whether the command changed and we hence need to rebuild.
      badaa98e
    • Kai Germaschewski's avatar
      kbuild: Put .cmd/.d files into the same directory as the target · 2c3d57b4
      Kai Germaschewski authored
      Previously, we always had put the .cmd/.d files into the local subdir
      - now we put them into the directory where the target lives, like
      
      	some/dir/target.o <-> some/dir/.target.o.cmd
      
      It does not yet make a difference, since we always only generated
      targets in the local directory anyway, but that will change with
      tracking dependencies for .ver files.
      2c3d57b4
    • Kai Germaschewski's avatar
      kbuild: Rules.make cleanup · f9f8d484
      Kai Germaschewski authored
      We use A/CFLAGS_KERNEL by default anyway, so no need to set them
      explicitly for built-in objects.
      f9f8d484
    • Kai Germaschewski's avatar
      kbuild: Rearrange Rules.make · 7a3b08a2
      Kai Germaschewski authored
      This patch doesn't change anything but the order (and some comments) in
      Rules.make. The reason for that is that we use Rules.make for three
      different purposes, fastdep, modules_install and the actual building.
      
      As an example, we don't need all the dependencies and saved command lines
      when installing modules, so it'll speed up this pass to only include the
      rules which will actually get used.
      7a3b08a2
    • Kai Germaschewski's avatar
      kbuild: Generate dependencies for all targets · e5f9911d
      Kai Germaschewski authored
      So far, we had been lazy and not generated dependencies for 
      debugging-only targets, like some/dir/foo.[is]. It actually
      cleans up Rules.make to handle them by the same mechanism, though.
      
      Additionally, make use of $(call if_changed) and $(call if_changed_dep)
      more consistent, the only difference now is post-processing of
      gcc -MD output, which is done for if_changed_dep but not for if_changed.
      e5f9911d
    • Kai Germaschewski's avatar
      kbuild: Pass <target> to fixdep · 33ec0479
      Kai Germaschewski authored
      cpp -MD guesses the target name from the source file name, but not
      always correctly, e.g. when compiling fixdep, it generates prequisites
      for fixdep.o instead of fixdep.
       
      fixdep now fixes up the -MD generated output to contain the right target,
      which is the one we pass on the command line.
      33ec0479
    • Kai Germaschewski's avatar
      kbuild: Small fixes · ea253a53
      Kai Germaschewski authored
      o When using "make -j<n>", the order in modversions.h could change,
        thus causing unnecessary rebuilds.
      o Move a comment in Rules.make which I forgot when I moved the
        associated code.
      o When descending into init/ during the final vmlinux link,
        add a '+' do tell make to use its normal "-j" jobserver handling.
      o It'd be nice to get the logic between make clean and make mrproper
        clearer. I think make clean should remove all targets used in the
        actual build,
        make mrproper should remove the rest, build-specific files, like
        e.g. the .*.cmd files used to save dependencies and command lines
        and other temporary files.
        A real small step in the direction: Remove .tmpversion/.tmp-export-objs
        at mrproper time.
      ea253a53
    • Russell King's avatar
      [PATCH] Fix more header file breakage · 3150c862
      Russell King authored
      Since namespace.h needs the contents of dcache, task struct and
      semaphores, it seems sensible to include these two files into
      namespace.h.
      
      For the future: If the task_struct in sched.h is split into its own
      include file, namespace.h could include this file, but namespace.h
      will also need asm/semaphore.h
      3150c862
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 locks.h cleanup · eada9464
      Martin Dalecki authored
      Since I have been looking in to the lcoking issues recently
      the following rather trivial gabrage code collection became
      obvious...
      
       - Remove "not yet used" code from 1995 in asm/locks.h. It's garbage.
      
       - Remove useless DEBUG_SPINLOCK code from generic spinlock.h code. Just
         compiling for SMP does the trick already.
      
       - Replace all usages of SPINLOCK_DEBUG with the now global
         CONFIG_DEBUG_SPINLOCK.
      eada9464
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 IDE 86 · 467b45ea
      Martin Dalecki authored
      Most importantly this makes ide-scsi work again, which I broke
      IDE 85. And we are starting to be serious about locking issues.
      However the locking issues will take some patches until they stabilize.
      
       - Add spin locks in ata_special_intr.
      
       - Add Server Works CSB6 handling by Matt Domsch.
      
       - Atari updates by Geert Uytterhoeven:
         * irq_lock is used in more than one file, so make it global and rename it
           to ide_irq_lock
         * `hwgroup' is dead, use `channel' instead
         * ide_irq_lock depends on ATA_ARCH_LOCK, not on m68k or APUS
      
       - Small janitorial tidbits by Angus Sawyer.
      
       - PIIX driver updates by Vojtech Pavlik:
      
         * Removes the CONFIG_BLK_DEV_PIIX_TRY133 option. I've got an official
           statement from Intel saying that the controller definitely isn't intended
           to operate at this speed and doing so may cause severe trouble.
      
         * Fixes a bug in ata-timing.c, where EIDE timing data was discarded by
           accident.
      
         * Fixed a couple bugs in the Artop driver (UDMA clocks, active/recovery
           timing), 8-bit timing merging.
      
         * Removes an unused variable from piix.c
      
       - Move locking out from ide_set_handler(). There are places where it incurred
         too frequent lock grab and release or where we did miss to lock against
         concurrent hardware access.
      
         Generally the locking appears to be too fine grained and inconsistent at many
         places. This is the first cut. We will deal with it step by step.
      
       - Make sure message string is initialized even if FANCY_STATUS_DUMPS is
         disabled.
      
       - Don't lock directly inside udma_init and implementations of this method.
      
       - Guard against REQ_SPECIAL issued by the SCSI layer on us. Use REQ_PC in
         ide-scsi.c instead.
      467b45ea
    • Linus Torvalds's avatar
      fix up fall-out from header cleanups · 71e3ff68
      Linus Torvalds authored
      71e3ff68
    • Mitchell Blank Jr.'s avatar
      [PATCH] atm warning fix (vs 2.5.21) · dce2f963
      Mitchell Blank Jr. authored
      This fixes a large batch of warnings that popped up with the new stricter
      bitops.h that recently was introduced.  We actually didn't have 64-bit
      bug, but we had built our own *_flags_t typedef's that were just struct
      wrappers around an unsigned long.  We used to pass their addresses directly
      to set_bit() and friends but now that causes an error.  The typedef's really
      didn't serve much purpose so the cleanest fix is to just eliminate them and
      use "unsigned long" directly.
      dce2f963
  2. 08 Jun, 2002 24 commits