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