1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
Submitted by: Jeremy Utley <jeremy@linuxfromscratch.org>
Date: 2004-12-25
Initial Package Version: 2.12p (should apply to versions back to at least k)
Upstream Status: Not Submitted - Test Version
Origin: Alexander Patrakov, adapted from debian build of cramfs utilities
Description: Util-Linux fails in cramfs compilation due to changes in the
linux-libc-headers package 2.6.9 and after. This patch is a proper fix to the
problem, but may in fact not be accepted upstream.
Index: util-linux-2.12r/disk-utils/fsck.cramfs.c
===================================================================
--- util-linux-2.12r.orig/disk-utils/fsck.cramfs.c 2008-05-16 00:34:36.000000000 -0700
+++ util-linux-2.12r/disk-utils/fsck.cramfs.c 2008-05-16 09:39:50.000000000 -0700
@@ -76,8 +76,7 @@
#define PAD_SIZE 512
-#include <asm/page.h>
-#define PAGE_CACHE_SIZE (4096)
+#define PAGE_CACHE_SIZE page_size
/* Guarantee access to at least 8kB at a time */
#define ROMBUFFER_BITS 13
@@ -87,11 +86,13 @@
static unsigned long read_buffer_block = ~0UL;
/* Uncompressing data structures... */
-static char outbuffer[PAGE_CACHE_SIZE*2];
+static char *outbuffer;
z_stream stream;
#endif /* INCLUDE_FS_TESTS */
+static size_t page_size;
+
/* Input status of 0 to print help and exit without an error. */
static void usage(int status)
{
@@ -456,9 +457,17 @@
int c; /* for getopt */
int start = 0;
+ page_size = sysconf(_SC_PAGESIZE);
+
if (argc)
progname = argv[0];
+ outbuffer = malloc(page_size * 2);
+ if (!outbuffer) {
+ fprintf(stderr, _("failed to allocate outbuffer\n"));
+ exit(8);
+ }
+
/* command line options */
while ((c = getopt(argc, argv, "hx:v")) != EOF) {
switch (c) {
Index: util-linux-2.12r/disk-utils/mkfs.cramfs.c
===================================================================
--- util-linux-2.12r.orig/disk-utils/mkfs.cramfs.c 2004-12-11 06:56:01.000000000 -0800
+++ util-linux-2.12r/disk-utils/mkfs.cramfs.c 2008-05-16 09:38:06.000000000 -0700
@@ -46,16 +46,8 @@
static const char *progname = "mkcramfs";
static int verbose = 0;
-#ifdef __ia64__
-#define PAGE_CACHE_SIZE (16384)
-#elif defined __alpha__
-#define PAGE_CACHE_SIZE (8192)
-#else
-#define PAGE_CACHE_SIZE (4096)
-#endif
-
/* The kernel assumes PAGE_CACHE_SIZE as block size. */
-static unsigned int blksize = PAGE_CACHE_SIZE; /* settable via -b option */
+static unsigned int blksize; /* settable via -b option */
static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */
static int image_length = 0;
@@ -730,6 +722,7 @@
u32 crc = crc32(0L, Z_NULL, 0);
int c;
+ blksize = sysconf(_SC_PAGESIZE);
total_blocks = 0;
if (argc) {
|