Added table entries for Irix 6.5 names for confstr()/sysconf()/
pathconf() names, from Sjoerd. Added code to verify that these tables are properly ordered, only included and used when CHECK_CONFNAME_TABLES is defined. This is only needed to test the tables, so I haven't enabled this by default.
This commit is contained in:
parent
1a5eb04d47
commit
d86ed29f44
|
@ -3415,6 +3415,12 @@ conv_confname(arg, valuep, table, tablesize)
|
|||
|
||||
#if defined(HAVE_FPATHCONF) || defined(HAVE_PATHCONF)
|
||||
static struct constdef posix_constants_pathconf[] = {
|
||||
#ifdef _PC_ABI_AIO_XFER_MAX
|
||||
{"PC_ABI_AIO_XFER_MAX", _PC_ABI_AIO_XFER_MAX},
|
||||
#endif
|
||||
#ifdef _PC_ABI_ASYNC_IO
|
||||
{"PC_ABI_ASYNC_IO", _PC_ABI_ASYNC_IO},
|
||||
#endif
|
||||
#ifdef _PC_ASYNC_IO
|
||||
{"PC_ASYNC_IO", _PC_ASYNC_IO},
|
||||
#endif
|
||||
|
@ -3540,6 +3546,21 @@ posix_pathconf(self, args)
|
|||
|
||||
#ifdef HAVE_CONFSTR
|
||||
static struct constdef posix_constants_confstr[] = {
|
||||
#ifdef _CS_ARCHITECTURE
|
||||
{"CS_ARCHITECTURE", _CS_ARCHITECTURE},
|
||||
#endif
|
||||
#ifdef _CS_HOSTNAME
|
||||
{"CS_HOSTNAME", _CS_HOSTNAME},
|
||||
#endif
|
||||
#ifdef _CS_HW_PROVIDER
|
||||
{"CS_HW_PROVIDER", _CS_HW_PROVIDER},
|
||||
#endif
|
||||
#ifdef _CS_HW_SERIAL
|
||||
{"CS_HW_SERIAL", _CS_HW_SERIAL},
|
||||
#endif
|
||||
#ifdef _CS_INITTAB_NAME
|
||||
{"CS_INITTAB_NAME", _CS_INITTAB_NAME},
|
||||
#endif
|
||||
#ifdef _CS_LFS64_CFLAGS
|
||||
{"CS_LFS64_CFLAGS", _CS_LFS64_CFLAGS},
|
||||
#endif
|
||||
|
@ -3564,9 +3585,24 @@ static struct constdef posix_constants_confstr[] = {
|
|||
#ifdef _CS_LFS_LINTFLAGS
|
||||
{"CS_LFS_LINTFLAGS", _CS_LFS_LINTFLAGS},
|
||||
#endif
|
||||
#ifdef _CS_MACHINE
|
||||
{"CS_MACHINE", _CS_MACHINE},
|
||||
#endif
|
||||
#ifdef _CS_PATH
|
||||
{"CS_PATH", _CS_PATH},
|
||||
#endif
|
||||
#ifdef _CS_RELEASE
|
||||
{"CS_RELEASE", _CS_RELEASE},
|
||||
#endif
|
||||
#ifdef _CS_SRPC_DOMAIN
|
||||
{"CS_SRPC_DOMAIN", _CS_SRPC_DOMAIN},
|
||||
#endif
|
||||
#ifdef _CS_SYSNAME
|
||||
{"CS_SYSNAME", _CS_SYSNAME},
|
||||
#endif
|
||||
#ifdef _CS_VERSION
|
||||
{"CS_VERSION", _CS_VERSION},
|
||||
#endif
|
||||
#ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
|
||||
{"CS_XBS5_ILP32_OFF32_CFLAGS", _CS_XBS5_ILP32_OFF32_CFLAGS},
|
||||
#endif
|
||||
|
@ -3615,6 +3651,45 @@ static struct constdef posix_constants_confstr[] = {
|
|||
#ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
|
||||
{"CS_XBS5_LPBIG_OFFBIG_LINTFLAGS", _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_AVAIL_PROCESSORS
|
||||
{"MIPS_CS_AVAIL_PROCESSORS", _MIPS_CS_AVAIL_PROCESSORS},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_BASE
|
||||
{"MIPS_CS_BASE", _MIPS_CS_BASE},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_HOSTID
|
||||
{"MIPS_CS_HOSTID", _MIPS_CS_HOSTID},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_HW_NAME
|
||||
{"MIPS_CS_HW_NAME", _MIPS_CS_HW_NAME},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_NUM_PROCESSORS
|
||||
{"MIPS_CS_NUM_PROCESSORS", _MIPS_CS_NUM_PROCESSORS},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_OSREL_MAJ
|
||||
{"MIPS_CS_OSREL_MAJ", _MIPS_CS_OSREL_MAJ},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_OSREL_MIN
|
||||
{"MIPS_CS_OSREL_MIN", _MIPS_CS_OSREL_MIN},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_OSREL_PATCH
|
||||
{"MIPS_CS_OSREL_PATCH", _MIPS_CS_OSREL_PATCH},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_OS_NAME
|
||||
{"MIPS_CS_OS_NAME", _MIPS_CS_OS_NAME},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_OS_PROVIDER
|
||||
{"MIPS_CS_OS_PROVIDER", _MIPS_CS_OS_PROVIDER},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_PROCESSORS
|
||||
{"MIPS_CS_PROCESSORS", _MIPS_CS_PROCESSORS},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_SERIAL
|
||||
{"MIPS_CS_SERIAL", _MIPS_CS_SERIAL},
|
||||
#endif
|
||||
#ifdef _MIPS_CS_VENDOR
|
||||
{"MIPS_CS_VENDOR", _MIPS_CS_VENDOR},
|
||||
#endif
|
||||
};
|
||||
|
||||
static int
|
||||
|
@ -3697,6 +3772,12 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_2_VERSION
|
||||
{"SC_2_VERSION", _SC_2_VERSION},
|
||||
#endif
|
||||
#ifdef _SC_ABI_ASYNCHRONOUS_IO
|
||||
{"SC_ABI_ASYNCHRONOUS_IO", _SC_ABI_ASYNCHRONOUS_IO},
|
||||
#endif
|
||||
#ifdef _SC_ACL
|
||||
{"SC_ACL", _SC_ACL},
|
||||
#endif
|
||||
#ifdef _SC_AIO_LISTIO_MAX
|
||||
{"SC_AIO_LISTIO_MAX", _SC_AIO_LISTIO_MAX},
|
||||
#endif
|
||||
|
@ -3718,6 +3799,9 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_ATEXIT_MAX
|
||||
{"SC_ATEXIT_MAX", _SC_ATEXIT_MAX},
|
||||
#endif
|
||||
#ifdef _SC_AUDIT
|
||||
{"SC_AUDIT", _SC_AUDIT},
|
||||
#endif
|
||||
#ifdef _SC_AVPHYS_PAGES
|
||||
{"SC_AVPHYS_PAGES", _SC_AVPHYS_PAGES},
|
||||
#endif
|
||||
|
@ -3733,6 +3817,9 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_BC_STRING_MAX
|
||||
{"SC_BC_STRING_MAX", _SC_BC_STRING_MAX},
|
||||
#endif
|
||||
#ifdef _SC_CAP
|
||||
{"SC_CAP", _SC_CAP},
|
||||
#endif
|
||||
#ifdef _SC_CHARCLASS_NAME_MAX
|
||||
{"SC_CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX},
|
||||
#endif
|
||||
|
@ -3802,6 +3889,9 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_ICACHE_SZ
|
||||
{"SC_ICACHE_SZ", _SC_ICACHE_SZ},
|
||||
#endif
|
||||
#ifdef _SC_INF
|
||||
{"SC_INF", _SC_INF},
|
||||
#endif
|
||||
#ifdef _SC_INT_MAX
|
||||
{"SC_INT_MAX", _SC_INT_MAX},
|
||||
#endif
|
||||
|
@ -3811,9 +3901,18 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_IOV_MAX
|
||||
{"SC_IOV_MAX", _SC_IOV_MAX},
|
||||
#endif
|
||||
#ifdef _SC_IP_SECOPTS
|
||||
{"SC_IP_SECOPTS", _SC_IP_SECOPTS},
|
||||
#endif
|
||||
#ifdef _SC_JOB_CONTROL
|
||||
{"SC_JOB_CONTROL", _SC_JOB_CONTROL},
|
||||
#endif
|
||||
#ifdef _SC_KERN_POINTERS
|
||||
{"SC_KERN_POINTERS", _SC_KERN_POINTERS},
|
||||
#endif
|
||||
#ifdef _SC_KERN_SIM
|
||||
{"SC_KERN_SIM", _SC_KERN_SIM},
|
||||
#endif
|
||||
#ifdef _SC_LINE_MAX
|
||||
{"SC_LINE_MAX", _SC_LINE_MAX},
|
||||
#endif
|
||||
|
@ -3826,6 +3925,9 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_LONG_BIT
|
||||
{"SC_LONG_BIT", _SC_LONG_BIT},
|
||||
#endif
|
||||
#ifdef _SC_MAC
|
||||
{"SC_MAC", _SC_MAC},
|
||||
#endif
|
||||
#ifdef _SC_MAPPED_FILES
|
||||
{"SC_MAPPED_FILES", _SC_MAPPED_FILES},
|
||||
#endif
|
||||
|
@ -3847,12 +3949,18 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_MESSAGE_PASSING
|
||||
{"SC_MESSAGE_PASSING", _SC_MESSAGE_PASSING},
|
||||
#endif
|
||||
#ifdef _SC_MMAP_FIXED_ALIGNMENT
|
||||
{"SC_MMAP_FIXED_ALIGNMENT", _SC_MMAP_FIXED_ALIGNMENT},
|
||||
#endif
|
||||
#ifdef _SC_MQ_OPEN_MAX
|
||||
{"SC_MQ_OPEN_MAX", _SC_MQ_OPEN_MAX},
|
||||
#endif
|
||||
#ifdef _SC_MQ_PRIO_MAX
|
||||
{"SC_MQ_PRIO_MAX", _SC_MQ_PRIO_MAX},
|
||||
#endif
|
||||
#ifdef _SC_NACLS_MAX
|
||||
{"SC_NACLS_MAX", _SC_NACLS_MAX},
|
||||
#endif
|
||||
#ifdef _SC_NGROUPS_MAX
|
||||
{"SC_NGROUPS_MAX", _SC_NGROUPS_MAX},
|
||||
#endif
|
||||
|
@ -3880,6 +3988,12 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_NPROCESSORS_ONLN
|
||||
{"SC_NPROCESSORS_ONLN", _SC_NPROCESSORS_ONLN},
|
||||
#endif
|
||||
#ifdef _SC_NPROC_CONF
|
||||
{"SC_NPROC_CONF", _SC_NPROC_CONF},
|
||||
#endif
|
||||
#ifdef _SC_NPROC_ONLN
|
||||
{"SC_NPROC_ONLN", _SC_NPROC_ONLN},
|
||||
#endif
|
||||
#ifdef _SC_NZERO
|
||||
{"SC_NZERO", _SC_NZERO},
|
||||
#endif
|
||||
|
@ -3985,6 +4099,9 @@ static struct constdef posix_constants_sysconf[] = {
|
|||
#ifdef _SC_SIGRT_MIN
|
||||
{"SC_SIGRT_MIN", _SC_SIGRT_MIN},
|
||||
#endif
|
||||
#ifdef _SC_SOFTPOWER
|
||||
{"SC_SOFTPOWER", _SC_SOFTPOWER},
|
||||
#endif
|
||||
#ifdef _SC_SPLIT_CACHE
|
||||
{"SC_SPLIT_CACHE", _SC_SPLIT_CACHE},
|
||||
#endif
|
||||
|
@ -4159,6 +4276,59 @@ posix_sysconf(self, args)
|
|||
#endif
|
||||
|
||||
|
||||
#ifdef CHECK_CONFNAME_TABLES
|
||||
/* This code should not be enabled by default; it's only purpose is to
|
||||
* test the order of constants in the configuration name tables. The
|
||||
* second function defined here, check_confname_tables(), is called
|
||||
* during module initialization if CHECK_CONFNAME_TABLES is defined.
|
||||
* This only needs to be done when changes are made to the tables.
|
||||
*/
|
||||
static void
|
||||
check_confname_table(table, tablesize, tablename)
|
||||
struct constdef *table;
|
||||
size_t tablesize;
|
||||
char *tablename;
|
||||
{
|
||||
if (tablesize > 1) {
|
||||
int i = 0;
|
||||
|
||||
for (; i < (tablesize - 1); ++i) {
|
||||
if (strcmp(table[i].name, table[i + 1].name) >= 0) {
|
||||
char buffer[256];
|
||||
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"confname table '%s' out of order!\n", tablename);
|
||||
Py_FatalError(buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
check_confname_tables()
|
||||
{
|
||||
#if defined(HAVE_FPATHCONF) || defined(HAVE_PATHCONF)
|
||||
check_confname_table(posix_constants_pathconf,
|
||||
sizeof(posix_constants_pathconf)
|
||||
/ sizeof(struct constdef),
|
||||
"pathconf");
|
||||
#endif
|
||||
#ifdef HAVE_CONFSTR
|
||||
check_confname_table(posix_constants_confstr,
|
||||
sizeof(posix_constants_confstr)
|
||||
/ sizeof(struct constdef),
|
||||
"confstr");
|
||||
#endif
|
||||
#ifdef HAVE_SYSCONF
|
||||
check_confname_table(posix_constants_sysconf,
|
||||
sizeof(posix_constants_sysconf)
|
||||
/ sizeof(struct constdef),
|
||||
"sysconf");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static char posix_abort__doc__[] = "\
|
||||
abort() -> does not return!\n\
|
||||
Abort the interpreter immediately. This 'dumps core' or otherwise fails\n\
|
||||
|
@ -4576,4 +4746,8 @@ INITFUNC()
|
|||
PyDict_SetItemString(d, "error", PyExc_OSError);
|
||||
|
||||
posix_putenv_garbage = PyDict_New();
|
||||
|
||||
#ifdef CHECK_CONFNAME_TABLES
|
||||
check_confname_tables();
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue