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

Please unblock silo



Hi,

New version of silo incorporates two patches from upstream git tree 
needed to restore the ability to build silo against kernel headers 
2.6.25 or newer (mostly adding missing *printf functions). This 
fixes RC bug #495860, diff to previous version is attached. New 
version has been in sid for 12 days now and I have not received any 
problem reports, please unblock it.

Thanks.
-- 
Jurij Smakov                                           jurij@wooyd.org
Key: http://www.wooyd.org/pgpkey/                      KeyID: C99E03CC
diff -aur --unidirectional-new-file silo-1.4.13a+git20070930-2/debian/changelog silo-1.4.13a+git20070930-3/debian/changelog
--- silo-1.4.13a+git20070930-2/debian/changelog	2008-09-06 11:42:48.000000000 +0100
+++ silo-1.4.13a+git20070930-3/debian/changelog	2008-09-06 11:43:25.000000000 +0100
@@ -1,3 +1,13 @@
+silo (1.4.13a+git20070930-3) unstable; urgency=low
+
+  [ Jurij Smakov ]
+  * Include patches eb6151388752b52804f80ff27e90ec2dbde71339 and
+    a55764ceef83086d00b5f7b8b3027b517fc4ca23 from the git tree to
+    fix build failure when building against kernel headers 2.6.25
+    or newer. (Closes: #495860)
+
+ -- Jurij Smakov <jurij@debian.org>  Sun, 24 Aug 2008 10:04:17 +0100
+
 silo (1.4.13a+git20070930-2) unstable; urgency=low
 
   [ Aurélien G�R�ME ]
diff -aur --unidirectional-new-file silo-1.4.13a+git20070930-2/debian/patches/series silo-1.4.13a+git20070930-3/debian/patches/series
--- silo-1.4.13a+git20070930-2/debian/patches/series	2008-09-06 11:42:48.000000000 +0100
+++ silo-1.4.13a+git20070930-3/debian/patches/series	2008-09-06 11:43:25.000000000 +0100
@@ -1,2 +1,4 @@
 11-silocheck_non-failure_on_stat.patch
 20-silo_ls_fix_date_calc.patch
+silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch
+silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch
diff -aur --unidirectional-new-file silo-1.4.13a+git20070930-2/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch silo-1.4.13a+git20070930-3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch
--- silo-1.4.13a+git20070930-2/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch	1970-01-01 01:00:00.000000000 +0100
+++ silo-1.4.13a+git20070930-3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch	2008-09-06 11:43:25.000000000 +0100
@@ -0,0 +1,158 @@
+From: Friedrich Oslage <ben.collins@canonical.com>
+Date: Thu, 21 Aug 2008 14:27:48 +0000 (-0400)
+Subject: Include libgcc.a to get __ffssi2 and add a simple sprintf function to fix these undef ...
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fbcollins%2Fsilo.git;a=commitdiff_plain;h=a55764ceef83086d00b5f7b8b3027b517fc4ca23;hp=eb6151388752b52804f80ff27e90ec2dbde71339
+
+Include libgcc.a to get __ffssi2 and add a simple sprintf function to fix these undefined references when compiling with GCC-4.3:
+
+/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x4f8): undefined reference to `__ffssi2'
+/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x518): undefined reference to `__ffssi2'
+/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x544): undefined reference to `__ffssi2'
+/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_first_bit_set': (.text+0x5a8): undefined reference to `__ffssi2'
+/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_first_bit_set': (.text+0x5d8): undefined reference to `__ffssi2'
+/usr/bin/../lib/libext2fs.a(rw_bitmaps.o): In function `read_bitmaps': (.text+0x46c): undefined reference to `sprintf'
+/usr/bin/../lib/libext2fs.a(rw_bitmaps.o): In function `read_bitmaps': (.text+0x664): undefined reference to `sprintf'
+
+Signed-off-by: Friedrich Oslage <bluebird@gentoo.org>
+Signed-off-by: Ben Collins <ben.collins@canonical.com>
+---
+
+diff --git a/common/printf.c b/common/printf.c
+index eed5da2..0d6d84c 100644
+--- a/common/printf.c
++++ b/common/printf.c
+@@ -21,6 +21,7 @@
+    USA.  */
+ 
+ #include "promlib.h"
++#include <stringops.h>
+ 
+ /*
+  * This part is rewritten by Igor Timkin <ivt@msu.su>. Than I
+@@ -147,3 +148,91 @@ void prom_printf (char *fmt,...)
+     vprintf (fmt, x1);
+     va_end (x1);
+ }
++
++static int sprintn (char *str, long long n, int b)
++{
++    static char prbuf[33];
++    register char *cp;
++    int count = 0;
++
++    if (b == 10 && n < 0) {
++	memset (str + count, '-', 1);
++	count++;
++	n = -n;
++    }
++    cp = prbuf;
++    do
++	*cp++ = "0123456789ABCDEF"[(unsigned int) (((unsigned long)n) % b)];
++    while ((n = ((unsigned long long)n) / b & 0x0FFFFFFFFFFFFFFFULL));
++    do {
++	memset (str + count, *--cp, 1);
++	count++;
++    } while (cp > prbuf);
++
++    return count;
++}
++
++int vsprintf (char *str, char *fmt, va_list adx)
++{
++    register int c;
++    char *s;
++    int count = 0;
++
++    for (;;) {
++	while ((c = *fmt++) != '%') {
++	    memset (str + count, c, 1);
++	    if (c == '\0') {
++		return count;
++	    }
++	}
++	c = *fmt++;
++	if (c == 'd' || c == 'o' || c == 'x' || c == 'X') {
++	    count += sprintn (str + count, (long long) va_arg (adx, unsigned),
++			     c == 'o' ? 8 : (c == 'd' ? 10 : 16));
++	} else if (c == 'c') {
++	    memset (str + count, va_arg (adx, unsigned), 1);
++	    count++;
++	} else if (c == 's') {
++	    if ((s = va_arg (adx, char *)) == NULL)
++		s = (char *)"(null)";
++	    while ((c = *s++)) {
++		memset (str + count, c, 1);
++		count++;
++	    }
++	} else if (c == 'l' || c == 'O') {
++	    count += sprintn (str + count, (long long) va_arg (adx, long), c == 'l' ? 10 : 8);
++	} else if (c == 'L') {
++	    int hex = 0;
++	    if (*fmt == 'x') {
++		fmt++;
++		hex = 1;
++	    }
++	    count += sprintn (str + count, (long long) va_arg (adx, long long), hex ? 16 : 10);
++	} else {
++	    /* This is basically what libc's printf does */
++	    memset (str + count, '%', 1);
++	    count++;
++	    memset (str + count, c, 1);
++	    count++;
++	}
++    }
++
++    return count;
++}
++
++/*
++ * Scaled down version of C Library sprintf.
++ * Only %c %s %d (==%u) %o %x %X %l %O are recognized.
++ */
++
++int sprintf (char *s, char *format, ...)
++{
++    va_list arg;
++    int done;
++
++    va_start (arg, format);
++    done = vsprintf (s, format, arg);
++    va_end (arg);
++
++    return done;
++}
+diff --git a/include/silo.h b/include/silo.h
+index 51c62e7..fe5adcb 100644
+--- a/include/silo.h
++++ b/include/silo.h
+@@ -87,6 +87,8 @@ int silo_disk_partitionable(void);
+ void silo_disk_close(void);
+ /* printf.c */
+ int vprintf (char *, va_list);
++int vsprintf (char *str, char *fmt, va_list adx);
++int sprintf (char *s, char *format, ...);
+ int putchar (int);
+ /* malloc.c */
+ void *malloc (int);
+diff --git a/second/Makefile b/second/Makefile
+index 3a7763d..ff4c8b5 100644
+--- a/second/Makefile
++++ b/second/Makefile
+@@ -58,13 +58,13 @@ fs/libfs.a: $(FS_OBJS)
+ 	$(AR) rc $@ $(FS_OBJS)
+ 
+ second: $(OBJS) mark.o
+-	$(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o
+-	$(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o
++	$(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
++	$(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
+ 	$(NM) second | grep -v '*ABS*' | sort > second.map
+ 
+ silotftp: $(OBJSNET) mark.o
+-	$(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o
+-	$(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o
++	$(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
++	$(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
+ 	$(NM) silotftp | grep -v '*ABS*' | sort > silotftp.map
+ 
+ second.l: second
diff -aur --unidirectional-new-file silo-1.4.13a+git20070930-2/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch silo-1.4.13a+git20070930-3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch
--- silo-1.4.13a+git20070930-2/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch	1970-01-01 01:00:00.000000000 +0100
+++ silo-1.4.13a+git20070930-3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch	2008-09-06 11:43:25.000000000 +0100
@@ -0,0 +1,38 @@
+From: Friedrich Oslage <ben.collins@canonical.com>
+Date: Thu, 21 Aug 2008 14:26:43 +0000 (-0400)
+Subject: Fix includes to work with linux headers >= 2.6.25
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fbcollins%2Fsilo.git;a=commitdiff_plain;h=eb6151388752b52804f80ff27e90ec2dbde71339;hp=fa2c84cc063b8056863332d4c8ca7ccbc6754da5
+
+Fix includes to work with linux headers >= 2.6.25
+
+Signed-off-by: Friedrich Oslage <bluebird@gentoo.org>
+Signed-off-by: Ben Collins <ben.collins@canonical.com>
+---
+
+diff --git a/include/ext2fs/ext2fs.h b/include/ext2fs/ext2fs.h
+index 55aed7d..6973caa 100644
+--- a/include/ext2fs/ext2fs.h
++++ b/include/ext2fs/ext2fs.h
+@@ -39,7 +39,7 @@ extern "C" {
+  */
+ #define EXT2_LIB_CURRENT_REV	0
+ 
+-#ifdef HAVE_SYS_TYPES_H
++#if defined(HAVE_SYS_TYPES_H) && !defined(_LINUX_TYPES_H)
+ #include <sys/types.h>
+ #endif
+ 
+diff --git a/second/main.c b/second/main.c
+index 4f753b0..182b263 100644
+--- a/second/main.c
++++ b/second/main.c
+@@ -25,8 +25,7 @@
+ /* TODO: This file is a good candidate for rewrite from scratch.  */
+ 
+ #include <silo.h>
+-#include <asm/page.h>
+-#include <linux/elf.h>
++#include <elf.h>
+ #include <stringops.h>
+ 
+ #ifndef NULL

Reply to: