1--- cp/cp.c
2+++ cp/cp.c
3@@ -42,8 +42,6 @@ static const char sccsid[] USED = "@(#)cp.sl 1.84 (gritter) 3/4/06";
4
5 #include <sys/types.h>
6 #include <sys/stat.h>
7-#include <sys/socket.h>
8-#include <sys/un.h>
9 #include <sys/time.h>
10 #include <sys/resource.h>
11 #include <fcntl.h>
12@@ -427,6 +425,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd,
13 #endif
14
15 #ifdef __linux__
16+#ifdef O_DIRECT
17 if (!bflag && !Dflag && ssp->st_size > 0) {
18 long long sent;
19
20@@ -436,6 +435,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd,
21 if (sent < 0)
22 goto err;
23 }
24+#endif
25 #endif /* __linux__ */
26 if (pagesize == 0)
27 if ((pagesize = 4096) < 0)
28@@ -702,37 +702,6 @@ symlinkcopy(const char *src, const struct stat *ssp,
29 }
30 }
31
32-static void
33-socketcopy(const char *src, const struct stat *ssp,
34- const char *tgt, const struct stat *dsp)
35-{
36- int fd, addrsz;
37- struct sockaddr_un addr;
38- size_t len;
39-
40- if (do_unlink(tgt, dsp) != OKAY)
41- return;
42- len = strlen(tgt);
43- memset(&addr, 0, sizeof addr);
44- addr.sun_family = AF_UNIX;
45- addrsz = sizeof addr - sizeof addr.sun_path + len;
46- if ((len >= sizeof addr.sun_path ? errno = ENAMETOOLONG, fd = -1, 1 :
47- (strncpy(addr.sun_path,tgt,sizeof addr.sun_path), 0)) ||
48- (fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0 ||
49- bind(fd, (struct sockaddr *)&addr, addrsz) < 0) {
50- fprintf(stderr, "%s: cannot create socket %s\n%s: %s\n",
51- progname, tgt,
52- progname, strerror(errno));
53- if (fd >= 0)
54- close(fd);
55- errcnt |= 01;
56- return;
57- }
58- close(fd);
59- if (pflag)
60- permissions(tgt, ssp);
61-}
62-
63 static void
64 specialcopy(const char *src, const struct stat *ssp,
65 const char *tgt, const struct stat *dsp)
66@@ -748,9 +717,6 @@ specialcopy(const char *src, const struct stat *ssp,
67 case S_IFLNK:
68 symlinkcopy(src, ssp, tgt, dsp);
69 break;
70- case S_IFSOCK:
71- socketcopy(src, ssp, tgt, dsp);
72- break;
73 case S_IFDOOR:
74 ignoring("door", src);
75 break;
76@@ -1043,7 +1009,7 @@ ln(const char *src, const char *tgt, struct stat *dsp, int level,
77 errcnt |= 01;
78 return;
79 }
80-#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun))
81+#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun)) && !defined (__TINYC__)
82 if (sflag == 0) {
83 char *rpbuf = alloca(PATH_MAX+1);
84 if (realpath(src, rpbuf) == NULL) {