Closed Bug 139 Opened 27 years ago Closed 24 years ago

nsrpub/pr/src/md/unix.c error for BSD/OS 3.1

Categories

(NSPR :: NSPR, defect, P1)

defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jason, Assigned: wtc)

Details

Created by   (jason@ackley.net) on Friday, April 10, 1998 1:16:31 PM PDT
Additional Details :
In case it has not been reported:

Line 2319 of unix.c has a if defined(FREEBSD) to set osflags
to O_SYNC or O_FSYNC, it should include BSDI (at least 3.1,
I have not tested on other revs)

To fix:

in unix.c , I added under some of the #include''s

#if defined(BSDI)
#include <sys/param.h> /* For _BSDI_VERSION */
#endif

Then at the if defined(FREEBSD), I changed it to

#if defined(FREEBSD) || defined(BSDI) && _BSDI_VERSION >= \
199701

etc etc
Updated by Wan-Teh Chang (wtc@netscape.com) on Wednesday, April 22, 1998 12:52:59 PM PDT
Additional Details :
Assigned the bug to myself.

We already fixed this problem in our internal development version.
Our fix is similar to yours, except that we do not check the BSDI
version, i.e., we just say
    #if defined(FREEBSD) || defined(BSDI)
    etc etc

Perhaps we should make it more OS-independent, like this:
    #if defined(O_SYNC)
        osflags |= O_SYNC;
    #elif defined(O_FSYNC)
        osflags |= O_FSYNC;
    #else
    #error "Neither O_SYNC nor O_FSYNC is defined"
    #endif

I will test this fix.

Thanks for reporting the problem.
Updated by   (jason@ackley.net) on Wednesday, April 22, 1998 10:19:41 PM PDT
Additional Details :
I was able to locate my BSDi 2.0 CD, and check its /usr/include/sys//fcntl.h
against the current 3.1 fcntl.h, only differences are BSDi RCS versions, so
it should be OK not to check the version number for it.
Updated by Wan-Teh Chang (wtc@netscape.com) on Friday, April 24, 1998 12:31:04 PM PDT
Additional Details :
Thanks for checking BSDi 2.0 for me.

I checked in the fix that conditionalizes on the
O_SYNC/O_FSYNC macros instead of the platform
macros like FREEBSD/BSDI.  I tested the fix
on BSDi 2.0 and 3.0.

The fix is in ns/nsprpub/pr/src/md/unix/unix.c,
revision 3.4.

Marked the bug closed.
NSPR now has its own Bugzilla product.  Moving this bug to the NSPR product.
these bugs are closed but have no resolution.  reopening...
Status: CLOSED → REOPENED
marking as fixed.
Status: REOPENED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
VERIFIED per no comments in over a year.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.