PATCH: requesting feedback on dead function optimisation

From: Graham Stoney (greyham@research.canon.com.au)
Date: Mon Apr 10 2000 - 04:05:50 EST


Fellow kernel hackers,

For the last couple of weeks I've been looking at how to get gcc/ld to
automatically optimise unused functions and data out of the kernel. In
particular I want to optimise away functions which aren't ever called, even
if other functions in the same object are. I consider this less error prone
than wrapping functions in #ifdef CONFIG_..., and it's particularly good if
you're building a kernel for embedded systems which don't use stuff like /proc
fs, support for which isn't always wrapped in #ifdefs.

This exercise has turned out to be distinctly non-trivial, so I'm soliciting
feedback on the following patch. In its present form, the patch will break
all architectures except PowerPC, but if you're keen you should be able to
work out what to do to make it work for other architectures by following the
architecture-dependent steps from below. Once I've convinced everyone that
this is a good idea :-), I'll send a patch which works on all architectures.
Most importantly, please let me know what you think.

I'm working with a 2.2.x kernel, so that's what the patch is against at
present. I haven't tried to build anything as modules, and have probably
broken modules; this is experimental, and I'm posting it to solicit feedback.
You may need to apply some bits by hand depending on how recent your 2.2
kernel is, but that should be easy once you get the idea.

Here is the rational behind what I've done in the patch:

1. enable gcc's -ffunction-sections/-fdata-sections options, and ld's
   --gc-sections option in the top Makefile, which together work all the
   magic. You need a recent enough gcc and binutils to have these flags
   actually turn on.

   That causes a whole host of stuff to break, so fix the resulting damage:

2. The section namespace used by -ffunction-sections (.text.*) clashes with
   that used by include/asm/init.h (.text.init), so I renamed the init
   sections to .init.text. Similarly for .init.data. Also for pmac/prep/
   openfirmware sections, for consistency.

3. The user space exception fixup __ex_table search uses a binary chop. This
   relies on references to instructions which may fault on user space accesses
   being in the table in ascending address order. Unfortunately, a bug in all
   previous versions of the linker reverses the order of the orphan .text.*
   sections generated using -ffunction-sections when an intermediate "ld -r"
   is done, causing the binary search to fail.

   There has been some discussion of this on the binutils list, including a
   patch which fixes the problem at:
        http://sourceware.cygnus.com/ml/binutils/2000-04/msg00165.html

   However, it's a big ask to expect _everyone_ who wants to build the kernel
   to upgrade to the latest binutils snapshot, so my solution is to change all
   the intermediate link stages using "ld -r" into archive builds using "ar"
   instead. This is enough to work around the "ld -r" bug. People tell me this
   makes sections disappear, but I don't see that and I'm yet to be convinced
   as to why this isn't The Right Thing to do anyway.

   I've done this by adding an A_TARGET rule to Rules.make, which knows how
   to build an aggregate archive from other archives (and some extra objects
   when necessary). High level L_TARGETs turn into A_TARGETs, and all the
   O_TARGETs turn into L_TARGETs (to avoid "ld -r").

4. Mods to the vmlinux.lds file to keep the world in sync:

   Add an explicit ENTRY(_start) in the .lds file to prevent everything
   getting optimised away(!) because no external references exist.
   
   Changed the .text and .data entries to .text* and .data*
   I use a single entry instead of adding a .text.* and .data.*, so that the
   linker will keep the ex_table sorted when some functions attempting user
   space access are in .text.* and others are still in .text. This allows you
   to turn -ffunction-sections on and off at will, and mix it with assembler
   code that just does ".text" and also makes user accesses.

   Changed the .text/data.init to .init.text/data, as per init.h

   KEEP the .fixup and __ex_table, otherwise they get optimised away.

5. I've added a check_exception_table function to check_bugs to ensure that
   the table really is in ascending order, since it's not real noticable when
   it's broken until a rogue program passes a bad pointer to the kernel.
   This may be temporary; I'm trying to save space, after all.

6. The __get/put_user_asm macros in include/asm-ppc/uaccess.h were making an
   explicit reference to ".text", rather than using ".previous" like other
   architectures do. This caused me much grief, and should be fixed for
   consistency anyway.

Let the complaints begin!

Index: Makefile
===================================================================
retrieving revision 1.3
diff -u -r1.3 Makefile
--- Makefile 2000/03/10 02:01:14 1.3
+++ Makefile 2000/04/10 08:44:24
@@ -99,6 +99,9 @@
 # use '-fno-strict-aliasing', but only if the compiler can take it
 CFLAGS += $(shell if $(CC) -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-fno-strict-aliasing"; fi)
 
+# use '-ffunction-sections -fdata-sections', but only if compiler can take it
+CFLAGS += $(shell if $(CC) -ffunction-sections -fdata-sections -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-ffunction-sections -fdata-sections"; fi)
+
 ifdef CONFIG_SMP
 CFLAGS += -D__SMP__
 AFLAGS += -D__SMP__
@@ -114,7 +117,7 @@
 # Include the make variables (CC, etc...)
 #
 
-CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
+CORE_FILES =kernel/kernel.a mm/mm.a fs/fs.a ipc/ipc.a
 FILESYSTEMS =fs/filesystems.a
 NETWORKS =net/network.a
 DRIVERS =drivers/block/block.a \
@@ -210,6 +213,9 @@
 endif
 
 include arch/$(ARCH)/Makefile
+
+# use '--gc-sections', but only if the linker can take it
+LINKFLAGS += $(shell if $(LD) --gc-sections -v >/dev/null 2>&1; then echo "--gc-sections"; fi)
 
 .S.s:
         $(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -E -o $*.s $<
Index: Rules.make
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Rules.make
--- Rules.make 1999/12/30 05:55:23 1.1.1.1
+++ Rules.make 2000/04/10 05:42:06
@@ -64,7 +64,7 @@
 #
 #
 #
-all_targets: $(O_TARGET) $(L_TARGET)
+all_targets: $(O_TARGET) $(L_TARGET) $(A_TARGET)
 
 #
 # Rule to compile a set of .o files into one .o file
@@ -94,6 +94,34 @@
         $(AR) $(EXTRA_ARFLAGS) rcs $@ $(LX_OBJS) $(L_OBJS)
         @ ( \
             echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_ARFLAGS) $(LX_OBJS) $(L_OBJS))),$$(strip $$(subst $$(comma),:,$$(EXTRA_ARFLAGS) $$(LX_OBJS) $$(L_OBJS))))' ; \
+ echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
+ echo 'endif' \
+ ) > $(dir $@)/.$(notdir $@).flags
+endif
+
+#
+# Rule to compile a set of .a files into one .a (Aggregate) file
+#
+ifdef A_TARGET
+$(A_TARGET): $(A_LIBS) $(A_OBJS)
+ rm -f $@
+ mkdir -p tmp
+ ( \
+ cd tmp; \
+ for a in $(A_LIBS); do \
+ b=`basename $$a .a`; \
+ for o in `ar xv ../$$a | sed -e 's/x - //'`; do \
+ mv $$o $$b:$$o; \
+ $(AR) $(EXTRA_ARFLAGS) rs ../$@ $$b:$$o; \
+ done \
+ done \
+ )
+ rm -rf tmp
+ifdef A_OBJS
+ $(AR) $(EXTRA_ARFLAGS) rs $@ $(A_OBJS)
+endif
+ @ ( \
+ echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_ARFLAGS) $(A_LIBS) $(A_OBJS)),$$(strip $$(subst $$(comma),:,$$(EXTRA_ARFLAGS) $$(A_LIBS) $$(A_OBJS)))))' ; \
             echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
             echo 'endif' \
         ) > $(dir $@)/.$(notdir $@).flags
Index: arch/ppc/Makefile
===================================================================
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 Makefile
--- arch/ppc/Makefile 2000/01/04 03:38:02 1.1.1.2
+++ arch/ppc/Makefile 2000/04/10 05:31:27
@@ -38,12 +38,12 @@
 
 ARCH_SUBDIRS = arch/ppc/kernel arch/ppc/mm arch/ppc/lib
 SUBDIRS := $(SUBDIRS) $(ARCH_SUBDIRS)
-ARCHIVES := arch/ppc/kernel/kernel.o arch/ppc/mm/mm.o arch/ppc/lib/lib.o $(ARCHIVES)
-CORE_FILES := arch/ppc/kernel/kernel.o arch/ppc/mm/mm.o arch/ppc/lib/lib.o $(CORE_FILES)
+ARCHIVES := arch/ppc/kernel/kernel.a arch/ppc/mm/mm.a arch/ppc/lib/lib.a $(ARCHIVES)
+CORE_FILES := arch/ppc/kernel/kernel.a arch/ppc/mm/mm.a arch/ppc/lib/lib.a $(CORE_FILES)
 
 ifdef CONFIG_XMON
 SUBDIRS += arch/ppc/xmon
-CORE_FILES += arch/ppc/xmon/x.o
+CORE_FILES += arch/ppc/xmon/x.a
 endif
 
 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
@@ -53,8 +53,8 @@
 
 ifdef CONFIG_MATH_EMULATION
 SUBDIRS += arch/ppc/math-emu
-ARCHIVES += arch/ppc/math-emu/math-emu.o
-CORE_FILES += arch/ppc/math-emu/math-emu.o
+ARCHIVES += arch/ppc/math-emu/math-emu.a
+CORE_FILES += arch/ppc/math-emu/math-emu.a
 endif
 
 ifdef CONFIG_8xx
@@ -64,8 +64,8 @@
 
 ifdef CONFIG_APUS
 SUBDIRS += arch/ppc/amiga
-ARCHIVES += arch/ppc/amiga/amiga.o
-CORE_FILES += arch/ppc/amiga/amiga.o
+ARCHIVES += arch/ppc/amiga/amiga.a
+CORE_FILES += arch/ppc/amiga/amiga.a
 endif
 
 checks:
Index: arch/ppc/vmlinux.lds
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 vmlinux.lds
--- arch/ppc/vmlinux.lds 1999/12/30 05:56:15 1.1.1.1
+++ arch/ppc/vmlinux.lds 2000/04/10 08:22:14
@@ -1,4 +1,5 @@
 OUTPUT_ARCH(powerpc)
+ENTRY(_start)
 SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
 /* Do we need any of these for elf?
    __DYNAMIC = 0; */
@@ -30,7 +31,7 @@
   .plt : { *(.plt) }
   .text :
   {
- *(.text)
+ *(.text*)
     *(.fixup)
     *(.got1)
   }
@@ -48,7 +49,7 @@
   . = (. + 0x0FFF) & 0xFFFFF000;
   .data :
   {
- *(.data)
+ *(.data*)
     *(.data1)
     *(.sdata)
     *(.sdata2)
@@ -59,39 +60,39 @@
   _edata = .;
   PROVIDE (edata = .);
 
- .fixup : { *(.fixup) }
+ .fixup : { KEEP (*(.fixup)) }
   __start___ex_table = .;
- __ex_table : { *(__ex_table) }
+ __ex_table : { KEEP (*(__ex_table)) }
   __stop___ex_table = .;
 
   . = ALIGN(32);
- .data.cacheline_aligned : { *(.data.cacheline_aligned) }
+ .cacheline_aligned.data : { *(.cacheline_aligned.data) }
 
   . = ALIGN(4096);
   __init_begin = .;
- .text.init : { *(.text.init) }
- .data.init : { *(.data.init) }
+ .init.text : { *(.init.text) }
+ .init.data : { *(.init.data) }
   . = ALIGN(4096);
   __init_end = .;
 
   . = ALIGN(4096);
   __pmac_begin = .;
- .text.pmac : { *(.text.pmac) }
- .data.pmac : { *(.data.pmac) }
+ .pmac.text : { *(.pmac.text) }
+ .pmac.data : { *(.pmac.data) }
   . = ALIGN(4096);
   __pmac_end = .;
 
   . = ALIGN(4096);
   __prep_begin = .;
- .text.prep : { *(.text.prep) }
- .data.prep : { *(.data.prep) }
+ .prep.text : { *(.prep.text) }
+ .prep.data : { *(.prep.data) }
   . = ALIGN(4096);
   __prep_end = .;
 
   . = ALIGN(4096);
   __openfirmware_begin = .;
- .text.openfirmware : { *(.text.openfirmware) }
- .data.openfirmware : { *(.data.openfirmware) }
+ .openfirmware.text : { *(.openfirmware.text) }
+ .openfirmware.data : { *(.openfirmware.data) }
   . = ALIGN(4096);
   __openfirmware_end = .;
 
Index: arch/ppc/8xx_io/Makefile
===================================================================
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 Makefile
--- arch/ppc/8xx_io/Makefile 2000/03/10 01:11:06 1.1.1.2
+++ arch/ppc/8xx_io/Makefile 2000/04/10 05:31:50
@@ -7,34 +7,34 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := 8xx_io.a
-O_OBJS = commproc.o uart.o
+L_TARGET := 8xx_io.a
+L_OBJS = commproc.o uart.o
 
 ifdef CONFIG_FEC_ENET
-O_OBJS += fec.o
+L_OBJS += fec.o
 endif
 ifdef CONFIG_SCC_ENET
-O_OBJS += enet.o
+L_OBJS += enet.o
 endif
 
 ifdef CONFIG_RPXTOUCH
-O_OBJS += touch_panel.o
+L_OBJS += touch_panel.o
 endif
 
 ifdef CONFIG_UCODE_PATCH
-O_OBJS += micropatch.o
+L_OBJS += micropatch.o
 endif
 
 ifdef CONFIG_RPXLCD
-O_OBJS += lcd823.o
+L_OBJS += lcd823.o
 endif
 
 ifdef CONFIG_HTDMSOUND
-O_OBJS += cs4218_tdm.o
+L_OBJS += cs4218_tdm.o
 endif
 
 ifdef CONFIG_CPM_IIC
-O_OBJS += iic.o
+L_OBJS += iic.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: arch/ppc/amiga/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- arch/ppc/amiga/Makefile 1999/12/30 05:56:16 1.1.1.1
+++ arch/ppc/amiga/Makefile 2000/04/10 05:31:58
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := amiga.o
-O_OBJS := config.o amiints.o cia.o time.o \
+L_TARGET := amiga.a
+L_OBJS := config.o amiints.o cia.o time.o \
             bootinfo.o amisound.o chipram.o ints.o
-OX_OBJS := amiga_ksyms.o
+LX_OBJS := amiga_ksyms.o
 
 include $(TOPDIR)/Rules.make
Index: arch/ppc/kernel/Makefile
===================================================================
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 Makefile
--- arch/ppc/kernel/Makefile 2000/01/04 03:38:21 1.1.1.2
+++ arch/ppc/kernel/Makefile 2000/04/10 05:56:43
@@ -10,55 +10,55 @@
 .S.o:
         $(CC) $(CFLAGS) -D__ASSEMBLY__ -c $< -o $*.o
 
-O_TARGET := kernel.o
-OX_OBJS := ppc_ksyms.o setup.o
+L_TARGET := kernel.a
+LX_OBJS := ppc_ksyms.o setup.o
 
 
-O_OBJS := traps.o irq.o idle.o time.o process.o signal.o syscalls.o misc.o \
+L_OBJS := traps.o irq.o idle.o time.o process.o signal.o syscalls.o misc.o \
           bitops.o ptrace.o align.o ppc_htab.o
 ifdef CONFIG_PCI
-O_OBJS += pci.o
+L_OBJS += pci.o
 endif
 ifdef CONFIG_KGDB
-O_OBJS += ppc-stub.o
+L_OBJS += ppc-stub.o
 endif
 ifdef CONFIG_TOTALMP
-O_OBJS += totalmp.o
+L_OBJS += totalmp.o
 endif
 ifdef CONFIG_PMAC_PBOOK
-O_OBJS += sleep.o
+L_OBJS += sleep.o
 endif
 
 ifeq ($(CONFIG_8xx),y)
 ifeq ($(CONFIG_MATH_EMULATION),y)
-O_OBJS += m8xx_setup.o ppc8xx_pic.o
+L_OBJS += m8xx_setup.o ppc8xx_pic.o
 else
-O_OBJS += m8xx_setup.o softemu8xx.o ppc8xx_pic.o
+L_OBJS += m8xx_setup.o softemu8xx.o ppc8xx_pic.o
 endif
 ifdef CONFIG_PCI
-O_OBJS += qspan_pci.o
+L_OBJS += qspan_pci.o
 endif
 ifdef CONFIG_MBX
-O_OBJS += i8259.o
+L_OBJS += i8259.o
 endif
 else
 ifeq ($(CONFIG_APUS),y)
-O_OBJS += apus_setup.o prom.o openpic.o
+L_OBJS += apus_setup.o prom.o openpic.o
 else
-O_OBJS += prep_time.o pmac_time.o chrp_time.o \
+L_OBJS += prep_time.o pmac_time.o chrp_time.o \
           pmac_setup.o pmac_support.o \
           prep_pci.o pmac_pci.o chrp_pci.o \
           residual.o prom.o openpic.o feature.o \
           prep_nvram.o open_pic.o i8259.o pmac_pic.o indirect_pci.o
-OX_OBJS += chrp_setup.o prep_setup.o
+LX_OBJS += chrp_setup.o prep_setup.o
 endif
 endif
 
 ifdef CONFIG_SMP
-O_OBJS += smp.o
+L_OBJS += smp.o
 endif
 
-all: head.o kernel.o
+all: head.o kernel.a
 
 head.o: head.S $(TOPDIR)/include/linux/tasks.h ppc_defs.h
 
Index: arch/ppc/kernel/syscalls.c
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 syscalls.c
--- arch/ppc/kernel/syscalls.c 1999/12/30 05:56:22 1.1.1.1
+++ arch/ppc/kernel/syscalls.c 2000/04/07 07:05:39
@@ -40,6 +40,9 @@
 void
 check_bugs(void)
 {
+ extern void check_exception_table(void);
+
+ check_exception_table();
 }
 
 asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int on)
Index: arch/ppc/lib/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- arch/ppc/lib/Makefile 1999/12/30 05:56:23 1.1.1.1
+++ arch/ppc/lib/Makefile 2000/04/10 05:32:47
@@ -5,11 +5,11 @@
 .S.o:
         $(CC) -D__ASSEMBLY__ -c $< -o $*.o
 
-O_TARGET = lib.o
-O_OBJS = checksum.o string.o strcase.o
+L_TARGET = lib.a
+L_OBJS = checksum.o string.o strcase.o
 
 ifdef CONFIG_SMP
-O_OBJS += locks.o
+L_OBJS += locks.o
 endif
 
 
Index: arch/ppc/math-emu/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- arch/ppc/math-emu/Makefile 2000/01/04 03:38:36 1.1.1.1
+++ arch/ppc/math-emu/Makefile 2000/04/10 05:32:57
@@ -2,12 +2,12 @@
 #
 #
 
-O_TARGET := math-emu.o
+L_TARGET := math-emu.a
 
-O_OBJS := math.o fmr.o lfd.o stfd.o
+L_OBJS := math.o fmr.o lfd.o stfd.o
 
 ifdef CONFIG_MATH_EMULATION
-O_OBJS += fabs.o fadd.o fadds.o fcmpo.o fcmpu.o fctiw.o fctiwz.o \
+L_OBJS += fabs.o fadd.o fadds.o fcmpo.o fcmpu.o fctiw.o fctiwz.o \
             fdiv.o fdivs.o fmadd.o fmadds.o fmsub.o fmsubs.o \
             fmul.o fmuls.o fnabs.o fneg.o fnmadd.o fnmadds.o \
             fnmsub.o fnmsubs.o fres.o frsp.o frsqrte.o fsel.o \
Index: arch/ppc/mm/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- arch/ppc/mm/Makefile 1999/12/30 05:56:30 1.1.1.1
+++ arch/ppc/mm/Makefile 2000/04/10 05:33:13
@@ -7,7 +7,7 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := mm.o
-O_OBJS = fault.o init.o extable.o
+L_TARGET := mm.a
+L_OBJS = fault.o init.o extable.o
 
 include $(TOPDIR)/Rules.make
Index: arch/ppc/mm/extable.c
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 extable.c
--- arch/ppc/mm/extable.c 1999/12/30 05:56:30 1.1.1.1
+++ arch/ppc/mm/extable.c 2000/04/10 08:19:20
@@ -6,6 +6,7 @@
 
 #include <linux/module.h>
 #include <asm/uaccess.h>
+#include <asm/init.h>
 
 extern const struct exception_table_entry __start___ex_table[];
 extern const struct exception_table_entry __stop___ex_table[];
@@ -53,4 +54,15 @@
 #endif
 
         return 0;
+}
+
+void __init
+check_exception_table(void)
+{
+ const struct exception_table_entry *entry;
+
+ for (entry = __start___ex_table; entry < __stop___ex_table-1; entry++)
+ if (entry[0].insn >= entry[1].insn)
+ panic("exception table entry for instr at %lx is out of order!",
+ entry[0].insn);
 }
Index: arch/ppc/xmon/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- arch/ppc/xmon/Makefile 1999/12/30 05:56:30 1.1.1.1
+++ arch/ppc/xmon/Makefile 2000/04/10 05:33:17
@@ -1,6 +1,6 @@
 # Makefile for xmon
 
-O_TARGET = x.o
-O_OBJS = start.o xmon.o ppc-dis.o ppc-opc.o subr_prf.o setjmp.o
+L_TARGET = x.a
+L_OBJS = start.o xmon.o ppc-dis.o ppc-opc.o subr_prf.o setjmp.o
 
 include $(TOPDIR)/Rules.make
Index: fs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/Makefile 1999/12/30 05:59:28 1.1.1.1
+++ fs/Makefile 2000/04/10 06:59:40
@@ -7,10 +7,10 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-L_TARGET := filesystems.a
-L_OBJS = $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.o))
-O_TARGET := fs.o
-O_OBJS = open.o read_write.o devices.o file_table.o buffer.o \
+A_TARGET := filesystems.a
+A_LIBS = $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.a))
+L_TARGET := fs.a
+L_OBJS = open.o read_write.o devices.o file_table.o buffer.o \
                 super.o block_dev.o stat.o exec.o pipe.o namei.o fcntl.o \
                 ioctl.o readdir.o select.o fifo.o locks.o filesystems.o \
                 dcache.o inode.o attr.o bad_inode.o file.o $(BINFMTS)
@@ -21,9 +21,9 @@
                 nfsd nls devpts adfs qnx4 efs
 
 ifeq ($(CONFIG_QUOTA),y)
-O_OBJS += dquot.o
+L_OBJS += dquot.o
 else
-O_OBJS += noquot.o
+L_OBJS += noquot.o
 endif
 
 ifeq ($(CONFIG_CODA_FS),y)
Index: fs/adfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/adfs/Makefile 1999/12/30 05:59:31 1.1.1.1
+++ fs/adfs/Makefile 2000/04/10 03:18:02
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := adfs.o
-O_OBJS := dir.o file.o inode.o map.o namei.o super.o
-M_OBJS := $(O_TARGET)
+L_TARGET := adfs.a
+L_OBJS := dir.o file.o inode.o map.o namei.o super.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/affs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/affs/Makefile 1999/12/30 05:59:31 1.1.1.1
+++ fs/affs/Makefile 2000/04/10 03:18:14
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := affs.o
-O_OBJS := super.o namei.o inode.o file.o dir.o amigaffs.o bitmap.o symlink.o
-M_OBJS := $(O_TARGET)
+L_TARGET := affs.a
+L_OBJS := super.o namei.o inode.o file.o dir.o amigaffs.o bitmap.o symlink.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/autofs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/autofs/Makefile 1999/12/30 05:59:32 1.1.1.1
+++ fs/autofs/Makefile 2000/04/10 03:19:09
@@ -4,32 +4,9 @@
 # We can build this either out of the kernel tree or the autofs tools tree.
 #
 
-O_TARGET := autofs.o
-O_OBJS := dir.o dirhash.o init.o inode.o root.o symlink.o waitq.o
+L_TARGET := autofs.a
+L_OBJS := dir.o dirhash.o init.o inode.o root.o symlink.o waitq.o
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
-ifdef TOPDIR
-#
-# Part of the kernel code
-#
 include $(TOPDIR)/Rules.make
-else
-#
-# Standalone (handy for development)
-#
-include ../Makefile.rules
-
-CFLAGS += -D__KERNEL__ -DMODULE $(KFLAGS) -I../include -I$(KINCLUDE) $(MODFLAGS)
-
-all: $(O_TARGET)
-
-$(O_TARGET): $(O_OBJS)
- $(LD) -r -o $(O_TARGET) $(O_OBJS)
-
-install: $(O_TARGET)
- install -c $(O_TARGET) /lib/modules/`uname -r`/fs
-
-clean:
- rm -f *.o *.s
-endif
Index: fs/coda/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/coda/Makefile 1999/12/30 05:59:33 1.1.1.1
+++ fs/coda/Makefile 2000/04/10 03:19:20
@@ -2,10 +2,10 @@
 # Makefile for the Linux Coda filesystem routines.
 #
 
-O_TARGET := coda.o
-O_OBJS := psdev.o cache.o cnode.o inode.o dir.o file.o upcall.o coda_linux.o\
+L_TARGET := coda.a
+L_OBJS := psdev.o cache.o cnode.o inode.o dir.o file.o upcall.o coda_linux.o\
             symlink.o pioctl.o sysctl.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 # If you want debugging output, please uncomment the following line.
 
Index: fs/devpts/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/devpts/Makefile 1999/12/30 05:59:34 1.1.1.1
+++ fs/devpts/Makefile 2000/04/10 03:19:29
@@ -2,9 +2,9 @@
 # Makefile for the Linux /dev/pts virtual filesystem.
 #
 
-O_TARGET := devpts.o
-O_OBJS := root.o inode.o
+L_TARGET := devpts.a
+L_OBJS := root.o inode.o
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/efs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/efs/Makefile 1999/12/30 05:59:34 1.1.1.1
+++ fs/efs/Makefile 2000/04/10 03:19:38
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := efs.o
-O_OBJS := super.o inode.o namei.o dir.o file.o symlink.o
-M_OBJS := $(O_TARGET)
+L_TARGET := efs.a
+L_OBJS := super.o inode.o namei.o dir.o file.o symlink.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/ext2/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/ext2/Makefile 1999/12/30 05:59:34 1.1.1.1
+++ fs/ext2/Makefile 2000/04/10 03:19:48
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := ext2.o
-O_OBJS := acl.o balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
+L_TARGET := ext2.a
+L_OBJS := acl.o balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
                 ioctl.o namei.o super.o symlink.o truncate.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/fat/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/fat/Makefile 1999/12/30 05:59:35 1.1.1.1
+++ fs/fat/Makefile 2000/04/10 03:20:04
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := fat.o
-O_OBJS := buffer.o cache.o dir.o file.o inode.o misc.o mmap.o tables.o cvf.o
-OX_OBJS := fatfs_syms.o
-M_OBJS := $(O_TARGET)
+L_TARGET := fat.a
+L_OBJS := buffer.o cache.o dir.o file.o inode.o misc.o mmap.o tables.o cvf.o
+LX_OBJS := fatfs_syms.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/hfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/hfs/Makefile 1999/12/30 05:59:37 1.1.1.1
+++ fs/hfs/Makefile 2000/04/10 03:20:11
@@ -7,12 +7,12 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := hfs.o
-O_OBJS := balloc.o bdelete.o bfind.o bins_del.o binsert.o bitmap.o bitops.o \
+L_TARGET := hfs.a
+L_OBJS := balloc.o bdelete.o bfind.o bins_del.o binsert.o bitmap.o bitops.o \
             bnode.o brec.o btree.o catalog.o dir.o dir_cap.o dir_dbl.o \
             dir_nat.o extent.o file.o file_cap.o file_hdr.o inode.o mdb.o \
             part_tbl.o string.o super.o sysdep.o trans.o version.o
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/hpfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/hpfs/Makefile 1999/12/30 05:59:40 1.1.1.1
+++ fs/hpfs/Makefile 2000/04/10 03:20:21
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := hpfs.o
-O_OBJS := hpfs_fs.o hpfs_caps.o
-M_OBJS := $(O_TARGET)
+L_TARGET := hpfs.a
+L_OBJS := hpfs_fs.o hpfs_caps.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/isofs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/isofs/Makefile 1999/12/30 05:59:40 1.1.1.1
+++ fs/isofs/Makefile 2000/04/10 03:20:33
@@ -7,13 +7,13 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := isofs.o
-O_OBJS := namei.o inode.o file.o dir.o util.o rock.o symlink.o
+L_TARGET := isofs.a
+L_OBJS := namei.o inode.o file.o dir.o util.o rock.o symlink.o
 
 ifdef CONFIG_JOLIET
-O_OBJS += joliet.o
+L_OBJS += joliet.o
 endif
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/lockd/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/lockd/Makefile 1999/12/30 05:59:41 1.1.1.1
+++ fs/lockd/Makefile 2000/04/10 03:23:46
@@ -7,10 +7,10 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := lockd.o
-O_OBJS := clntlock.o clntproc.o host.o svc.o svclock.o svcshare.o \
+L_TARGET := lockd.a
+L_OBJS := clntlock.o clntproc.o host.o svc.o svclock.o svcshare.o \
             svcproc.o svcsubs.o mon.o xdr.o
-OX_OBJS := lockd_syms.o
-M_OBJS := $(O_TARGET)
+LX_OBJS := lockd_syms.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/minix/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/minix/Makefile 1999/12/30 05:59:48 1.1.1.1
+++ fs/minix/Makefile 2000/04/10 03:23:51
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := minix.o
-O_OBJS := bitmap.o truncate.o namei.o inode.o file.o dir.o symlink.o fsync.o
-M_OBJS := $(O_TARGET)
+L_TARGET := minix.a
+L_OBJS := bitmap.o truncate.o namei.o inode.o file.o dir.o symlink.o fsync.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/msdos/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/msdos/Makefile 1999/12/30 05:59:48 1.1.1.1
+++ fs/msdos/Makefile 2000/04/10 03:20:53
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := msdos.o
-O_OBJS := namei.o
-OX_OBJS := msdosfs_syms.o
-M_OBJS := $(O_TARGET)
+L_TARGET := msdos.a
+L_OBJS := namei.o
+LX_OBJS := msdosfs_syms.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/ncpfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/ncpfs/Makefile 1999/12/30 05:59:49 1.1.1.1
+++ fs/ncpfs/Makefile 2000/04/10 03:21:01
@@ -7,10 +7,10 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := ncpfs.o
-O_OBJS := dir.o file.o inode.o ioctl.o mmap.o ncplib_kernel.o sock.o \
+L_TARGET := ncpfs.a
+L_OBJS := dir.o file.o inode.o ioctl.o mmap.o ncplib_kernel.o sock.o \
                 symlink.o ncpsign_kernel.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 # If you want debugging output, please uncomment the following line
 # EXTRA_CFLAGS += -DDEBUG_NCP=1
Index: fs/nfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/nfs/Makefile 1999/12/30 05:59:49 1.1.1.1
+++ fs/nfs/Makefile 2000/04/10 03:21:31
@@ -7,14 +7,14 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := nfs.o
-O_OBJS := inode.o file.o read.o write.o dir.o symlink.o proc.o \
+L_TARGET := nfs.a
+L_OBJS := inode.o file.o read.o write.o dir.o symlink.o proc.o \
             nfs2xdr.o
 
 ifdef CONFIG_ROOT_NFS
- O_OBJS += nfsroot.o mount_clnt.o
+ L_OBJS += nfsroot.o mount_clnt.o
 endif
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/nfsd/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/nfsd/Makefile 1999/12/30 05:59:50 1.1.1.1
+++ fs/nfsd/Makefile 2000/04/10 03:21:21
@@ -7,11 +7,11 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := nfsd.o
-O_OBJS := nfssvc.o nfsctl.o nfsproc.o nfsfh.o vfs.o \
+L_TARGET := nfsd.a
+L_OBJS := nfssvc.o nfsctl.o nfsproc.o nfsfh.o vfs.o \
             export.o auth.o lockd.o nfscache.o nfsxdr.o \
             stats.o
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/nls/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/nls/Makefile 1999/12/30 05:59:52 1.1.1.1
+++ fs/nls/Makefile 2000/04/10 03:24:01
@@ -310,7 +310,7 @@
   endif
 endif
 
-O_TARGET = nls.o
-OX_OBJS = $(NLS)
+L_TARGET = nls.a
+LX_OBJS = $(NLS)
 
 include $(TOPDIR)/Rules.make
Index: fs/ntfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/ntfs/Makefile 1999/12/30 05:59:55 1.1.1.1
+++ fs/ntfs/Makefile 2000/04/10 03:21:57
@@ -1,8 +1,8 @@
 # Rules for making the NTFS driver
 
-O_TARGET := ntfs.o
-O_OBJS := fs.o sysctl.o support.o util.o inode.o dir.o super.o attr.o
-M_OBJS := $(O_TARGET)
+L_TARGET := ntfs.a
+L_OBJS := fs.o sysctl.o support.o util.o inode.o dir.o super.o attr.o
+M_OBJS := $(L_TARGET)
 EXTRA_CFLAGS = -DNTFS_IN_LINUX_KERNEL -DNTFS_VERSION=\"990411\"
 
 include $(TOPDIR)/Rules.make
Index: fs/proc/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/proc/Makefile 1999/12/30 05:59:56 1.1.1.1
+++ fs/proc/Makefile 2000/04/10 03:22:23
@@ -7,17 +7,17 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := proc.o
-O_OBJS := inode.o root.o base.o generic.o mem.o link.o fd.o array.o \
+L_TARGET := proc.a
+L_OBJS := inode.o root.o base.o generic.o mem.o link.o fd.o array.o \
                 kmsg.o scsi.o proc_tty.o
 ifdef CONFIG_OMIRR
-O_OBJS := $(O_OBJS) omirr.o
+L_OBJS := $(L_OBJS) omirr.o
 endif
-OX_OBJS := procfs_syms.o
+LX_OBJS := procfs_syms.o
 M_OBJS :=
 
 ifeq ($(CONFIG_SUN_OPENPROMFS),y)
-O_OBJS += openpromfs.o
+L_OBJS += openpromfs.o
 else
   ifeq ($(CONFIG_SUN_OPENPROMFS),m)
   M_OBJS += openpromfs.o
@@ -25,7 +25,7 @@
 endif
 
 ifeq ($(CONFIG_PROC_DEVICETREE),y)
-O_OBJS += proc_devtree.o
+L_OBJS += proc_devtree.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: fs/qnx4/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/qnx4/Makefile 1999/12/30 05:59:57 1.1.1.1
+++ fs/qnx4/Makefile 2000/04/10 03:22:33
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := qnx4.o
-O_OBJS := inode.o dir.o namei.o file.o bitmap.o symlinks.o truncate.o \
+L_TARGET := qnx4.a
+L_OBJS := inode.o dir.o namei.o file.o bitmap.o symlinks.o truncate.o \
 fsync.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/romfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/romfs/Makefile 1999/12/30 05:59:58 1.1.1.1
+++ fs/romfs/Makefile 2000/04/10 03:22:43
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := romfs.o
-O_OBJS := inode.o
-M_OBJS := $(O_TARGET)
+L_TARGET := romfs.a
+L_OBJS := inode.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/smbfs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/smbfs/Makefile 1999/12/30 05:59:58 1.1.1.1
+++ fs/smbfs/Makefile 2000/04/10 03:22:51
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := smbfs.o
-O_OBJS := proc.o dir.o cache.o sock.o inode.o file.o ioctl.o
-M_OBJS := $(O_TARGET)
+L_TARGET := smbfs.a
+L_OBJS := proc.o dir.o cache.o sock.o inode.o file.o ioctl.o
+M_OBJS := $(L_TARGET)
 
 # If you want debugging output, please uncomment the following line
 
Index: fs/sysv/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/sysv/Makefile 1999/12/30 05:59:59 1.1.1.1
+++ fs/sysv/Makefile 2000/04/10 03:22:59
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := sysv.o
-O_OBJS := ialloc.o balloc.o inode.o file.o dir.o symlink.o namei.o \
+L_TARGET := sysv.a
+L_OBJS := ialloc.o balloc.o inode.o file.o dir.o symlink.o namei.o \
                 fsync.o truncate.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/ufs/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/ufs/Makefile 1999/12/30 06:00:00 1.1.1.1
+++ fs/ufs/Makefile 2000/04/10 03:23:06
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile.
 
-O_TARGET := ufs.o
-O_OBJS := acl.o balloc.o cylinder.o dir.o file.o ialloc.o inode.o \
+L_TARGET := ufs.a
+L_OBJS := acl.o balloc.o cylinder.o dir.o file.o ialloc.o inode.o \
                 namei.o super.o symlink.o truncate.o util.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: fs/umsdos/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/umsdos/Makefile 1999/12/30 06:00:01 1.1.1.1
+++ fs/umsdos/Makefile 2000/04/10 03:23:15
@@ -6,12 +6,12 @@
 # unless it's something special (not a .c file).
 #
 # Note 2: the CFLAGS definitions are now in the main makefile.
-O_TARGET := umsdos.o
+L_TARGET := umsdos.a
 
-O_OBJS := dir.o file.o inode.o ioctl.o mangle.o namei.o \
+L_OBJS := dir.o file.o inode.o ioctl.o mangle.o namei.o \
                 rdir.o symlink.o emd.o check.o
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
 
Index: fs/vfat/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- fs/vfat/Makefile 1999/12/30 06:00:02 1.1.1.1
+++ fs/vfat/Makefile 2000/04/10 03:23:25
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-O_TARGET := vfat.o
-O_OBJS := namei.o
-OX_OBJS := vfatfs_syms.o
-M_OBJS := $(O_TARGET)
+L_TARGET := vfat.a
+L_OBJS := namei.o
+LX_OBJS := vfatfs_syms.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
Index: include/asm-ppc/init.h
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 init.h
--- include/asm-ppc/init.h 1999/12/30 06:00:31 1.1.1.1
+++ include/asm-ppc/init.h 2000/04/07 00:43:02
@@ -2,37 +2,37 @@
 #define _PPC_INIT_H
 
 #if __GNUC__ > 2 || __GNUC_MINOR__ >= 90 /* egcs */
-#define __init __attribute__ ((__section__ (".text.init")))
-#define __initdata __attribute__ ((__section__ (".data.init")))
+#define __init __attribute__ ((__section__ (".init.text")))
+#define __initdata __attribute__ ((__section__ (".init.data")))
 #define __initfunc(__arginit) \
         __arginit __init; \
         __arginit
 
-#define __pmac __attribute__ ((__section__ (".text.pmac")))
-#define __pmacdata __attribute__ ((__section__ (".data.pmac")))
+#define __pmac __attribute__ ((__section__ (".pmac.text")))
+#define __pmacdata __attribute__ ((__section__ (".pmac.data")))
 #define __pmacfunc(__argpmac) \
         __argpmac __pmac; \
         __argpmac
         
-#define __prep __attribute__ ((__section__ (".text.prep")))
-#define __prepdata __attribute__ ((__section__ (".data.prep")))
+#define __prep __attribute__ ((__section__ (".prep.text")))
+#define __prepdata __attribute__ ((__section__ (".prep.data")))
 #define __prepfunc(__argprep) \
         __argprep __prep; \
         __argprep
 
 /* this is actually just common chrp/pmac code, not OF code -- Cort */
-#define __openfirmware __attribute__ ((__section__ (".text.openfirmware")))
-#define __openfirmwaredata __attribute__ ((__section__ (".data.openfirmware")))
+#define __openfirmware __attribute__ ((__section__ (".openfirmware.text")))
+#define __openfirmwaredata __attribute__ ((__section__ (".openfirmware.data")))
 #define __openfirmwarefunc(__argopenfirmware) \
         __argopenfirmware __openfirmware; \
         __argopenfirmware
         
-#define __INIT .section ".text.init",#alloc,#execinstr
+#define __INIT .section ".init.text",#alloc,#execinstr
 #define __FINIT .previous
-#define __INITDATA .section ".data.init",#alloc,#write
+#define __INITDATA .section ".init.data",#alloc,#write
 
 #define __cacheline_aligned __attribute__ \
- ((__section__ (".data.cacheline_aligned")))
+ ((__section__ (".cacheline_aligned.data")))
 
 #else /* not egcs */
 
Index: include/asm-ppc/uaccess.h
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 uaccess.h
--- include/asm-ppc/uaccess.h 1999/12/30 06:00:34 1.1.1.1
+++ include/asm-ppc/uaccess.h 2000/04/05 00:00:34
@@ -150,10 +150,11 @@
                 ".section .fixup,\"ax\"\n" \
                 "3: li %0,%3\n" \
                 " b 2b\n" \
+ ".previous\n" \
                 ".section __ex_table,\"a\"\n" \
                 " .align 2\n" \
                 " .long 1b,3b\n" \
- ".text" \
+ ".previous\n" \
                 : "=r"(err) \
                 : "r"(x), "b"(addr), "i"(-EFAULT), "0"(err))
 
@@ -197,10 +198,11 @@
                 "3: li %0,%3\n" \
                 " li %1,0\n" \
                 " b 2b\n" \
+ ".previous\n" \
                 ".section __ex_table,\"a\"\n" \
                 " .align 2\n" \
                 " .long 1b,3b\n" \
- ".text" \
+ ".previous\n" \
                 : "=r"(err), "=r"(x) \
                 : "b"(addr), "i"(-EFAULT), "0"(err))
 
Index: ipc/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- ipc/Makefile 1999/12/30 06:01:13 1.1.1.1
+++ ipc/Makefile 2000/04/10 05:43:32
@@ -7,11 +7,11 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := ipc.o
-O_OBJS := util.o
+L_TARGET := ipc.a
+L_OBJS := util.o
 
 ifdef CONFIG_SYSVIPC
-O_OBJS += msg.o sem.o shm.o
+L_OBJS += msg.o sem.o shm.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: kernel/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- kernel/Makefile 1999/12/30 06:01:13 1.1.1.1
+++ kernel/Makefile 2000/04/10 05:43:47
@@ -10,19 +10,19 @@
 .S.s:
         $(CPP) -traditional $< -o $*.s
 
-O_TARGET := kernel.o
-O_OBJS = sched.o dma.o fork.o exec_domain.o panic.o printk.o sys.o \
+L_TARGET := kernel.a
+L_OBJS = sched.o dma.o fork.o exec_domain.o panic.o printk.o sys.o \
             module.o exit.o itimer.o info.o time.o softirq.o resource.o \
             sysctl.o acct.o capability.o
 
-OX_OBJS += signal.o
+LX_OBJS += signal.o
 
 ifeq ($(CONFIG_KMOD),y)
-O_OBJS += kmod.o
+L_OBJS += kmod.o
 endif
 
 ifeq ($(CONFIG_MODULES),y)
-OX_OBJS += ksyms.o
+LX_OBJS += ksyms.o
 endif
 
 CFLAGS_sched.o := $(PROFILING) -fno-omit-frame-pointer
Index: mm/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- mm/Makefile 1999/12/30 06:01:15 1.1.1.1
+++ mm/Makefile 2000/04/10 05:43:56
@@ -7,8 +7,8 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := mm.o
-O_OBJS := memory.o mmap.o filemap.o mprotect.o mlock.o mremap.o \
+L_TARGET := mm.a
+L_OBJS := memory.o mmap.o filemap.o mprotect.o mlock.o mremap.o \
             vmalloc.o slab.o \
             swap.o vmscan.o page_io.o page_alloc.o swap_state.o swapfile.o
 
Index: net/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/Makefile 1999/12/30 06:01:16 1.1.1.1
+++ net/Makefile 2000/04/10 06:55:58
@@ -174,14 +174,15 @@
 endif
 endif
 
-L_TARGET := network.a
-L_OBJS := $(SOCK) protocols.o $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.o))
+A_TARGET := network.a
+A_LIBS := $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.a))
+A_OBJS := $(SOCK) protocols.o
 
 M_OBJS :=
 
 ifeq ($(CONFIG_SYSCTL),y)
 ifeq ($(CONFIG_NET),y)
-L_OBJS += sysctl_net.o
+A_OBJS += sysctl_net.o
 endif
 endif
 
Index: net/802/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/802/Makefile 1999/12/30 06:01:17 1.1.1.1
+++ net/802/Makefile 2000/04/10 07:02:41
@@ -7,35 +7,35 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := 802.o
-O_OBJS = p8023.o
+L_TARGET := 802.a
+L_OBJS = p8023.o
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += sysctl_net_802.o
+L_OBJS += sysctl_net_802.o
 endif
 
 ifeq ($(CONFIG_LLC),y)
 SUB_DIRS += transit
-O_OBJS += llc_sendpdu.o llc_utility.o cl2llc.o
-OX_OBJS += llc_macinit.o
+L_OBJS += llc_sendpdu.o llc_utility.o cl2llc.o
+LX_OBJS += llc_macinit.o
 SNAP = y
 endif
 
 ifdef CONFIG_TR
-O_OBJS += tr.o
+L_OBJS += tr.o
         SNAP=y
 endif
 
 ifdef CONFIG_NET_FC
-O_OBJS += fc.o
+L_OBJS += fc.o
 endif
 
 ifdef CONFIG_FDDI
-O_OBJS += fddi.o
+L_OBJS += fddi.o
 endif
 
 ifdef CONFIG_HIPPI
-O_OBJS += hippi.o
+L_OBJS += hippi.o
 endif
 
 ifdef CONFIG_IPX
@@ -47,7 +47,7 @@
 endif
 
 ifeq ($(SNAP),y)
-OX_OBJS += p8022.o psnap.o
+LX_OBJS += p8022.o psnap.o
 endif
 
 
Index: net/appletalk/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/appletalk/Makefile 1999/12/30 06:01:18 1.1.1.1
+++ net/appletalk/Makefile 2000/04/10 05:21:31
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := appletalk.o
-O_OBJS := aarp.o
-M_OBJS := $(O_TARGET)
+L_TARGET := appletalk.a
+L_OBJS := aarp.o
+M_OBJS := $(L_TARGET)
 
 OX_OBJS += ddp.o
 
Index: net/ax25/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/ax25/Makefile 1999/12/30 06:01:19 1.1.1.1
+++ net/ax25/Makefile 2000/04/10 05:21:42
@@ -8,11 +8,11 @@
 # Note 2! The CFLAGS definition is now in the main makefile...
 
 
-O_TARGET := ax25.o
-O_OBJS := ax25_addr.o ax25_dev.o ax25_iface.o ax25_in.o ax25_ip.o ax25_out.o \
+L_TARGET := ax25.a
+L_OBJS := ax25_addr.o ax25_dev.o ax25_iface.o ax25_in.o ax25_ip.o ax25_out.o \
             ax25_route.o ax25_std_in.o ax25_std_subr.o ax25_std_timer.o \
             ax25_subr.o ax25_timer.o ax25_uid.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 OX_OBJS += af_ax25.o
 
Index: net/bridge/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/bridge/Makefile 1999/12/30 06:01:20 1.1.1.1
+++ net/bridge/Makefile 2000/04/10 05:21:50
@@ -7,9 +7,9 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := bridge.o
-O_OBJS := br.o br_tree.o
-M_OBJS := $(O_TARGET)
+L_TARGET := bridge.a
+L_OBJS := br.o br_tree.o
+M_OBJS := $(L_TARGET)
 
 ifeq ($(CONFIG_SYSCTL),y)
 O_OBJS += sysctl_net_bridge.o
Index: net/core/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/core/Makefile 1999/12/30 06:01:20 1.1.1.1
+++ net/core/Makefile 2000/04/10 07:00:55
@@ -7,32 +7,32 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := core.o
+L_TARGET := core.a
 
-O_OBJS := sock.o skbuff.o iovec.o datagram.o scm.o
+L_OBJS := sock.o skbuff.o iovec.o datagram.o scm.o
 
 ifeq ($(CONFIG_SYSCTL),y)
 ifeq ($(CONFIG_NET),y)
-O_OBJS += sysctl_net_core.o
+L_OBJS += sysctl_net_core.o
 endif
 endif
 
 ifdef CONFIG_FILTER
-O_OBJS += filter.o
+L_OBJS += filter.o
 endif
 
 ifdef CONFIG_NET
 
-O_OBJS += dev.o dev_mcast.o dst.o neighbour.o rtnetlink.o utils.o
+L_OBJS += dev.o dev_mcast.o dst.o neighbour.o rtnetlink.o utils.o
 
 ifdef CONFIG_FIREWALL
-OX_OBJS += firewall.o
+LX_OBJS += firewall.o
 endif
 
 endif
 
 ifdef CONFIG_NET_PROFILE
-OX_OBJS += profile.o
+LX_OBJS += profile.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/ethernet/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/ethernet/Makefile 1999/12/30 06:01:22 1.1.1.1
+++ net/ethernet/Makefile 2000/04/10 05:22:54
@@ -7,7 +7,7 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := ethernet.o
+L_TARGET := ethernet.a
 
 OBJS := eth.o
 
@@ -24,7 +24,7 @@
 endif
 
 ifdef CONFIG_NET
-O_OBJS := $(OBJS) $(OBJ2)
+L_OBJS := $(OBJS) $(OBJ2)
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/ipv4/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/ipv4/Makefile 1999/12/30 06:01:22 1.1.1.1
+++ net/ipv4/Makefile 2000/04/10 05:23:10
@@ -7,7 +7,7 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := ipv4.o
+L_TARGET := ipv4.a
 IPV4_OBJS := utils.o route.o proc.o timer.o protocol.o \
              ip_input.o ip_fragment.o ip_forward.o ip_options.o \
              ip_output.o ip_sockglue.o \
@@ -134,8 +134,8 @@
 endif
 
 ifdef CONFIG_INET
-O_OBJS := $(IPV4_OBJS)
-OX_OBJS := $(IPV4X_OBJS)
+L_OBJS := $(IPV4_OBJS)
+LX_OBJS := $(IPV4X_OBJS)
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/ipv6/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/ipv6/Makefile 1999/12/30 06:01:33 1.1.1.1
+++ net/ipv6/Makefile 2000/04/10 05:23:21
@@ -7,7 +7,7 @@
 #
 
 
-O_TARGET := ipv6.o
+L_TARGET := ipv6.a
 IPV6_OBJS := af_inet6.o ip6_output.o ip6_input.o addrconf.o sit.o \
                 route.o ip6_fib.o ipv6_sockglue.o ndisc.o udp.o raw.o \
                 protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \
@@ -15,12 +15,12 @@
                 ip6_flowlabel.o
 
 MOD_LIST_NAME := IPV6_MODULES
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 #ifeq ($(CONFIG_IPV6_FIREWALL),y)
 # IPV6_OBJS += ip6_fw.o
 #endif
 
-O_OBJS := $(IPV6_OBJS)
+L_OBJS := $(IPV6_OBJS)
 
 include $(TOPDIR)/Rules.make
Index: net/ipx/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/ipx/Makefile 1999/12/30 06:01:34 1.1.1.1
+++ net/ipx/Makefile 2000/04/10 05:23:44
@@ -9,20 +9,20 @@
 
 # We only get in/to here if CONFIG_IPX = 'y' or 'm'
 
-O_TARGET := ipx.o
+L_TARGET := ipx.a
 M_OBJS :=
-OX_OBJS := af_ipx.o
+LX_OBJS := af_ipx.o
 
 ifeq ($(CONFIG_IPX),m)
- M_OBJS += $(O_TARGET)
+ M_OBJS += $(L_TARGET)
 endif
 
 ifeq ($(CONFIG_SYSCTL),y)
- O_OBJS += sysctl_net_ipx.o
+ L_OBJS += sysctl_net_ipx.o
 endif
 
 ifeq ($(CONFIG_SPX),y)
-OX_OBJS += af_spx.o
+LX_OBJS += af_spx.o
 else
   ifeq ($(CONFIG_SPX),m)
   MX_OBJS += af_spx.o
Index: net/irda/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/irda/Makefile 1999/12/30 06:01:35 1.1.1.1
+++ net/irda/Makefile 2000/04/10 05:24:16
@@ -12,34 +12,34 @@
 MOD_SUB_DIRS :=
 OX_OBJS :=
 
-O_TARGET := irda.o
-O_OBJS := iriap.o iriap_event.o irlmp.o irlmp_event.o irlmp_frame.o \
+L_TARGET := irda.a
+L_OBJS := iriap.o iriap_event.o irlmp.o irlmp_event.o irlmp_frame.o \
             irlap.o irlap_event.o irlap_frame.o timer.o qos.o irqueue.o \
             irttp.o irda_device.o irias_object.o crc.o wrapper.o af_irda.o \
             discovery.o
-OX_OBJS := irmod.o
+LX_OBJS := irmod.o
 
 MOD_LIST_NAME := IRDA_MODULES
 
 ifeq ($(CONFIG_IRDA),m)
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 endif
 
 ifeq ($(CONFIG_IRDA_COMPRESSION),y)
-O_OBJS += irlap_comp.o
+L_OBJS += irlap_comp.o
 endif
 
 ifeq ($(CONFIG_PROC_FS),y)
-O_OBJS += irproc.o
+L_OBJS += irproc.o
 endif
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += irsysctl.o
+L_OBJS += irsysctl.o
 endif
 
 ifeq ($(CONFIG_IRLAN),y)
 SUB_DIRS += irlan
-O_OBJS += irlan/irlan.o
+L_OBJS += irlan/irlan.o
 else
   ifeq ($(CONFIG_IRLAN),m)
   MOD_SUB_DIRS += irlan
@@ -48,7 +48,7 @@
 
 ifeq ($(CONFIG_IRLPT),y)
 SUB_DIRS += irlpt
-O_OBJS += irlpt/irlpt.o
+L_OBJS += irlpt/irlpt.o
 else
   ifeq ($(CONFIG_IRLPT),m)
   MOD_IN_SUB_DIRS += irlpt
@@ -61,7 +61,7 @@
 endif
 
 ifeq ($(CONFIG_IRDA_DEFLATE),y)
-O_OBJS += compressors/irda_deflate.o
+L_OBJS += compressors/irda_deflate.o
 else
   ifeq ($(CONFIG_IRDA_DEFLATE),m)
   MOD_TO_LIST += irda_deflate.o
@@ -70,7 +70,7 @@
 
 ifeq ($(CONFIG_IRCOMM),y)
 SUB_DIRS += ircomm
-O_OBJS += ircomm/ircomm_n_vtd.o
+L_OBJS += ircomm/ircomm_n_vtd.o
 else
   ifeq ($(CONFIG_IRCOMM),m)
   MOD_SUB_DIRS += ircomm
Index: net/lapb/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/lapb/Makefile 1999/12/30 06:01:38 1.1.1.1
+++ net/lapb/Makefile 2000/04/10 05:24:25
@@ -8,11 +8,11 @@
 # Note 2! The CFLAGS definition is now in the main makefile...
 
 
-O_TARGET := lapb.o
-O_OBJS := lapb_in.o lapb_out.o lapb_subr.o lapb_timer.o
-M_OBJS := $(O_TARGET)
+L_TARGET := lapb.a
+L_OBJS := lapb_in.o lapb_out.o lapb_subr.o lapb_timer.o
+M_OBJS := $(L_TARGET)
 
-OX_OBJS += lapb_iface.o
+LX_OBJS += lapb_iface.o
 
 include $(TOPDIR)/Rules.make
 
Index: net/netlink/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/netlink/Makefile 1999/12/30 06:01:39 1.1.1.1
+++ net/netlink/Makefile 2000/04/10 05:24:40
@@ -7,16 +7,16 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := netlink.o
+L_TARGET := netlink.a
 MOD_LIST_NAME := NET_MISC_MODULES
 
-O_OBJS :=
-OX_OBJS := af_netlink.o
+L_OBJS :=
+LX_OBJS := af_netlink.o
 
 M_OBJS :=
 
 ifeq ($(CONFIG_NETLINK_DEV), y)
- O_OBJS += netlink_dev.o
+ L_OBJS += netlink_dev.o
 endif
 
 ifeq ($(CONFIG_NETLINK_DEV), m)
Index: net/netrom/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/netrom/Makefile 1999/12/30 06:01:39 1.1.1.1
+++ net/netrom/Makefile 2000/04/10 05:24:50
@@ -7,13 +7,13 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := netrom.o
-O_OBJS := af_netrom.o nr_dev.o nr_in.o nr_loopback.o nr_out.o nr_route.o \
+L_TARGET := netrom.a
+L_OBJS := af_netrom.o nr_dev.o nr_in.o nr_loopback.o nr_out.o nr_route.o \
             nr_subr.o nr_timer.o
 M_OBJS := $(O_TARGET)
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += sysctl_net_netrom.o
+L_OBJS += sysctl_net_netrom.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/packet/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/packet/Makefile 1999/12/30 06:01:39 1.1.1.1
+++ net/packet/Makefile 2000/04/10 05:24:59
@@ -7,14 +7,14 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := packet.o
+L_TARGET := packet.a
 MOD_LIST_NAME := NET_MISC_MODULES
 
-O_OBJS :=
+L_OBJS :=
 M_OBJS :=
 
 ifeq ($(CONFIG_PACKET),y)
- O_OBJS += af_packet.o
+ L_OBJS += af_packet.o
 else
   ifeq ($(CONFIG_PACKET), m)
     M_OBJS += af_packet.o
Index: net/rose/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/rose/Makefile 1999/12/30 06:01:40 1.1.1.1
+++ net/rose/Makefile 2000/04/10 05:25:10
@@ -7,13 +7,13 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := rose.o
-O_OBJS := af_rose.o rose_dev.o rose_in.o rose_link.o rose_loopback.o \
+L_TARGET := rose.a
+L_OBJS := af_rose.o rose_dev.o rose_in.o rose_link.o rose_loopback.o \
             rose_out.o rose_route.o rose_subr.o rose_timer.o
 M_OBJS := $(O_TARGET)
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += sysctl_net_rose.o
+L_OBJS += sysctl_net_rose.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/sched/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/sched/Makefile 1999/12/30 06:01:40 1.1.1.1
+++ net/sched/Makefile 2000/04/10 05:25:54
@@ -7,29 +7,29 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := sched.o
+L_TARGET := sched.a
 
-O_OBJS := sch_generic.o
+L_OBJS := sch_generic.o
 
 ifeq ($(CONFIG_NET_SCHED), y)
 
-O_OBJS += sch_api.o sch_fifo.o
+L_OBJS += sch_api.o sch_fifo.o
 
 ifeq ($(CONFIG_NET_ESTIMATOR), y)
-O_OBJS += estimator.o
+L_OBJS += estimator.o
 endif
 
 ifeq ($(CONFIG_NET_CLS), y)
-O_OBJS += cls_api.o
+L_OBJS += cls_api.o
 
 ifeq ($(CONFIG_NET_CLS_POLICE), y)
-O_OBJS += police.o
+L_OBJS += police.o
 endif
 
 endif
 
 ifeq ($(CONFIG_NET_SCH_CBQ), y)
-O_OBJS += sch_cbq.o
+L_OBJS += sch_cbq.o
 else
   ifeq ($(CONFIG_NET_SCH_CBQ), m)
         M_OBJS += sch_cbq.o
@@ -37,7 +37,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_CSZ), y)
-O_OBJS += sch_csz.o
+L_OBJS += sch_csz.o
 else
   ifeq ($(CONFIG_NET_SCH_CSZ), m)
         M_OBJS += sch_csz.o
@@ -45,7 +45,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_HPFQ), y)
-O_OBJS += sch_hpfq.o
+L_OBJS += sch_hpfq.o
 else
   ifeq ($(CONFIG_NET_SCH_HPFQ), m)
         M_OBJS += sch_hpfq.o
@@ -53,7 +53,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_HFSC), y)
-O_OBJS += sch_hfsc.o
+L_OBJS += sch_hfsc.o
 else
   ifeq ($(CONFIG_NET_SCH_HFSC), m)
         M_OBJS += sch_hfsc.o
@@ -62,7 +62,7 @@
 
 
 ifeq ($(CONFIG_NET_SCH_SFQ), y)
-O_OBJS += sch_sfq.o
+L_OBJS += sch_sfq.o
 else
   ifeq ($(CONFIG_NET_SCH_SFQ), m)
         M_OBJS += sch_sfq.o
@@ -70,7 +70,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_RED), y)
-O_OBJS += sch_red.o
+L_OBJS += sch_red.o
 else
   ifeq ($(CONFIG_NET_SCH_RED), m)
         M_OBJS += sch_red.o
@@ -78,7 +78,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_TBF), y)
-O_OBJS += sch_tbf.o
+L_OBJS += sch_tbf.o
 else
   ifeq ($(CONFIG_NET_SCH_TBF), m)
         M_OBJS += sch_tbf.o
@@ -86,7 +86,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_PRIO), y)
-O_OBJS += sch_prio.o
+L_OBJS += sch_prio.o
 else
   ifeq ($(CONFIG_NET_SCH_PRIO), m)
         M_OBJS += sch_prio.o
@@ -94,7 +94,7 @@
 endif
 
 ifeq ($(CONFIG_NET_SCH_TEQL), y)
-O_OBJS += sch_teql.o
+L_OBJS += sch_teql.o
 else
   ifeq ($(CONFIG_NET_SCH_TEQL), m)
         M_OBJS += sch_teql.o
@@ -102,7 +102,7 @@
 endif
 
 ifeq ($(CONFIG_NET_CLS_U32), y)
-O_OBJS += cls_u32.o
+L_OBJS += cls_u32.o
 else
   ifeq ($(CONFIG_NET_CLS_U32), m)
         M_OBJS += cls_u32.o
@@ -110,7 +110,7 @@
 endif
 
 ifeq ($(CONFIG_NET_CLS_RSVP), y)
-O_OBJS += cls_rsvp.o
+L_OBJS += cls_rsvp.o
 else
   ifeq ($(CONFIG_NET_CLS_RSVP), m)
         M_OBJS += cls_rsvp.o
@@ -118,7 +118,7 @@
 endif
 
 ifeq ($(CONFIG_NET_CLS_RSVP6), y)
-O_OBJS += cls_rsvp6.o
+L_OBJS += cls_rsvp6.o
 else
   ifeq ($(CONFIG_NET_CLS_RSVP6), m)
         M_OBJS += cls_rsvp6.o
@@ -126,7 +126,7 @@
 endif
 
 ifeq ($(CONFIG_NET_CLS_ROUTE4), y)
-O_OBJS += cls_route.o
+L_OBJS += cls_route.o
 else
   ifeq ($(CONFIG_NET_CLS_ROUTE4), m)
         M_OBJS += cls_route.o
@@ -134,7 +134,7 @@
 endif
 
 ifeq ($(CONFIG_NET_CLS_FW), y)
-O_OBJS += cls_fw.o
+L_OBJS += cls_fw.o
 else
   ifeq ($(CONFIG_NET_CLS_FW), m)
         M_OBJS += cls_fw.o
Index: net/sunrpc/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/sunrpc/Makefile 1999/12/30 06:01:42 1.1.1.1
+++ net/sunrpc/Makefile 2000/04/10 05:27:26
@@ -7,17 +7,17 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := sunrpc.o
-O_OBJS := clnt.o xprt.o sched.o \
+L_TARGET := sunrpc.a
+L_OBJS := clnt.o xprt.o sched.o \
             auth.o auth_null.o auth_unix.o \
             svc.o svcsock.o svcauth.o \
             pmap_clnt.o xdr.o sysctl.o
-OX_OBJS := sunrpc_syms.o
+LX_OBJS := sunrpc_syms.o
 
 ifeq ($(CONFIG_PROC_FS),y)
- O_OBJS += stats.o
+ L_OBJS += stats.o
 endif
 
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_OBJS)
 
 include $(TOPDIR)/Rules.make
Index: net/unix/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/unix/Makefile 1999/12/30 06:01:43 1.1.1.1
+++ net/unix/Makefile 2000/04/10 05:28:32
@@ -7,12 +7,12 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := unix.o
-O_OBJS := af_unix.o garbage.o
-M_OBJS := $(O_TARGET)
+L_TARGET := unix.a
+L_OBJS := af_unix.o garbage.o
+M_OBJS := $(L_TARGET)
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += sysctl_net_unix.o
+L_OBJS += sysctl_net_unix.o
 endif
 
 include $(TOPDIR)/Rules.make
Index: net/wanrouter/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/wanrouter/Makefile 1999/12/30 06:01:43 1.1.1.1
+++ net/wanrouter/Makefile 2000/04/10 05:28:44
@@ -7,10 +7,10 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := wanrouter.o
-OX_OBJS := wanmain.o
-O_OBJS := wanproc.o
-M_OBJS := $(O_TARGET)
+L_TARGET := wanrouter.a
+LX_OBJS := wanmain.o
+L_OBJS := wanproc.o
+M_OBJS := $(L_TARGET)
 
 include $(TOPDIR)/Rules.make
 
Index: net/x25/Makefile
===================================================================
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- net/x25/Makefile 1999/12/30 06:01:43 1.1.1.1
+++ net/x25/Makefile 2000/04/10 05:28:54
@@ -7,13 +7,13 @@
 #
 # Note 2! The CFLAGS definition is now in the main makefile...
 
-O_TARGET := x25.o
-O_OBJS := af_x25.o x25_dev.o x25_facilities.o x25_in.o x25_link.o x25_out.o \
+L_TARGET := x25.a
+L_OBJS := af_x25.o x25_dev.o x25_facilities.o x25_in.o x25_link.o x25_out.o \
             x25_route.o x25_subr.o x25_timer.o
-M_OBJS := $(O_TARGET)
+M_OBJS := $(L_TARGET)
 
 ifeq ($(CONFIG_SYSCTL),y)
-O_OBJS += sysctl_net_x25.o
+L_OBJS += sysctl_net_x25.o
 endif
 
 include $(TOPDIR)/Rules.make

-- 
Graham Stoney
Principal Hardware/Software Engineer
Canon Information Systems Research Australia
Ph: +61 2 9805 2909  Fax: +61 2 9805 2929

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:13 EST