[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH livepatch-build-tools] livepatch-build: allow different build ID length



The size of the build ID for a PE file can be different from
ELF one, specifically 16 bytes instead of 20.
Allows to embed arbitrary build ID lengths.
The Xen ABI for retrieving the build ID allows arbitrary
lengths too (for instance see "xl info").

Signed-off-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxx>
---
 livepatch-build | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/livepatch-build b/livepatch-build
index f3ca939..11cbeec 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -192,6 +192,11 @@ strip_metadata_symbols ()
     strip "${STRIP_CMD_OPTS[@]}" "$FILE"
 }
 
+function gnu_section()
+{
+    perl -e '$d = pack("H*", $ARGV[0]); print pack("VVVZ*", 4, length($d), 3, 
"GNU").$d' "$1"
+}
+
 function create_patch()
 {
     echo "Extracting new and modified ELF sections..."
@@ -245,10 +250,10 @@ function create_patch()
     fi
 
     # Create a dependency section
-    perl -e "print pack 'VVVZ*H*', 4, 20, 3, 'GNU', '${DEPENDS}'" > depends.bin
+    gnu_section "$DEPENDS" > depends.bin
 
     # Create a Xen dependency section
-    perl -e "print pack 'VVVZ*H*', 4, 20, 3, 'GNU', '${XEN_DEPENDS}'" > 
xen_depends.bin
+    gnu_section "$XEN_DEPENDS" > xen_depends.bin
 
     echo "Creating patch module..."
     if [ -z "$PRELINK" ]; then
-- 
2.50.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.