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