WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Move more kernel decompression bits to .i

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Move more kernel decompression bits to .init.* sections
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Thu, 10 Mar 2011 22:20:20 +0000
Delivery-date: Thu, 10 Mar 2011 14:29:34 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxxxx>
# Date 1299687613 0
# Node ID 768269c4391474ea880c474585c6bf9956aa8503
# Parent  eb64b8f8eebb17ea1b14e4a6cf413738df4f26e8
Move more kernel decompression bits to .init.* sections

Based on how c/s 22986:076b63b74cf6 changed xen/libelf/Makefile I
suppose this is compatibile with those clang/llvm changes, but I
didn't actually test it.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---


diff -r eb64b8f8eebb -r 768269c43914 xen/Rules.mk
--- a/xen/Rules.mk      Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/Rules.mk      Wed Mar 09 16:20:13 2011 +0000
@@ -152,6 +152,18 @@
 %.o: %.S Makefile
        $(CC) $(AFLAGS) -c $< -o $@
 
+SPECIAL_DATA_SECTIONS := rodata $(foreach n,1 2 4 8,rodata.str1.$(n)) \
+                        $(foreach r,rel rel.ro,data.$(r) data.$(r).local)
+
+%.init.o: %.o Makefile
+       $(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p}' | while read idx name 
sz rest; do \
+               case "$$name" in \
+               .text|.data|.bss) test $$sz = 0 || \
+                       { echo "Error: size of $<:$$name is 0x$$sz" >&2; exit 
$$idx; };; \
+               esac; \
+       done
+       $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section 
.$(s)=.init.$(s)) $< $@
+
 %.i: %.c Makefile
        $(CPP) $(CFLAGS) $< -o $@
 
diff -r eb64b8f8eebb -r 768269c43914 xen/arch/x86/Makefile
--- a/xen/arch/x86/Makefile     Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/arch/x86/Makefile     Wed Mar 09 16:20:13 2011 +0000
@@ -10,6 +10,7 @@
 
 obj-y += apic.o
 obj-y += bitops.o
+obj-bin-y += bzimage.init.o
 obj-bin-y += clear_page.o
 obj-bin-y += copy_page.o
 obj-y += compat.o
@@ -55,7 +56,6 @@
 obj-y += crash.o
 obj-y += tboot.o
 obj-y += hpet.o
-obj-y += bzimage.o
 
 obj-$(crash_debug) += gdbstub.o
 
diff -r eb64b8f8eebb -r 768269c43914 xen/arch/x86/bzimage.c
--- a/xen/arch/x86/bzimage.c    Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/arch/x86/bzimage.c    Wed Mar 09 16:20:13 2011 +0000
@@ -9,21 +9,21 @@
 
 #define HEAPORDER 3
 
-static unsigned char *window;
+static unsigned char *__initdata window;
 #define memptr long
-static memptr free_mem_ptr;
-static memptr free_mem_end_ptr;
+static memptr __initdata free_mem_ptr;
+static memptr __initdata free_mem_end_ptr;
 
 #define WSIZE           0x80000000
 
-static unsigned char    *inbuf;
-static unsigned         insize;
+static unsigned char *__initdata inbuf;
+static unsigned __initdata insize;
 
 /* Index of next byte to be processed in inbuf: */
-static unsigned         inptr;
+static unsigned __initdata inptr;
 
 /* Bytes in output buffer: */
-static unsigned         outcnt;
+static unsigned __initdata outcnt;
 
 #define OF(args)        args
 #define STATIC          static
@@ -34,7 +34,8 @@
 typedef unsigned short  ush;
 typedef unsigned long   ulg;
 
-#define INIT __init
+#define INIT            __init
+#define INITDATA        __initdata
 
 #define get_byte()      (inptr < insize ? inbuf[inptr++] : fill_inbuf())
 
@@ -55,7 +56,7 @@
 #  define Tracecv(c, x)
 #endif
 
-static long bytes_out;
+static long __initdata bytes_out;
 static void flush_window(void);
 
 static __init void error(char *x)
diff -r eb64b8f8eebb -r 768269c43914 xen/common/Makefile
--- a/xen/common/Makefile       Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/common/Makefile       Wed Mar 09 16:20:13 2011 +0000
@@ -43,7 +43,7 @@
 obj-y += rbtree.o
 obj-y += lzo.o
 
-obj-$(CONFIG_X86) += decompress.o bunzip2.o unxz.o unlzma.o unlzo.o
+obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma 
unlzo,$(n).init.o)
 
 obj-$(perfc)       += perfc.o
 obj-$(crash_debug) += gdbstub.o
diff -r eb64b8f8eebb -r 768269c43914 xen/common/inflate.c
--- a/xen/common/inflate.c      Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/common/inflate.c      Wed Mar 09 16:20:13 2011 +0000
@@ -120,6 +120,7 @@
 
 #ifndef INIT
 #define INIT
+#define INITDATA
 #endif
  
 #define slide window
@@ -216,8 +217,8 @@
    the stream.
  */
 
-STATIC ulg bb;                         /* bit buffer */
-STATIC unsigned bk;                    /* bits in bit buffer */
+STATIC ulg INITDATA bb;                /* bit buffer */
+STATIC unsigned INITDATA bk;           /* bits in bit buffer */
 
 STATIC const ush mask_bits[] = {
     0x0000,
@@ -234,10 +235,10 @@
  *  malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
  */
 
-static unsigned long malloc_ptr;
-static int malloc_count;
+static unsigned long INITDATA malloc_ptr;
+static int INITDATA malloc_count;
 
-static void *malloc(int size)
+static void *INIT malloc(int size)
 {
     void *p;
 
@@ -258,7 +259,7 @@
     return p;
 }
 
-static void free(void *where)
+static void INIT free(void *where)
 {
     malloc_count--;
     if (!malloc_count)
@@ -311,7 +312,7 @@
 #define N_MAX 288       /* maximum number of codes in any set */
 
 
-STATIC unsigned hufts;         /* track memory usage */
+STATIC unsigned INITDATA hufts;      /* track memory usage */
 
 
 STATIC int INIT huft_build(
@@ -1129,8 +1130,8 @@
  *
  **********************************************************************/
 
-static ulg crc_32_tab[256];
-static ulg crc;  /* initialized in makecrc() so it'll reside in bss */
+static ulg INITDATA crc_32_tab[256];
+static ulg INITDATA crc;  /* initialized in makecrc() so it'll reside in bss */
 #define CRC_VALUE (crc ^ 0xffffffffUL)
 
 /*
diff -r eb64b8f8eebb -r 768269c43914 xen/common/libelf/Makefile
--- a/xen/common/libelf/Makefile        Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/common/libelf/Makefile        Wed Mar 09 16:20:13 2011 +0000
@@ -1,6 +1,6 @@
 obj-bin-y := libelf.o
 
-SECTIONS := text data rodata $(foreach n,1 2 4 8,rodata.str1.$(n)) $(foreach 
r,rel rel.ro,data.$(r) data.$(r).local)
+SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
 
 libelf.o: libelf-temp.o Makefile
        $(OBJCOPY) $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s)) 
$< $@
diff -r eb64b8f8eebb -r 768269c43914 xen/common/unlzma.c
--- a/xen/common/unlzma.c       Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/common/unlzma.c       Wed Mar 09 16:20:13 2011 +0000
@@ -75,7 +75,7 @@
 #define RC_MODEL_TOTAL_BITS 11
 
 
-static int nofill(void *buffer, unsigned int len)
+static int INIT nofill(void *buffer, unsigned int len)
 {
        return -1;
 }
diff -r eb64b8f8eebb -r 768269c43914 xen/common/xz/dec_bcj.c
--- a/xen/common/xz/dec_bcj.c   Wed Mar 09 16:19:36 2011 +0000
+++ b/xen/common/xz/dec_bcj.c   Wed Mar 09 16:20:13 2011 +0000
@@ -87,11 +87,10 @@
 
 static size_t INIT bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
 {
-       static /*const*/ bool_t INITDATA mask_to_allowed_status[8]
+       static const bool_t mask_to_allowed_status[8]
                = { true, true, true, false, true, false, false, false };
 
-       static /*const*/ uint8_t INITDATA mask_to_bit_num[8]
-               = { 0, 1, 2, 2, 3, 3, 3, 3 };
+       static const uint8_t mask_to_bit_num[8] = { 0, 1, 2, 2, 3, 3, 3, 3 };
 
        size_t i;
        size_t prev_pos = (size_t)-1;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Move more kernel decompression bits to .init.* sections, Xen patchbot-unstable <=