rpms/kernel-xen-2.6/devel xen-syms-build-id.patch, NONE, 1.1.2.1 kernel.spec, 1.1.2.1, 1.1.2.2

Eduardo Habkost (ehabkost) fedora-extras-commits at redhat.com
Wed Oct 24 15:31:39 UTC 2007


Author: ehabkost

Update of /cvs/pkgs/rpms/kernel-xen-2.6/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7906

Modified Files:
      Tag: private-ehabkost-debuginfo-branch
	kernel.spec 
Added Files:
      Tag: private-ehabkost-debuginfo-branch
	xen-syms-build-id.patch 
Log Message:
Add Xen patch to generate build-id notes on xen-syms

Not very useful as the hypervisor image that boots doesn't have any
notes section, but this is needed to make find-debuginfo.sh happy.


xen-syms-build-id.patch:

--- NEW FILE xen-syms-build-id.patch ---
From: Eduardo Habkost <ehabkost at redhat.com>
Subject: Add build-id section to xen-syms


This needs some changes on xen.lds.S and to mkelf32. The linker script
need a .notes section and a note phdr. mkelf32 needs to support a input
file containing more than one phdr and ignore the note phdr.

This doesn't make the build-id information really useful yet, because the
xen hypervisor image that boots doesn't have the build-id information,
but the build-id section is a requirement of Fedora's find-debuginfo.sh.


---
Index: xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/boot/mkelf32.c
===================================================================
--- xen-3.1.0-rc7-7041b52471c3.orig/xen/arch/x86/boot/mkelf32.c
+++ xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/boot/mkelf32.c
@@ -229,10 +229,11 @@ int main(int argc, char **argv)
 {
     u64        final_exec_addr;
     u32        loadbase, dat_siz, mem_siz;
+    size_t     offset;
     char      *inimage, *outimage;
     int        infd, outfd;
     char       buffer[1024];
-    int        bytes, todo, i;
+    int        bytes, todo, i, ph, loads;
 
     Elf32_Ehdr in32_ehdr;
     Elf32_Phdr in32_phdr;
@@ -268,6 +269,11 @@ int main(int argc, char **argv)
         return 1;
     }
 
+    /* Make GCC happy */
+    loads = 0;
+    offset = 0;
+    dat_siz = mem_siz = 0;
+
     big_endian = (*(u16 *)in32_ehdr.e_ident == ((ELFMAG0 << 8) | ELFMAG1));
 
     endianadjust_ehdr32(&in32_ehdr);
@@ -281,23 +287,23 @@ int main(int argc, char **argv)
             return 1;
         }
 
-        if ( in32_ehdr.e_phnum != 1 )
-        {
-            fprintf(stderr, "Expect precisely 1 program header; found %d.\n",
-                    (int)in32_ehdr.e_phnum);
-            return 1;
-        }
-
         (void)lseek(infd, in32_ehdr.e_phoff, SEEK_SET);
-        do_read(infd, &in32_phdr, sizeof(in32_phdr));
-        endianadjust_phdr32(&in32_phdr);
+        for (ph = 0; ph < in32_ehdr.e_phnum; ph++) { 
+            do_read(infd, &in32_phdr, sizeof(in32_phdr));
 
-        (void)lseek(infd, in32_phdr.p_offset, SEEK_SET);
-        dat_siz = (u32)in32_phdr.p_filesz;
+            endianadjust_phdr32(&in32_phdr);
+            if (in32_phdr.p_type != PT_LOAD)
+                    continue;
+
+            loads++;
+            offset = in32_phdr.p_offset;
+            dat_siz = (u32)in32_phdr.p_filesz;
+
+            /* Do not use p_memsz: it does not include BSS alignment padding. */
+            /*mem_siz = (u32)in32_phdr.p_memsz;*/
+            mem_siz = (u32)(final_exec_addr - in32_phdr.p_vaddr);
+        }
 
-        /* Do not use p_memsz: it does not include BSS alignment padding. */
-        /*mem_siz = (u32)in32_phdr.p_memsz;*/
-        mem_siz = (u32)(final_exec_addr - in32_phdr.p_vaddr);
         break;
 
     case ELFCLASS64:
@@ -312,23 +318,24 @@ int main(int argc, char **argv)
             return 1;
         }
 
-        if ( in64_ehdr.e_phnum != 1 )
-        {
-            fprintf(stderr, "Expect precisly 1 program header; found %d.\n",
-                    (int)in64_ehdr.e_phnum);
-            return 1;
-        }
-
         (void)lseek(infd, in64_ehdr.e_phoff, SEEK_SET);
-        do_read(infd, &in64_phdr, sizeof(in64_phdr));
-        endianadjust_phdr64(&in64_phdr);
+        for (ph = 0; ph < in64_ehdr.e_phnum; ph++) { 
+            do_read(infd, &in64_phdr, sizeof(in64_phdr));
 
-        (void)lseek(infd, in64_phdr.p_offset, SEEK_SET);
-        dat_siz = (u32)in64_phdr.p_filesz;
+            endianadjust_phdr64(&in64_phdr);
+            if (in64_phdr.p_type != PT_LOAD)
+                continue;
+
+            loads++;
+            offset = in64_phdr.p_offset;
+
+            dat_siz = (u32)in64_phdr.p_filesz;
+
+            /* Do not use p_memsz: it does not include BSS alignment padding. */
+            /*mem_siz = (u32)in64_phdr.p_memsz;*/
+            mem_siz = (u32)(final_exec_addr - in64_phdr.p_vaddr);
+        }
 
-        /* Do not use p_memsz: it does not include BSS alignment padding. */
-        /*mem_siz = (u32)in64_phdr.p_memsz;*/
-        mem_siz = (u32)(final_exec_addr - in64_phdr.p_vaddr);
         break;
 
     default:
@@ -336,6 +343,15 @@ int main(int argc, char **argv)
         return 1;
     }
 
+
+    if (loads != 1) {
+        fprintf(stderr, "Expect precisely 1 PT_LOAD header; found %d.\n",
+                loads);
+        return 1;
+    }
+
+    (void)lseek(infd, offset, SEEK_SET);
+
     /*
      * End the image on a page boundary. This gets round alignment bugs
      * in the boot- or chain-loader (e.g., kexec on the XenoBoot CD).
Index: xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/x86_32/xen.lds.S
===================================================================
--- xen-3.1.0-rc7-7041b52471c3.orig/xen/arch/x86/x86_32/xen.lds.S
+++ xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/x86_32/xen.lds.S
@@ -15,6 +15,7 @@ ENTRY(start)
 PHDRS
 {
   text PT_LOAD ;
+  note PT_NOTES ;
 }
 SECTIONS
 {
@@ -96,4 +97,5 @@ SECTIONS
   .stab.index 0 : { *(.stab.index) }
   .stab.indexstr 0 : { *(.stab.indexstr) }
   .comment 0 : { *(.comment) }
+  .notes : { *(.note*) } :note
 }
Index: xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/x86_64/xen.lds.S
===================================================================
--- xen-3.1.0-rc7-7041b52471c3.orig/xen/arch/x86/x86_64/xen.lds.S
+++ xen-3.1.0-rc7-7041b52471c3/xen/arch/x86/x86_64/xen.lds.S
@@ -13,6 +13,7 @@ ENTRY(start)
 PHDRS
 {
   text PT_LOAD ;
+  note PT_NOTE ;
 }
 SECTIONS
 {
@@ -94,4 +95,5 @@ SECTIONS
   .stab.index 0 : { *(.stab.index) }
   .stab.indexstr 0 : { *(.stab.indexstr) }
   .comment 0 : { *(.comment) }
+  .notes : { *(.note*) } :note
 }


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/Attic/kernel.spec,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- kernel.spec	22 Oct 2007 20:06:09 -0000	1.1.2.1
+++ kernel.spec	24 Oct 2007 15:31:07 -0000	1.1.2.2
@@ -59,7 +59,7 @@
 # The rc snapshot level
 %define rcrev 0
 # The git snapshot level
-%define gitrev 12
+%define gitrev 17
 # Set rpm version accordingly
 %define rpmversion 2.6.%{upstream_sublevel}
 %endif
@@ -764,6 +764,9 @@
 # Remove bogus WARN_ON() from synchronize_irq() (bug #293451)
 Patch966: linux-2.6-xen-fix-irq-warn-mismerge.patch
 
+# virt-install --nographics --paravirt fix (bug #348931)
+Patch967: linux-2.6-xen-paravirt-nographics-pvfb-fix.patch
+
 #
 # Patches 1000 to 5000 are reserved for bugfixes to drivers and filesystems
 #
@@ -933,6 +936,9 @@
 # (http://fedoraproject.org/wiki/Releases/FeatureBuildId)
 Patch20004: xen-build-id.patch
 
+# Include build-id notes on xen-syms
+Patch20005: xen-syms-build-id.patch
+
 
 
 
@@ -1263,6 +1269,7 @@
 %patch964 -p1
 %patch965 -p1
 %patch966 -p1
+%patch967 -p1
 %endif
 
 
@@ -1745,6 +1752,7 @@
 %patch20002 -p1
 %patch20003 -p1
 %patch20004 -p1
+%patch20005 -p1
 
 %endif
 
@@ -2267,8 +2275,25 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
-
+#                    ____ _____ ___  ____  _ 
+#                   / ___|_   _/ _ \|  _ \| |
+#                   \___ \ | || | | | |_) | |
+#                    ___) || || |_| |  __/|_|
+#                   |____/ |_| \___/|_|   (_)
+#                           
+# Builds to rawhide aren't happening yet, so if you're committing here,
+# you're probably committing to the wrong place.
+# Checkout F-8/ and commit there.
+#
 %changelog
+* Mon Oct 22 2007 Dave Jones <davej at redhat.com>
+- 2.6.23-git17
+
+* Thu Oct 18 2007 John W. Linville <linville at redhat.com>
+- Latest wireless updates from upstream
+- Update rt2x00 to 2.0.11
+- Convert some wireless drivers to use round_jiffies_relative
+
 * Wed Oct 17 2007 Dave Jones <davej at redhat.com>
 - 2.6.23-git12
 




More information about the fedora-extras-commits mailing list