diff --git a/src/lib/libast/features/standards b/src/lib/libast/features/standards index c20f2f094fb4..985d31680076 100644 --- a/src/lib/libast/features/standards +++ b/src/lib/libast/features/standards @@ -158,6 +158,22 @@ else tst note{ __EXTENSIONS__ works }end compile{ } endif +if tst note{ __FreeBSD_version works }end compile{ + #include + #if !defined(__FreeBSD_version) + ( + #endif + }end { +/* + * On FreeBSD we can't define these symbols since doing so causes + * problems such as some errno symbols (e.g., EILSEQ) not being visible. + */ + #undef _POSIX_SOURCE + #undef _POSIX_C_SOURCE + #undef _XOPEN_SOURCE + } +endif + if tst -D_ISOC99_SOURCE -lm note{ _ISOC99_SOURCE plays nice }end link{ #include #include diff --git a/src/lib/libast/features/wchar b/src/lib/libast/features/wchar index f6e90c9769e4..bafdc67a146a 100644 --- a/src/lib/libast/features/wchar +++ b/src/lib/libast/features/wchar @@ -52,6 +52,10 @@ endif run{ cat <mode&SF_INIT ) /* stream uninitialized, ok to set flags */ - { f->flags |= (sflags & (SF_FLAGS & ~SF_RDWR)); + { f->flags |= (sflags & (SFIO_FLAGS & ~SF_RDWR)); if((sflags &= SF_RDWR) != 0) /* reset read/write modes */ { f->flags = (f->flags & ~SF_RDWR) | sflags; diff --git a/src/lib/libast/sfio/sfclrlock.c b/src/lib/libast/sfio/sfclrlock.c index 7988a1b98abf..e6e06e0cefc7 100644 --- a/src/lib/libast/sfio/sfclrlock.c +++ b/src/lib/libast/sfio/sfclrlock.c @@ -57,7 +57,7 @@ Sfio_t *f; /* throw away all lock bits except for stacking state SF_PUSH */ f->mode &= (SF_RDWR|SF_INIT|SF_POOL|SF_PUSH|SF_SYNCED|SF_STDIO); - rv = (f->mode&SF_PUSH) ? 0 : (f->flags&SF_FLAGS); + rv = (f->mode&SF_PUSH) ? 0 : (f->flags&SFIO_FLAGS); SFMTXRETURN(f, rv); } diff --git a/src/lib/libast/sfio/sfnew.c b/src/lib/libast/sfio/sfnew.c index 635bf7b1b693..101d16266d90 100644 --- a/src/lib/libast/sfio/sfnew.c +++ b/src/lib/libast/sfio/sfnew.c @@ -106,7 +106,7 @@ int flags; /* type of file stream */ /* stream type */ f->mode = (flags&SF_READ) ? SF_READ : SF_WRITE; - f->flags = (flags&SF_FLAGS) | (sflags&(SF_MALLOC|SF_STATIC)); + f->flags = (flags&SFIO_FLAGS) | (sflags&(SF_MALLOC|SF_STATIC)); f->bits = (flags&SF_RDWR) == SF_RDWR ? SF_BOTH : 0; f->file = file; f->here = f->extent = 0; diff --git a/src/lib/libast/sfio/sfset.c b/src/lib/libast/sfio/sfset.c index 2d3e0454cd08..e4504070e6ed 100644 --- a/src/lib/libast/sfio/sfset.c +++ b/src/lib/libast/sfio/sfset.c @@ -41,7 +41,7 @@ int set; SFMTXENTER(f,0); if(flags == 0 && set == 0) - SFMTXRETURN(f, (f->flags&SF_FLAGS)); + SFMTXRETURN(f, (f->flags&SFIO_FLAGS)); if((oflags = (f->mode&SF_RDWR)) != (int)f->mode) { /* avoid sfsetbuf() isatty() call if user sets (SF_LINE|SF_WCWIDTH) */ @@ -57,7 +57,7 @@ int set; SFMTXRETURN(f, 0); } if(flags == 0) - SFMTXRETURN(f, (f->flags&SF_FLAGS)); + SFMTXRETURN(f, (f->flags&SFIO_FLAGS)); SFLOCK(f,0); @@ -95,5 +95,5 @@ int set; f->flags &= ~SF_PUBLIC; SFOPEN(f,0); - SFMTXRETURN(f, (oflags&SF_FLAGS)); + SFMTXRETURN(f, (oflags&SFIO_FLAGS)); }