]> git.pld-linux.org Git - packages/device-mapper.git/blob - device-mapper-klibc.patch
b15333a35073a73e22cd12945cd7621434d04c9f
[packages/device-mapper.git] / device-mapper-klibc.patch
1 diff -ur device-mapper.1.02.05.org/configure.in device-mapper.1.02.05/configure.in
2 --- device-mapper.1.02.05.org/configure.in      2006-04-22 20:30:55.242324000 +0200
3 +++ device-mapper.1.02.05/configure.in  2006-04-22 20:31:08.979182500 +0200
4 @@ -66,7 +66,7 @@
5  AC_HEADER_STDC
6  AC_HEADER_TIME
7  
8 -AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h inttypes.h limits.h stdarg.h stdio.h stdlib.h string.h sys/ioctl.h sys/param.h sys/stat.h sys/types.h unistd.h,,AC_MSG_ERROR(bailing out))
9 +AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h inttypes.h limits.h stdarg.h stdio.h stdlib.h string.h sys/ioctl.h sys/param.h sys/stat.h sys/types.h unistd.h,,AC_MSG_ERROR(bailing out))
10  
11  AC_CHECK_HEADERS(termios.h)
12  ################################################################################
13 diff -ur device-mapper.1.02.05.org/dmsetup/dmsetup.c device-mapper.1.02.05/dmsetup/dmsetup.c
14 --- device-mapper.1.02.05.org/dmsetup/dmsetup.c 2006-04-06 18:20:40.000000000 +0200
15 +++ device-mapper.1.02.05/dmsetup/dmsetup.c     2006-04-22 20:31:08.995183500 +0200
16 @@ -29,7 +29,6 @@
17  #include <dirent.h>
18  #include <errno.h>
19  #include <unistd.h>
20 -#include <libgen.h>
21  #include <sys/wait.h>
22  #include <unistd.h>
23  #include <sys/param.h>
24 @@ -1496,7 +1495,9 @@
25         memset(&_values, 0, sizeof(_values));
26  
27         namebase = strdup((*argv)[0]);
28 -       base = basename(namebase);
29 +       base = strrchr(namebase,'/');
30 +       if (base != NULL) *base++ = 0;
31 +       else base = namebase;
32  
33         if (!strcmp(base, "devmap_name")) {
34                 free(namebase);
35 diff -ur device-mapper.1.02.05.org/lib/ioctl/libdm-iface.c device-mapper.1.02.05/lib/ioctl/libdm-iface.c
36 --- device-mapper.1.02.05.org/lib/ioctl/libdm-iface.c   2006-04-03 17:56:02.000000000 +0200
37 +++ device-mapper.1.02.05/lib/ioctl/libdm-iface.c       2006-04-22 20:33:35.020309500 +0200
38 @@ -135,17 +135,25 @@
39                             uint32_t *number)
40  {
41         FILE *fl;
42 -       char nm[256];
43 +       char nm[256], buf[300];
44         int c;
45 -       uint32_t num;
46 +       uint32_t num, size;
47  
48         if (!(fl = fopen(file, "r"))) {
49                 log_error("%s: fopen failed: %s", file, strerror(errno));
50                 return 0;
51         }
52  
53 -       while (!feof(fl)) {
54 -               if (fscanf(fl, "%d %255s\n", &num, &nm[0]) == 2) {
55 +       /* Use fread+sscanf for klibc compatibility. */
56 +       do {
57 +               size = 0;
58 +               do {
59 +                       num = fread(&buf[size], sizeof(char), 1, fl);
60 +                       if (num > 0)
61 +                               size++;
62 +               } while (num > 0 && buf[size - 1] != '\n');
63 +               buf[size] = '\0';
64 +               if (sscanf(buf, "%d %255s\n", number, &nm[0]) == 2) {
65                         if (!strcmp(name, nm)) {
66                                 if (number) {
67                                         *number = num;
68 @@ -154,10 +162,8 @@
69                                 }
70                                 dm_bit_set(_dm_bitset, num);
71                         }
72 -               } else do {
73 -                       c = fgetc(fl);
74 -               } while (c != EOF && c != '\n');
75 -       }
76 +               }
77 +       } while (num > 0);
78         fclose(fl);
79  
80         if (number) {
81 diff -ur device-mapper.1.02.05.org/lib/libdm-file.c device-mapper.1.02.05/lib/libdm-file.c
82 --- device-mapper.1.02.05.org/lib/libdm-file.c  2006-01-31 15:50:37.000000000 +0100
83 +++ device-mapper.1.02.05/lib/libdm-file.c      2006-04-22 20:34:08.322390750 +0200
84 @@ -16,10 +16,16 @@
85  #include "lib.h"
86  #include "libdm-file.h"
87  
88 -#include <sys/file.h>
89  #include <fcntl.h>
90  #include <dirent.h>
91  
92 +#ifndef __KLIBC__
93 +#  include <sys/file.h>
94 +#  ifdef linux
95 +#    include <malloc.h>
96 +#  endif
97 +#endif
98 +
99  static int _create_dir_recursive(const char *dir)
100  {
101         char *orig, *s;
This page took 0.041743 seconds and 3 git commands to generate.