summaryrefslogtreecommitdiff
path: root/lang/siod/patches/patch-ab
blob: 1747ecdf681a135b5642077110e565d6ee543566 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
$NetBSD: patch-ab,v 1.2 2002/08/12 16:21:13 agc Exp $

Solaris (2.6 and above) already has usleep()

Add *BSD defs

Work around lchmod function and syscall clash.

Work around missing putpwent on NetBSD.

--- slibu.c	1999/08/06 09:27:05	1.1
+++ slibu.c	1999/08/06 09:28:11
@@ -29,6 +29,7 @@
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/resource.h>
+#include <sys/param.h>
 #include <grp.h>
 #include <utime.h>
 #include <sys/fcntl.h>
@@ -38,7 +39,7 @@
 #include <sys/mode.h>
 #endif
 
-#if defined(__osf__) || defined(SUN5)
+#if defined(__osf__) || defined(SUN5) || (defined(BSD) && BSD >= 199306)
 #include <fnmatch.h>
 #endif
 
@@ -50,7 +51,7 @@
 #include <dl.h>
 #endif
 
-#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi)
+#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi) || (defined(BSD) && BSD >= 199306)
 #include <dlfcn.h>
 #endif
 
@@ -288,6 +289,7 @@
  return(NIL);}
 #endif
 
+#if !(defined(BSD) && BSD >= 199506)
 LISP lputpwent(LISP alist,LISP file)
 {int iflag = no_interrupt(1);
  int status;
@@ -296,6 +298,7 @@
  status = putpwent(&p,get_c_file(file,NULL));
  no_interrupt(iflag);
  return(NIL);}
+#endif /* !BSD */
 
 LISP laccess_problem(LISP lfname,LISP lacc)
 {char *fname = get_c_string(lfname);
@@ -1021,7 +1024,7 @@
 
 #if defined(unix) || defined(WIN32)
 
-LISP lchmod(LISP path,LISP mode)
+LISP lispchmod(LISP path,LISP mode)
 {if (chmod(get_c_string(path),get_c_long(mode)))
    return(err("chmod",llast_c_errmsg(-1)));
  else
@@ -1311,7 +1314,7 @@
 }
 #endif
 
-#if defined(sun) || defined(sgi)
+#if (defined(sun) && !defined(__svr4__)) || defined(sgi)
 long usleep(unsigned int winks)
 {struct timespec x;
  x.tv_sec = winks / 1000000;
@@ -1554,7 +1557,7 @@
      /* note: error cases can leak memory in this procedure. */
 {LISP init_name;
  void (*fcn)(void) = NULL;
-#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi)
+#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi) || (defined(BSD) && BSD >= 199306)
  void *handle;
 #endif
 #if defined(hpux)
@@ -1575,7 +1578,7 @@
    {put_st("so-loading ");
     put_st(get_c_string(fname));
     put_st("\n");}
-#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi)
+#if defined(__osf__) || defined(sun) || defined(linux) || defined(sgi) || (defined(BSD) && BSD >= 199306)
 #if !defined(__osf__)
  /* Observed bug: values of LD_LIBRARY_PATH established with putenv
     -after- a process has started are ignored. Work around follows. */
@@ -2163,7 +2166,7 @@
 	      opendir_gc_free,
 	      &j);
  set_print_hooks(tc_opendir,opendir_prin1);
- init_subr_2("chmod",lchmod);
+ init_subr_2("chmod",lispchmod);
 #endif
 
  gc_protect_sym(&sym_channels,"*channels*");
@@ -2197,7 +2200,9 @@
 #if defined(__osf__)
  init_subr_1("setpwfile",lsetpwfile);
 #endif
+#if !(defined(BSD) && BSD >= 199306)
  init_subr_2("putpwent",lputpwent);
+#endif
  init_subr_2("access-problem?",laccess_problem);
  init_subr_3("utime",lutime);
  init_subr_2("fchmod",lfchmod);
@@ -2262,7 +2267,7 @@
  init_subr_1("encode-open-flags",encode_open_flags);
  init_subr_1("lstat",l_lstat);
 #endif
-#if defined(__osf__) || defined(SUN5)
+#if defined(__osf__) || defined(SUN5) || (defined(BSD) && BSD >= 199306)
  init_subr_3("fnmatch",l_fnmatch);
 #endif
 #ifdef unix