tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: rfc: POSIX conformance



On Fri, Aug 1, 2008 at 10:19 AM, Andy Shevchenko
<andy.shevchenko%gmail.com@localhost> wrote:

> POSIX01 tests compliance to POSIX.1-2001/SUSv3 excluding the XSI option

Some cite as preamble:
"When VSX creates the configuration header file with a list of
definitions (other than
NSIG), the indication is that your master system does not conform to the
specification or standard corresponding to the test mode you have
chosen. If you are
unable to give the correct values for the definitions in the file, you
may find that
some of the VSX sources do not compile and that some of the tests fail.
You must check all the values for the definitions added to this file, to
ensure that
they are suitable for your master system. Incorrect values may cause
particular tests
to function incorrectly. If this happens, it is much more difficult to
ascertain the
cause of the error. As this information is not available to all users,
you may need
assistance from the personnel who implemented your system."

And complains of the configuration script of the VSXgen engine (in C code form).
VSX has predefined constant for this profile: -D_POSIX_C_SOURCE=200112

1. <ctype.h> - Missing elements

#define isblank(c)      (-1)


2. <fenv.h> - Missing include file

Minimal definitions:

#define FE_ALL_EXCEPT   (-1)
#define FE_DFL_ENV      (-1)
extern int feclearexcept();
extern int fegetenv();
extern int fegetexceptflag();
extern int fegetround();
extern int feholdexcept();
typedef <type> fenv_t;
extern int feraiseexcept();
extern int fesetenv();
extern int fesetexceptflag();
extern int fesetround();
extern int fetestexcept();
extern int feupdateenv();
typedef <type> fexcept_t;


3. <inttypes.h> - Missing elements

extern intmax_t  imaxabs();
extern imaxdiv_t imaxdiv();
typedef struct { <members> } imaxdiv_t;


4. <limits.h> - Missing elements

#define _POSIX_HOST_NAME_MAX    255
#define _POSIX_SYMLOOP_MAX      8


5. <signal.h> - Missing elements

#define NSIG    (-1)    /* user supplied: (highest_signal_number + 1)
*/ <<<<< Actually not considered
#define SIGPOLL (-1)


6. <stdio.h> - Missing elements

extern int      fseeko();
extern off_t    ftello();
extern int      vfscanf();
extern int      vscanf();
extern int      vsscanf();


7. <stdlib.h> - Missing elements

extern  long long       atoll();
extern  long long       llabs();
extern  lldiv_t lldiv();
extern  float   strtof();
extern  long double     strtold();
extern  long long       strtoll();
extern  unsigned long long      strtoull();


8. <unistd.h> - Missing elements

#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS (-1)
#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS        (-1)
#define _CS_POSIX_V6_ILP32_OFF32_LIBS   (-1)
#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS        (-1)
#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS       (-1)
#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS  (-1)
#define _CS_POSIX_V6_LP64_OFF64_CFLAGS  (-1)
#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS (-1)
#define _CS_POSIX_V6_LP64_OFF64_LIBS    (-1)
#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS        (-1)
#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS       (-1)
#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS  (-1)
#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS      (-1)
#define _PC_2_SYMLINKS          (-1)
#define _PC_SYMLINK_MAX (-1)
#define _POSIX2_C_VERSION       (-1L)
#define _SC_2_PBS       (-1)
#define _SC_HOST_NAME_MAX       (-1)
#define _SC_PASS_MAX    (-1)
#define _SC_REGEXP      (-1)
#define _SC_SHELL       (-1)
#define _SC_SYMLOOP_MAX (-1)
#define _SC_V6_ILP32_OFF32      (-1)
#define _SC_V6_ILP32_OFFBIG     (-1)
#define _SC_V6_LP64_OFF64       (-1)
#define _SC_V6_LPBIG_OFFBIG     (-1)


9. <wchar.h> - Missing elements

extern int      vfwscanf();
extern int      vswscanf();
extern int      vwscanf();
extern float    wcstof();
extern long double      wcstold();
extern long long        wcstoll();
extern unsigned long long       wcstoull();


NOTES:
(-1) - should be changed to a proper values
<type> - should be changed to proper type
<members> - should be changed to related set of structure members

P.S. I've excluded *math.h related stuff until now

-- 
With Best Regards,
Andy Shevchenko


Home | Main Index | Thread Index | Old Index