Hello John, > The make step on VMS next stopped at glthread/cond.c with: > > cc -DHAVE_CONFIG_H -DEXEEXT=\"\" -DEXEEXT=\"\" -DNO_XMALLOC > -DEXEEXT=\"\" -I. -I.. -DGNULIB_STRICT_CHECKING=1 -g -c -o > glthread/cond.o glthread/cond.c > > struct sched_param > ^ > %CC-E-REDEFSTRUCT, In this declaration, the struct "sched_param" is > redefined. > at line number 52 in file LCL_ROOT:[gnulib.gllib]sched.h;1 > make[4]: *** [glthread/cond.o] Error 2 > > VMS does not currently provide a sched.h and has that definition in > pthread.h instead.
Please try the attached patch. Please also tell us identification of your environment: - Is it "VMS"? Or "OpenVMS"? - Which version? You're talking about 7.3 here, 8.2 there, 8.4 then... - [Not for this patch, but for other ones.] What's the best C preprocessor conditionals for your environment? According to predef.sf.net, I guess it's __DECC for the compiler and __VMS for the operating system? Conditionalized with __VMS_VER >= 82000000 or __VMS_VER >= 84000000 ? Bruno
diff --git a/m4/sched_h.m4 b/m4/sched_h.m4 index fd60a40..4ac0268 100644 --- a/m4/sched_h.m4 +++ b/m4/sched_h.m4 @@ -1,4 +1,4 @@ -# sched_h.m4 serial 9 +# sched_h.m4 serial 10 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -8,6 +8,7 @@ dnl Written by Bruno Haible. AC_DEFUN([gl_SCHED_H], [ + AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_HEADERS_ONCE([sys/cdefs.h]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ @@ -41,10 +42,20 @@ AC_DEFUN([gl_SCHED_H], #include <sched.h> ]]) else - dnl On OS/2 kLIBC, struct sched_param is in spawn.h. - AC_CHECK_TYPE([struct sched_param], - [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], - [#include <spawn.h>]) + case "$host_os" in + os2*) + dnl On OS/2 kLIBC, struct sched_param is in spawn.h. + AC_CHECK_TYPE([struct sched_param], + [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], + [#include <spawn.h>]) + ;; + vms) + dnl On VMS x.y, struct sched_param is in pthread.h. + AC_CHECK_TYPE([struct sched_param], + [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], + [#include <pthread.h>]) + ;; + esac fi AC_SUBST([HAVE_STRUCT_SCHED_PARAM])