| [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) {
|
|---|