Fix an old bug in the runtime system which very rarely could cause

EFAULT to be generated on calls to open(2) or fcntl(2).

Bump the shared libraries' major version numbers to guard against
possible binary incompatibilities introduced by this fix.
This commit is contained in:
John Polstra 1998-04-28 22:20:55 +00:00
parent 37d38c4fa4
commit c4aeb1a8b7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=10744
4 changed files with 88 additions and 44 deletions

View file

@ -193,7 +193,7 @@ Update the m3build templates for FreeBSD-2.1 and later.
proc after_library_hooks(x) is
local lib_a = format ("lib%s.a", x)
- local lib_so = format ("lib%s.so.1.1", x)
+ local lib_so = format ("lib%s.so.5.0", x)
+ local lib_so = format ("lib%s.so.6.0", x)
local dest = format ("%s%s%s%s%s", PKG_INSTALL, SL, BUILD_PACKAGE,
SL, BUILD_DIR)

View file

@ -1,8 +1,10 @@
Support for SOCKS wrappers in Unix.i3.
Also add some missing system call declarations.
Also fix misdirected entries for "open" and "fcntl" which bypassed the
VM wrappers.
--- m3/m3core/src/unix/freebsd-2/Unix.i3.orig Sat Jan 7 14:41:42 1995
+++ m3/m3core/src/unix/freebsd-2/Unix.i3 Thu Jul 10 18:32:36 1997
+++ m3/m3core/src/unix/freebsd-2/Unix.i3 Thu Apr 23 22:09:54 1998
@@ -84,9 +84,10 @@
<*EXTERNAL*> PROCEDURE fchmod (fd, mode: mode_t): int;
(* ok *)
@ -35,7 +37,18 @@ Also add some missing system call declarations.
(* ok *)
(*** execve - execute a file ***)
@@ -773,6 +774,9 @@
@@ -156,10 +157,7 @@
F_WRLCK = 3; (* Write lock *)
F_UNLCK = 2; (* Remove lock(s) *)
-(* with vm use this
<*EXTERNAL "ufcntl"*> PROCEDURE fcntl (fd, request, arg: int): int;
-*)
-<*EXTERNAL "m3_fcntl"*> PROCEDURE fcntl (fd, request, arg: int): int;
(* ok *)
(*** flock - apply or remove an advisory lock on an open file ***)
@@ -773,6 +771,9 @@
PROCEDURE lseek (d: int; offset: off_t; whence: int): off_t;
(* ok *)
@ -45,7 +58,20 @@ Also add some missing system call declarations.
(*** mkdir - make a directory file ***)
<*EXTERNAL*> PROCEDURE mkdir (path: char_star; mode: mode_t): int;
(* ok *)
@@ -892,7 +896,7 @@
@@ -827,12 +828,8 @@
M3_NONBLOCK = O_NONBLOCK; (* -1 => would block, 0 => EOF *)
-(* with vm use this
<*EXTERNAL "uopen" *> PROCEDURE open (name: char_star;
flags, mode: int): int;
-*)
-<*EXTERNAL "m3_open" *> PROCEDURE open (name: char_star;
- flags, mode: int): int;
(* ok *)
(*** pipe - create an interprocess channel ***)
@@ -892,7 +889,7 @@
TYPE
FDSet = SET OF [0 .. MAX_FDSET - 1];

View file

@ -0,0 +1,18 @@
--- m3/m3core/src/unix/freebsd-2/off_t_wrap.c.orig Thu Jan 12 09:28:20 1995
+++ m3/m3core/src/unix/freebsd-2/off_t_wrap.c Thu Apr 23 22:08:58 1998
@@ -33,15 +33,3 @@
off_t len = (off_t) length;
return ftruncate(fd, length);
}
-
-/* added to avoid problems with the ellipsis... */
-
-int m3_fcntl(int fd, int cmd, int arg)
-{
- return fcntl(fd, cmd, arg);
-}
-
-int m3_open(const char *path, int flags, mode_t mode)
-{
- return open(path, flags, mode);
-}

View file

@ -1,43 +1,43 @@
etc/rc.d/50.m3.sh
lib/m3/FreeBSD2/libDiGraph.so.5.0
lib/m3/FreeBSD2/libGeometry.so.5.0
lib/m3/FreeBSD2/libImages.so.5.0
lib/m3/FreeBSD2/libTempFiles.so.5.0
lib/m3/FreeBSD2/libjvideo.so.5.0
lib/m3/FreeBSD2/libm3.so.5.0
lib/m3/FreeBSD2/libm3X11R4.so.5.0
lib/m3/FreeBSD2/libm3core.so.5.0
lib/m3/FreeBSD2/libm3formsvbt.so.5.0
lib/m3/FreeBSD2/libm3formsvbtpixmaps.so.5.0
lib/m3/FreeBSD2/libm3parseparams.so.5.0
lib/m3/FreeBSD2/libm3tcp.so.5.0
lib/m3/FreeBSD2/libm3tools.so.5.0
lib/m3/FreeBSD2/libm3ui.so.5.0
lib/m3/FreeBSD2/libm3vbtkit.so.5.0
lib/m3/FreeBSD2/libset.so.5.0
lib/m3/FreeBSD2/libtable-list.so.5.0
lib/m3/FreeBSD2/libtcpextras.so.5.0
lib/m3/FreeBSD2/libvideovbt.so.5.0
lib/m3/FreeBSD2/libweb.so.5.0
lib/m3/pkg/X11R4/FreeBSD2/libm3X11R4.so.5.0
lib/m3/pkg/digraph/FreeBSD2/libDiGraph.so.5.0
lib/m3/pkg/formsvbt/FreeBSD2/libm3formsvbt.so.5.0
lib/m3/pkg/formsvbtpixmaps/FreeBSD2/libm3formsvbtpixmaps.so.5.0
lib/m3/pkg/images/FreeBSD2/libImages.so.5.0
lib/m3/pkg/jvideo/FreeBSD2/libjvideo.so.5.0
lib/m3/pkg/libm3/FreeBSD2/libm3.so.5.0
lib/m3/pkg/m3core/FreeBSD2/libm3core.so.5.0
lib/m3/pkg/m3tools/FreeBSD2/libm3tools.so.5.0
lib/m3/pkg/parseparams/FreeBSD2/libm3parseparams.so.5.0
lib/m3/pkg/realgeometry/FreeBSD2/libGeometry.so.5.0
lib/m3/pkg/set/FreeBSD2/libset.so.5.0
lib/m3/pkg/table-list/FreeBSD2/libtable-list.so.5.0
lib/m3/pkg/tcp/FreeBSD2/libm3tcp.so.5.0
lib/m3/pkg/tcpextras/FreeBSD2/libtcpextras.so.5.0
lib/m3/pkg/tempfiles/FreeBSD2/libTempFiles.so.5.0
lib/m3/pkg/ui/FreeBSD2/libm3ui.so.5.0
lib/m3/pkg/vbtkit/FreeBSD2/libm3vbtkit.so.5.0
lib/m3/pkg/videovbt/FreeBSD2/libvideovbt.so.5.0
lib/m3/pkg/web/FreeBSD2/libweb.so.5.0
lib/m3/FreeBSD2/libDiGraph.so.6.0
lib/m3/FreeBSD2/libGeometry.so.6.0
lib/m3/FreeBSD2/libImages.so.6.0
lib/m3/FreeBSD2/libTempFiles.so.6.0
lib/m3/FreeBSD2/libjvideo.so.6.0
lib/m3/FreeBSD2/libm3.so.6.0
lib/m3/FreeBSD2/libm3X11R4.so.6.0
lib/m3/FreeBSD2/libm3core.so.6.0
lib/m3/FreeBSD2/libm3formsvbt.so.6.0
lib/m3/FreeBSD2/libm3formsvbtpixmaps.so.6.0
lib/m3/FreeBSD2/libm3parseparams.so.6.0
lib/m3/FreeBSD2/libm3tcp.so.6.0
lib/m3/FreeBSD2/libm3tools.so.6.0
lib/m3/FreeBSD2/libm3ui.so.6.0
lib/m3/FreeBSD2/libm3vbtkit.so.6.0
lib/m3/FreeBSD2/libset.so.6.0
lib/m3/FreeBSD2/libtable-list.so.6.0
lib/m3/FreeBSD2/libtcpextras.so.6.0
lib/m3/FreeBSD2/libvideovbt.so.6.0
lib/m3/FreeBSD2/libweb.so.6.0
lib/m3/pkg/X11R4/FreeBSD2/libm3X11R4.so.6.0
lib/m3/pkg/digraph/FreeBSD2/libDiGraph.so.6.0
lib/m3/pkg/formsvbt/FreeBSD2/libm3formsvbt.so.6.0
lib/m3/pkg/formsvbtpixmaps/FreeBSD2/libm3formsvbtpixmaps.so.6.0
lib/m3/pkg/images/FreeBSD2/libImages.so.6.0
lib/m3/pkg/jvideo/FreeBSD2/libjvideo.so.6.0
lib/m3/pkg/libm3/FreeBSD2/libm3.so.6.0
lib/m3/pkg/m3core/FreeBSD2/libm3core.so.6.0
lib/m3/pkg/m3tools/FreeBSD2/libm3tools.so.6.0
lib/m3/pkg/parseparams/FreeBSD2/libm3parseparams.so.6.0
lib/m3/pkg/realgeometry/FreeBSD2/libGeometry.so.6.0
lib/m3/pkg/set/FreeBSD2/libset.so.6.0
lib/m3/pkg/table-list/FreeBSD2/libtable-list.so.6.0
lib/m3/pkg/tcp/FreeBSD2/libm3tcp.so.6.0
lib/m3/pkg/tcpextras/FreeBSD2/libtcpextras.so.6.0
lib/m3/pkg/tempfiles/FreeBSD2/libTempFiles.so.6.0
lib/m3/pkg/ui/FreeBSD2/libm3ui.so.6.0
lib/m3/pkg/vbtkit/FreeBSD2/libm3vbtkit.so.6.0
lib/m3/pkg/videovbt/FreeBSD2/libvideovbt.so.6.0
lib/m3/pkg/web/FreeBSD2/libweb.so.6.0
share/modula-3-lib/COPYRIGHT
@exec /sbin/ldconfig -m %D/lib/m3/FreeBSD2