diff options
Diffstat (limited to 'lang/modula-3-lib/files/patch-ab')
-rw-r--r-- | lang/modula-3-lib/files/patch-ab | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/lang/modula-3-lib/files/patch-ab b/lang/modula-3-lib/files/patch-ab new file mode 100644 index 000000000000..20c60dd545e2 --- /dev/null +++ b/lang/modula-3-lib/files/patch-ab @@ -0,0 +1,285 @@ +Fix a const-related compiler warning produced by the "execve" wrapper. +Also, move network related wrappers to separate files, for SOCKS support. + +Index: m3/m3core/src/runtime/FreeBSD2/RTHeapDepC.c +--- RTHeapDepC.c.orig Sat Mar 23 14:52:21 1996 ++++ RTHeapDepC.c Tue Oct 8 14:31:15 1996 +@@ -110,20 +110,6 @@ + /* Unless otherwise noted, all the following wrappers have the same + structure. */ + +-int accept(s, addr, addrlen) /* ok */ +-int s; +-struct sockaddr *addr; +-int *addrlen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(addr); +- MAKE_WRITABLE(addrlen); +- result = syscall(SYS_accept, s, addr, addrlen); +- EXIT_CRITICAL; +- return result; +-} +- + int access(path, mode) /* ok */ + char *path; + int mode; +@@ -228,19 +214,6 @@ + } + */ + +-int bind(s, name, namelen) /* ok */ +-int s; +-const struct sockaddr *name; +-int namelen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_READABLE(name); +- result = syscall(SYS_bind, s, name, namelen); +- EXIT_CRITICAL; +- return result; +-} +- + /* not implemented + int cachectl(addr, nbytes, op) + char *addr; +@@ -314,19 +287,6 @@ + return result; + } + +-int connect(s, name, namelen) /* ok */ +-int s; +-const struct sockaddr *name; +-int namelen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_READABLE(name); +- result = syscall(SYS_connect, s, name, namelen); +- EXIT_CRITICAL; +- return result; +-} +- + /* not implemented (obsolete) + int creat(name, mode) + const char *name; +@@ -356,8 +316,8 @@ + result = syscall(SYS_execve, name, argv, envp); + if (result == -1 && errno == EFAULT) { + MAKE_READABLE(name); +- { char **a; for (a = argv; *a; a++) MAKE_READABLE(*a); } +- { char **e; for (e = envp; *e; e++) MAKE_READABLE(*e); } ++ { char * const *a; for (a = argv; *a; a++) MAKE_READABLE(*a); } ++ { char * const *e; for (e = envp; *e; e++) MAKE_READABLE(*e); } + } else { + return result; + } +@@ -513,20 +473,6 @@ + } + */ + +-int getpeername(s, name, namelen) /* ok */ +-int s; +-struct sockaddr *name; +-int *namelen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(name); +- MAKE_WRITABLE(namelen); +- result = syscall(SYS_getpeername, s, name, namelen); +- EXIT_CRITICAL; +- return result; +-} +- + int getrlimit(resource, rlp) /* ok */ + int resource; + struct rlimit *rlp; +@@ -551,20 +497,6 @@ + return result; + } + +-int getsockname(s, name, namelen) /* ok */ +-int s; +-struct sockaddr *name; +-int *namelen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(name); +- MAKE_WRITABLE(namelen); +- result = syscall(SYS_getsockname, s, name, namelen); +- EXIT_CRITICAL; +- return result; +-} +- + int getsockopt(s, level, optname, optval, optlen) /* ok */ + int s, level, optname; + void *optval; +@@ -821,19 +753,6 @@ + return result; + } + +-int read(d, buf, nbytes) /* ok */ +-int d; +-char *buf; +-size_t nbytes; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(buf); +- result = syscall(SYS_read, d, buf, nbytes); +- EXIT_CRITICAL; +- return result; +-} +- + int readlink(path, buf, bufsiz) /* ok */ + char *path; + char *buf; +@@ -865,46 +784,6 @@ + return result; + } + +-int recv(s, buf, len, flags) /* ok */ +-int s; +-void *buf; +-#if __FreeBSD__ >=2 +-size_t len; +-#else +-int len; +-#endif +-int flags; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(buf); +- result = syscall(SYS_recvfrom, s, buf, len, flags, NULL, 0); +- EXIT_CRITICAL; +- return result; +-} +- +-int recvfrom(s, buf, len, flags, from, fromlen) /* ok */ +-int s; +-void *buf; +-#if __FreeBSD__ >=2 +-size_t len; +-#else +-int len; +-#endif +-int flags; +-struct sockaddr *from; +-int *fromlen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(buf); +- MAKE_WRITABLE(from); +- MAKE_WRITABLE(fromlen); +- result = syscall(SYS_recvfrom, s, buf, len, flags, from, fromlen); +- EXIT_CRITICAL; +- return result; +-} +- + int recvmsg(s, msg, flags) /* ok */ + int s; + struct msghdr msg[]; +@@ -950,24 +829,6 @@ + return result; + } + +-int select(nfds, readfds, writefds, exceptfds, timeout) /* ok */ +-int nfds; +-fd_set *readfds; +-fd_set *writefds; +-fd_set *exceptfds; +-struct timeval *timeout; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_WRITABLE(readfds); +- MAKE_WRITABLE(writefds); +- MAKE_WRITABLE(exceptfds); +- MAKE_READABLE(timeout); +- result = syscall(SYS_select, nfds, readfds, writefds, exceptfds, timeout); +- EXIT_CRITICAL; +- return result; +-} +- + int semctl(semid, semnum, cmd, arg) /* ok ? */ + int semid, cmd; + int semnum; +@@ -1012,24 +873,6 @@ + return result; + } + +-int send(s, msg, len, flags) /* ok */ +-int s; +-const void *msg; +-#if __FreeBSD__ >=2 +-size_t len; +-#else +-int len; +-#endif +-int flags; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_READABLE(msg); +- result = syscall(SYS_sendto, s, msg, len, flags, NULL, 0); +- EXIT_CRITICAL; +- return result; +-} +- + int sendmsg(s, msg, flags) /* ok */ + int s; + const struct msghdr msg[]; +@@ -1051,27 +894,6 @@ + return result; + } + +-int sendto(s, msg, len, flags, to, tolen) /* ok */ +-int s; +-const void *msg; +-#if __FreeBSD__ >=2 +-size_t len; +-#else +-int len; +-#endif +-int flags; +-const struct sockaddr *to; +-int tolen; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_READABLE(msg); +- MAKE_READABLE(to); +- result = syscall(SYS_sendto, s, msg, len, flags, to, tolen); +- EXIT_CRITICAL; +- return result; +-} +- + int setdomainname(name, namelen) /* ok */ + char *name; + int namelen; +@@ -1414,19 +1236,6 @@ + ENTER_CRITICAL; + MAKE_WRITABLE(status); + result = syscall(SYS_wait4, pid, status, options, NULL); +- EXIT_CRITICAL; +- return result; +-} +- +-int write(fd, buf, nbytes) /* ok */ +-int fd; +-char *buf; +-int nbytes; +-{ int result; +- +- ENTER_CRITICAL; +- MAKE_READABLE(buf); +- result = syscall(SYS_write, fd, buf, nbytes); + EXIT_CRITICAL; + return result; + } |