--- cp/cp.c +++ cp/cp.c @@ -42,8 +42,6 @@ static const char sccsid[] USED = "@(#)cp.sl 1.84 (gritter) 3/4/06"; #include #include -#include -#include #include #include #include @@ -427,6 +425,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd, #endif #ifdef __linux__ +#ifdef O_DIRECT if (!bflag && !Dflag && ssp->st_size > 0) { long long sent; @@ -436,6 +435,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd, if (sent < 0) goto err; } +#endif #endif /* __linux__ */ if (pagesize == 0) if ((pagesize = 4096) < 0) @@ -702,37 +702,6 @@ symlinkcopy(const char *src, const struct stat *ssp, } } -static void -socketcopy(const char *src, const struct stat *ssp, - const char *tgt, const struct stat *dsp) -{ - int fd, addrsz; - struct sockaddr_un addr; - size_t len; - - if (do_unlink(tgt, dsp) != OKAY) - return; - len = strlen(tgt); - memset(&addr, 0, sizeof addr); - addr.sun_family = AF_UNIX; - addrsz = sizeof addr - sizeof addr.sun_path + len; - if ((len >= sizeof addr.sun_path ? errno = ENAMETOOLONG, fd = -1, 1 : - (strncpy(addr.sun_path,tgt,sizeof addr.sun_path), 0)) || - (fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0 || - bind(fd, (struct sockaddr *)&addr, addrsz) < 0) { - fprintf(stderr, "%s: cannot create socket %s\n%s: %s\n", - progname, tgt, - progname, strerror(errno)); - if (fd >= 0) - close(fd); - errcnt |= 01; - return; - } - close(fd); - if (pflag) - permissions(tgt, ssp); -} - static void specialcopy(const char *src, const struct stat *ssp, const char *tgt, const struct stat *dsp) @@ -748,9 +717,6 @@ specialcopy(const char *src, const struct stat *ssp, case S_IFLNK: symlinkcopy(src, ssp, tgt, dsp); break; - case S_IFSOCK: - socketcopy(src, ssp, tgt, dsp); - break; case S_IFDOOR: ignoring("door", src); break; @@ -1043,7 +1009,7 @@ ln(const char *src, const char *tgt, struct stat *dsp, int level, errcnt |= 01; return; } -#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun)) +#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun)) && !defined (__TINYC__) if (sflag == 0) { char *rpbuf = alloca(PATH_MAX+1); if (realpath(src, rpbuf) == NULL) {