bug-gnulib
[Top][All Lists]
Advanced

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

Re: m4-1.4.19 not C99 clean ?


From: Dennis Clarke
Subject: Re: m4-1.4.19 not C99 clean ?
Date: Wed, 15 Sep 2021 03:33:34 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:92.0) Gecko/20100101 Thunderbird/92.0

On 9/13/21 10:11, Eric Blake wrote:
> Adding bug-gnulib, since...
> 
> On Mon, Sep 13, 2021 at 12:36:12AM -0400, Dennis Clarke wrote:
>>
>> Not sure if this is a bug if m4 is not supposed to be C89 or C99 clean
>> however I see :
>>
>> .
>> .
>> .
>> /opt/bw/bin/gmake  all-am
>> gmake[3]: Entering directory
>> '/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.001/lib'
>> source='asyncsafe-spin.c' object='asyncsafe-spin.o' libtool=no \
>> DEPDIR=.deps depmode=dashXmstdout /opt/bw/bin/bash ../build-aux/depcomp \
>> /opt/developerstudio12.6/bin/c99  -I.   -I/opt/bw/include
>> -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO
>> -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=600 -D_REENTRANT  -Xc
>> -errtags=yes -errwarn=%none -m64 -xarch=sparc -xO0 -g -xs -errfmt=error
>> -erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s
>> -xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none
>> -xbuiltin=%none -xunroll=1 -Qy -xdebugformat=dwarf -c -o
>> asyncsafe-spin.o asyncsafe-spin.c
>> "asyncsafe-spin.c", line 213: error: undefined symbol: asm
>> "asyncsafe-spin.c", line 213: error: syntax error before or at: volatile
>> "asyncsafe-spin.c", line 238: error: undefined symbol: asm
>> "asyncsafe-spin.c", line 238: error: syntax error before or at: volatile
>> c99: acomp failed for asyncsafe-spin.c
> 
> ...asyncsafe-spin.c comes from gnulib.
> 
>> gmake[3]: *** [Makefile:2869: asyncsafe-spin.o] Error 2
>> gmake[3]: Leaving directory
>> '/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.001/lib'
>> gmake[2]: *** [Makefile:2481: all] Error 2
>> gmake[2]: Leaving directory
>> '/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.001/lib'
>> gmake[1]: *** [Makefile:2018: all-recursive] Error 1
>> gmake[1]: Leaving directory '/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.001'
>> gmake: *** [Makefile:1974: all] Error 2
>>
>> Where we see the asm usage that sort of says "not C99 here".
>>
>> However std9899:2011 seems to be just fine.
>>
>> So are we C11 here only ?
> 
> I'm not sure how much of gnulib still tries to cater to C89,
> vs. assuming C99.  But if there is an obvious fix for your compiler,
> we're likely to use it.
> 

I am getting good results here and still going with really strict C99 in
a very pedantic manner.

Looking at :

    https://lists.gnu.org/archive/html/bug-m4/2021-06/msg00009.html


I do this :


beta $ diff -u doc/m4.texi.orig doc/m4.texi
--- doc/m4.texi.orig    Fri May 28 14:41:47 2021
+++ doc/m4.texi Wed Sep 15 06:58:09 2021
@@ -6756,7 +6756,7 @@
 ')m4exit(`77')')dnl
 changequote(`[', `]')
 @result{}
-syscmd([/bin/sh -c 'kill -9 $$'; st=$?; test $st = 137 || test $st = 265])
+syscmd([@{ /bin/sh -c 'kill -9 $$'; @} 2>/dev/null; st=$?; test $st =
137 || test $st = 265])
 @result{}
 ifelse(sysval, [0], , [errprint([ skipping: shell does not send signal 9
 ])m4exit([77])])dnl
beta $

Also we have :

beta $ diff -u ./lib/asyncsafe-spin.c.orig ./lib/asyncsafe-spin.c
--- ./lib/asyncsafe-spin.c.orig Thu Apr  1 20:30:11 2021
+++ ./lib/asyncsafe-spin.c      Wed Sep 15 06:07:43 2021
@@ -27,6 +27,10 @@
 # include <sys/atomic_op.h>
 #endif

+#if 0x590 <= __SUNPRO_C && __STDC__
+# define asm __asm
+#endif
+
 #if defined _WIN32 && ! defined __CYGWIN__
 /* Use Windows threads.  */

beta $

The configure stage looks perfectly fine :

beta $ pwd
/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004
beta $ ./configure --prefix=/opt/bw \
> --disable-silent-rules --enable-dependency-tracking \
> --enable-threads=posix --without-gnu-ld \
> --with-libsigsegv-prefix=/opt/bw
checking for a BSD-compatible install... ./build-aux/install-sh -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... ./build-aux/install-sh -c -d
checking for gawk... /opt/bw/bin/gawk
checking whether /opt/bw/bin/gmake sets $(MAKE)... yes
checking whether /opt/bw/bin/gmake supports nested variables... yes
checking whether /opt/bw/bin/gmake supports nested variables... (cached) yes
checking for gcc... /opt/developerstudio12.6/bin/c99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... no
checking whether /opt/developerstudio12.6/bin/c99 accepts -g... yes
checking for /opt/developerstudio12.6/bin/c99 option to enable C11
features... unsupported
checking for /opt/developerstudio12.6/bin/c99 option to enable C99
features... none needed
checking whether /opt/developerstudio12.6/bin/c99 understands -c and -o
together... yes
checking whether the compiler is clang... no
checking for compiler option needed when checking for declarations... none
checking whether /opt/bw/bin/gmake supports the include directive... yes
(GNU style)
checking dependency style of /opt/developerstudio12.6/bin/c99...
dashXmstdout
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking for pthread.h... yes
checking for sys/param.h... yes
checking for sys/socket.h... yes
checking for dirent.h... yes
checking for stdio_ext.h... yes
checking for getopt.h... yes
checking for sys/cdefs.h... no
checking for threads.h... no
checking for iconv.h... yes
checking for limits.h... yes
checking for crtdefs.h... no
checking for wctype.h... yes
checking for langinfo.h... yes
checking for xlocale.h... no
checking for math.h... yes
checking for sys/mman.h... yes
checking for malloc.h... yes
checking for spawn.h... yes
checking for sys/time.h... yes
checking for sys/random.h... yes
checking for sys/wait.h... yes
checking for features.h... no
checking for arpa/inet.h... yes
checking for semaphore.h... yes
checking for netdb.h... yes
checking for netinet/in.h... yes
checking for sys/select.h... yes
checking for sys/ioctl.h... yes
checking for sys/uio.h... yes
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking how to run the C preprocessor...
/opt/developerstudio12.6/bin/c99 -E
checking for grep that handles long lines and -e... /opt/bw/bin/grep
checking for egrep... /opt/bw/bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... /usr/ccs/bin/ar
checking for ranlib... ranlib
checking whether to use C++... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
configure: autobuild project... GNU M4
configure: autobuild revision... 1.4.19
configure: autobuild hostname... beta
configure: autobuild timestamp... 20210915T070727Z
checking for unsigned long long int... yes
checking for long long int... yes
checking for unsigned long long int... (cached) yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for inline... inline
checking whether <wchar.h> uses 'inline' correctly... yes
checking for btowc... yes
checking for canonicalize_file_name... no
checking for faccessat... no
checking for realpath... yes
checking for lstat... yes
checking for _set_invalid_parameter_handler... no
checking for fchdir... yes
checking for fcntl... yes
checking for symlink... yes
checking for fdopendir... yes
checking for mempcpy... no
checking for fpurge... no
checking for __fpurge... yes
checking for __freadahead... no
checking for __freading... yes
checking for fstatat... yes
checking for getdtablesize... yes
checking for getprogname... no
checking for getexecname... yes
checking for getrandom... no
checking for iswcntrl... yes
checking for iswblank... yes
checking for uselocale... no
checking for newlocale... no
checking for duplocale... no
checking for freelocale... no
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mbslen... no
checking for mprotect... yes
checking for mkstemp... yes
checking for nl_langinfo... yes
checking for openat... yes
checking for pipe... yes
checking for pipe2... no
checking for posix_spawn_file_actions_addchdir_np... no
checking for posix_spawn_file_actions_addchdir... no
checking for readlink... yes
checking for isblank... yes
checking for iswctype... yes
checking for link... yes
checking for secure_getenv... no
checking for getuid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getegid... yes
checking for sigaction... yes
checking for sigaltstack... yes
checking for siginterrupt... yes
checking for setrlimit... yes
checking for getrlimit... yes
checking for snprintf... yes
checking for strerror_r... yes
checking for __xpg_strerror_r... no
checking for strndup... no
checking for vasnprintf... no
checking for wcrtomb... yes
checking for wcwidth... yes
checking for explicit_bzero... no
checking for memset_s... no
checking for ftruncate... yes
checking for gettimeofday... yes
checking for pthread_sigmask... yes
checking for setenv... yes
checking for sleep... yes
checking for catgets... yes
checking for shutdown... no
checking for mquery... no
checking for pstat_getprocvm... no
checking for wctob... yes
checking for nl_langinfo and CODESET... yes
checking for a traditional french locale... fr_FR
checking whether malloc is ptrdiff_t safe... yes
checking whether malloc, realloc, calloc set errno on failure... no
checking whether lstat correctly handles trailing slash... yes
checking whether // is distinct from /... no
checking whether realpath works... no
checking for getcwd... yes
checking whether the preprocessor supports include_next... no
checking whether source code line length is unlimited... yes
checking absolute name of <dirent.h>... "///usr/include/dirent.h"
checking for /opt/developerstudio12.6/bin/c99 options needed to detect
all undeclared functions... none needed
checking if environ is properly declared... no
checking for complete errno.h... yes
checking whether strerror_r is declared... yes
checking whether strerror_r returns char *... no
checking for mode_t... yes
checking for sig_atomic_t... yes
checking whether fchdir is declared... yes
checking for working fcntl.h... no (bad O_NOATIME)
checking for pid_t... yes
checking absolute name of <fcntl.h>... "///usr/include/fcntl.h"
checking for eaccess... no
checking whether frexp() can be used without linking with libm... yes
checking whether alarm is declared... yes
checking whether long double and double are the same... no
checking whether stdin defaults to large file offsets... yes
checking absolute name of <sys/types.h>... "///usr/include/sys/types.h"
checking whether fseeko is declared... yes
checking for fseeko... yes
checking whether fflush works on input streams... yes
checking whether stat file-mode macros are broken... no
checking for C/C++ restrict keyword... __restrict__
checking absolute name of <sys/stat.h>... "///usr/include/sys/stat.h"
checking for nlink_t... yes
checking whether ftello is declared... yes
checking whether ungetc works on arbitrary bytes... yes
checking for ftello... yes
checking whether ftello works... yes
checking whether getcwd (NULL, 0) allocates memory for result... no
checking for getcwd with POSIX signature... yes
checking whether getcwd is declared... yes
checking whether getdtablesize is declared... yes
checking absolute name of <getopt.h>... "///usr/include/getopt.h"
checking for getopt.h... (cached) yes
checking for getopt_long_only... yes
checking whether getopt is POSIX compatible... yes
checking for working GNU getopt function... no
checking for pthread.h... (cached) yes
checking for pthread_kill in -lpthread... yes
checking whether POSIX threads API is available... yes
checking for sched_yield in -lrt... yes
checking whether setlocale (LC_ALL, NULL) is multithread-safe... yes
checking whether setlocale (category, NULL) is multithread-safe... yes
checking host CPU and C ABI... sparc64
checking for ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for ELF binary format... no
checking for the common suffixes of directories in the library search
path... lib,lib/64,lib/sparcv9
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... /opt/bw/lib/libiconv.so -R/opt/bw/lib
checking whether iconv is compatible with its POSIX signature... no
checking absolute name of <iconv.h>... "///opt/bw/include/iconv.h"
checking absolute name of <limits.h>... "///usr/include/limits.h"
checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... no
checking for wint_t... yes
checking whether wint_t is large enough... yes
checking whether the compiler produces multi-arch binaries... no
checking absolute name of <stdint.h>... "///usr/include/stdint.h"
checking whether stdint.h conforms to C99... no
checking for sys/inttypes.h... yes
checking for sys/bitypes.h... no
checking for bit size of ptrdiff_t... 64
checking for bit size of size_t... 64
checking for bit size of sig_atomic_t... 32
checking for bit size of wchar_t... 32
checking for bit size of wint_t... 32
checking whether sig_atomic_t is signed... yes
checking whether wchar_t is signed... yes
checking whether wint_t is signed... yes
checking for ptrdiff_t integer literal suffix... l
checking for size_t integer literal suffix... ul
checking for sig_atomic_t integer literal suffix...
checking for wchar_t integer literal suffix...
checking for wint_t integer literal suffix...
checking absolute name of <inttypes.h>... "///usr/include/inttypes.h"
checking where to find the exponent in a 'double'... word 0 bit 20
checking where to find the exponent in a 'float'... word 0 bit 23
checking whether byte ordering is bigendian... yes
checking absolute name of <wctype.h>... "///usr/include/wctype.h"
checking whether iswcntrl works... yes
checking for towlower... yes
checking for wctype_t... yes
checking for wctrans_t... yes
checking for a traditional japanese locale... ja_JP.eucJP
checking for a french Unicode locale... fr_FR.UTF-8
checking for a transitional chinese locale... zh_CN.GB18030
checking absolute name of <langinfo.h>... "///usr/include/langinfo.h"
checking whether langinfo.h defines CODESET... yes
checking whether langinfo.h defines T_FMT_AMPM... yes
checking whether langinfo.h defines ALTMON_1... no
checking whether langinfo.h defines ERA... yes
checking whether langinfo.h defines YESEXPR... yes
checking for wchar_t... yes
checking for good max_align_t... no
checking whether NULL can be used in arbitrary expressions... yes
checking absolute name of <stddef.h>... "///usr/include/stddef.h"
checking whether locale.h defines locale_t... no
checking whether locale.h conforms to POSIX:2001... yes
checking whether struct lconv is properly defined... yes
checking absolute name of <locale.h>... "///usr/include/locale.h"
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyPreferredLanguages... no
checking whether imported symbols can be declared weak... yes
checking for multithread API to use... posix
checking for a sed that does not truncate output... /opt/bw/bin/sed
checking whether malloc (0) returns nonnull... yes
checking absolute name of <math.h>... "///usr/include/math.h"
checking whether NAN macro works... yes
checking whether HUGE_VAL works... yes
checking for mbstate_t... yes
checking for mmap... yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking whether memrchr is declared... no
checking whether <limits.h> defines MIN and MAX... no
checking whether <sys/param.h> defines MIN and MAX... no
checking for O_CLOEXEC... no
checking for promoted mode_t type... mode_t
checking for library containing posix_spawn... none required
checking for posix_spawn... yes
checking whether posix_spawn is declared... yes
checking for sigset_t... yes
checking for SIGPIPE... yes
checking for sched.h... yes
checking absolute name of <sched.h>... "///usr/include/sched.h"
checking for struct sched_param... yes
checking for uid_t in sys/types.h... yes
checking absolute name of <signal.h>... "///usr/include/signal.h"
checking for volatile sig_atomic_t... yes
checking for sighandler_t... no
checking whether C symbols are prefixed with underscore at the linker
level... no
checking whether snprintf returns a byte count as in C99... yes
checking whether snprintf is declared... yes
checking absolute name of <spawn.h>... "///usr/include/spawn.h"
checking for posix_spawnattr_t... yes
checking for posix_spawn_file_actions_t... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking whether fcloseall is declared... no
checking absolute name of <stdio.h>... "///usr/include/stdio.h"
checking which flavor of printf attribute matches inttypes macros... system
checking whether ecvt is declared... yes
checking whether fcvt is declared... yes
checking whether gcvt is declared... yes
checking absolute name of <stdlib.h>... "///usr/include/stdlib.h"
checking whether strdup is declared... yes
checking whether strerror(0) succeeds... yes
checking for strerror_r with POSIX signature... yes
checking whether strerror_r works... no
checking absolute name of <string.h>... "///usr/include/string.h"
checking whether strndup is declared... no
checking whether strnlen is declared... no
checking whether strsignal is declared... yes
checking whether strstr works... yes
checking whether ldexp() can be used without linking with libm... yes
checking absolute name of <sys/random.h>... "///usr/include/sys/random.h"
checking absolute name of <sys/wait.h>... "///usr/include/sys/wait.h"
checking for struct timespec in <time.h>... yes
checking absolute name of <time.h>... "///usr/include/time.h"
checking for TIME_UTC in <time.h>... no
checking whether execvpe is declared... no
checking absolute name of <unistd.h>... "///usr/include/unistd.h"
checking whether clearerr_unlocked is declared... no
checking whether feof_unlocked is declared... no
checking whether ferror_unlocked is declared... no
checking whether fflush_unlocked is declared... no
checking whether fgets_unlocked is declared... no
checking whether fputc_unlocked is declared... no
checking whether fputs_unlocked is declared... no
checking whether fread_unlocked is declared... no
checking whether fwrite_unlocked is declared... no
checking whether getc_unlocked is declared... yes
checking whether getchar_unlocked is declared... yes
checking whether putc_unlocked is declared... yes
checking whether putchar_unlocked is declared... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking whether snprintf truncates the result as in C99... yes
checking for snprintf... (cached) yes
checking for strnlen... no
checking for wcslen... yes
checking for wcsnlen... no
checking for mbrtowc... (cached) yes
checking for wcrtomb... (cached) yes
checking whether _snprintf is declared... no
checking whether printf supports size specifiers as in C99... yes
checking whether printf supports 'long double' arguments... yes
checking whether printf supports infinite 'double' arguments... yes
checking whether printf supports infinite 'long double' arguments... yes
checking whether printf supports the 'a' and 'A' directives... no
checking whether printf supports the 'F' directive... yes
checking whether printf supports the 'n' directive... yes
checking whether printf supports the 'ls' directive... no
checking whether printf supports the grouping flag... yes
checking whether printf supports the left-adjust flag correctly... yes
checking whether printf supports the zero flag correctly... yes
checking whether printf supports large precisions... yes
checking whether printf survives out-of-memory conditions... yes
checking absolute name of <wchar.h>... "///usr/include/wchar.h"
checking whether wcsdup is declared... no
checking whether <sys/socket.h> is self-contained... yes
checking for shutdown... (cached) no
checking absolute name of <sys/socket.h>... "///usr/include/sys/socket.h"
checking for struct sockaddr_storage... yes
checking for sa_family_t... yes
checking for struct sockaddr_storage.ss_family... yes
checking absolute name of <arpa/inet.h>... "///usr/include/arpa/inet.h"
checking for library needed for semaphore functions... -lrt
checking absolute name of <ctype.h>... "///usr/include/ctype.h"
checking absolute name of <sys/time.h>... "///usr/include/sys/time.h"
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking for IPv4 sockets... yes
checking for IPv6 sockets... yes
checking for off_t... yes
checking whether INT32_MAX < INTMAX_MAX... yes
checking whether INT64_MAX == LONG_MAX... yes
checking whether UINT32_MAX < UINTMAX_MAX... yes
checking whether UINT64_MAX == ULONG_MAX... yes
checking whether <sys/select.h> is self-contained... no
checking absolute name of <sys/select.h>... "///usr/include/sys/select.h"
checking for library containing setsockopt... -lsocket
checking whether select supports a 0 argument... yes
checking whether select detects invalid fds... yes
checking absolute name of <pthread.h>... "///usr/include/pthread.h"
checking for pthread_t... yes
checking for pthread_spinlock_t... yes
checking for PTHREAD_CREATE_DETACHED... yes
checking for PTHREAD_MUTEX_RECURSIVE... yes
checking for PTHREAD_MUTEX_ROBUST... no
checking for PTHREAD_PROCESS_SHARED... yes
checking whether setenv is declared... yes
checking for search.h... yes
checking for tsearch... yes
checking whether <sys/ioctl.h> declares ioctl... no
checking absolute name of <sys/ioctl.h>... "///usr/include/sys/ioctl.h"
checking absolute name of <sys/uio.h>... "///usr/include/sys/uio.h"
checking whether unsetenv is declared... yes
checking for alloca as a compiler built-in... no
checking whether to enable assertions... yes
checking whether btowc(0) is correct... yes
checking whether btowc(EOF) is correct... yes
checking for __builtin_expect... yes
checking whether this system supports file names of any length... no
checking for library containing clock_gettime... -lrt
checking for clock_gettime... yes
checking for clock_settime... yes
checking for closedir... yes
checking for d_ino member in directory struct... yes
checking for dirfd... no
checking whether dirfd is declared... no
checking whether dirfd is a macro... no
checking how to get the file descriptor associated with an open DIR*... d_fd
checking whether // is distinct from /... (cached) no
checking whether dup works... yes
checking whether dup2 works... yes
checking for error_at_line... no
checking whether fflush works on input streams... (cached) yes
checking whether fclose works on input streams... yes
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... no
checking whether fdopendir is declared... yes
checking whether fdopendir works... yes
checking whether fflush works on input streams... (cached) yes
checking for flexible array member... yes
checking whether conversion from 'int' to 'long double' works... yes
checking whether fopen recognizes a trailing slash... yes
checking whether fopen supports the mode character 'x'... no
checking whether fopen supports the mode character 'e'... no
checking for __fpending... yes
checking whether __fpending is declared... yes
checking whether fpurge is declared... no
checking whether free is known to preserve errno... yes
checking whether frexp works... yes
checking whether frexpl is declared... yes
checking whether frexpl() can be used without linking with libm... no
checking for fseeko... (cached) yes
checking whether fflush works on input streams... (cached) yes
checking whether fstatat (..., 0) works... yes
checking for ftello... (cached) yes
checking whether ftello works... (cached) yes
checking whether getcwd handles long file names properly... yes
checking whether getdtablesize works... yes
checking for getpagesize... yes
checking whether getpagesize is declared... yes
checking whether program_invocation_name is declared... no
checking whether program_invocation_short_name is declared... no
checking whether __argv is declared... no
checking whether __progname is defined in default libraries...
checking whether the compiler generally respects inline... yes
checking whether isnan(double) can be used without linking with libm... yes
checking whether isnan(float) can be used without linking with libm... yes
checking whether isnan(float) works... yes
checking whether isnan(long double) can be used without linking with
libm... yes
checking whether isnanl works... yes
checking whether iswblank is declared... yes
checking whether iswdigit is ISO C compliant... no
checking whether iswxdigit is ISO C compliant... no
checking whether the compiler supports the __inline keyword... yes
checking for pthread_rwlock_t... yes
checking whether pthread_rwlock_rdlock prefers a writer to a reader... yes
checking whether lseek detects pipes... yes
checking whether mbrtowc handles incomplete characters... yes
checking whether mbrtowc works as well as mbtowc... yes
checking whether mbrtowc handles a NULL pwc argument... yes
checking whether mbrtowc handles a NULL string argument... yes
checking whether mbrtowc has a correct return value... no
checking whether mbrtowc returns 0 when parsing a NUL character... yes
checking whether mbrtowc stores incomplete characters... no
checking whether mbrtowc works on empty input... yes
checking whether the C locale is free of encoding errors... yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) yes
checking for mbtowc... yes
checking for mempcpy... (cached) no
checking for memrchr... no
checking whether mkdir handles trailing slash... yes
checking whether mkdir handles trailing dot... yes
checking for mkdtemp... yes
checking for working mkstemp... yes
checking whether YESEXPR works... yes
checking for obstacks that work with any size object... no
checking whether open recognizes a trailing slash... yes
checking for opendir... yes
checking for paths.h... no
checking for confstr... yes
checking for sched_setparam... no
checking for sched_setscheduler... no
checking for setegid... yes
checking for seteuid... yes
checking for vfork... yes
checking whether frexp works... (cached) yes
checking whether ldexp can be used without linking with libm... (cached) yes
checking whether frexpl() can be used without linking with libm...
(cached) no
checking whether ldexpl() can be used without linking with libm... no
checking whether program_invocation_name is declared... (cached) no
checking whether program_invocation_short_name is declared... (cached) no
checking for raise... yes
checking for sigprocmask... yes
checking for rawmemchr... no
checking for readdir... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking whether readlink truncates results correctly... yes
checking for reallocarray... no
checking for working re_compile_pattern... no
checking for libintl.h... yes
checking whether isblank is declared... yes
checking whether rename honors trailing slash on destination... no
checking whether rename honors trailing slash on source... yes
checking whether rename manages hard links correctly... yes
checking whether rename manages existing destinations correctly... yes
checking for rewinddir... yes
checking whether rmdir works... yes
checking for __secure_getenv... no
checking for issetugid... yes
checking whether setlocale supports the C locale... yes
checking whether setlocale (LC_ALL, NULL) is multithread-safe...
(cached) yes
checking whether setlocale (category, NULL) is multithread-safe...
(cached) yes
checking for struct sigaction.sa_sigaction... yes
checking for signbit macro... yes
checking for signbit compiler built-ins... no
checking where to find the sign bit in a 'float'... word 0 bit 31
checking where to find the sign bit in a 'double'... word 0 bit 31
checking where to find the sign bit in a 'long double'... word 0 bit 31
checking for sigprocmask... (cached) yes
checking for stack direction... grows down
checking for stack_t... yes
checking for working sigaltstack... yes
checking for correct stack_t interpretation... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking for snprintf... (cached) yes
checking whether snprintf respects a size of 1... yes
checking whether printf supports POSIX/XSI format strings with
positions... yes
checking for ssize_t... yes
checking whether stat handles trailing slashes on files... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... no
checking for working stdalign.h... no
checking for va_copy... yes
checking for stpcpy... no
checking for strchrnul... no
checking for working strerror function... yes
checking for strsignal... yes
checking whether strsignal always returns a string... no
checking whether sys_siglist is declared... no
checking whether _sys_siglist is declared... yes
checking whether strstr works in linear time... no
checking whether strstr works... (cached) yes
checking whether strtod obeys C99... yes
checking for sys/single_threaded.h... no
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking for vasprintf... (cached) yes
checking for nl_langinfo... (cached) yes
checking for ptrdiff_t... (cached) yes
checking for waitid... yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) yes
checking whether wcrtomb works in the C locale... yes
checking whether wcrtomb return value is correct... no
checking whether wcwidth is declared... yes
checking whether wcwidth works reasonably in UTF-8 locales... no
checking for stdint.h... (cached) yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional french locale... (cached) fr_FR
checking for a turkish Unicode locale... none
checking whether open recognizes a trailing slash... (cached) yes
checking for close_range... no
checking for explicit_memset... no
checking whether fdopen sets errno... yes
checking whether freopen works on closed fds... yes
checking for gettimeofday with POSIX signature... yes
checking for library containing inet_pton... -lnsl
checking whether inet_pton is declared... yes
checking whether byte ordering is bigendian... (cached) yes
checking for ioctl... yes
checking for ioctl with POSIX signature... yes
checking where to find the exponent in a 'double'... (cached) word 0 bit 20
checking where to find the exponent in a 'float'... (cached) word 0 bit 23
checking where to find the exponent in a 'long double'... word 0 bit 16
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP.eucJP
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP.eucJP
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking whether link obeys POSIX... no
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP.eucJP
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking for library containing nanosleep... -lrt
checking for working nanosleep... no (mishandles large arguments)
checking whether <netinet/in.h> is self-contained... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking whether pthread_create exists as a global function... yes
checking whether pthread_sigmask is a macro... no
checking whether pthread_sigmask works without -lpthread... yes
checking whether pthread_sigmask returns error numbers... yes
checking whether pthread_sigmask unblocks signals correctly... guessing yes
checking for putenv compatible with GNU and SVID... no
checking whether _putenv is declared... no
checking whether sched_yield is declared... yes
checking whether select supports a 0 argument... (cached) yes
checking whether select detects invalid fds... (cached) yes
checking whether setenv validates arguments... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP.eucJP
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking whether sleep is declared... yes
checking for working sleep... yes
checking for socklen_t... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking whether symlink handles trailing slash correctly... yes
checking for pthread_atfork... yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... no
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP.eucJP
checking for a transitional chinese locale... (cached) zh_CN.GB18030
checking whether wctob works... yes
checking whether wctob is declared... yes
checking whether an open file can be renamed... yes
checking if changeword is wanted... no
checking which shell to use for syscmd... /usr/xpg4/bin/sh
checking if malloc debugging is wanted... no
checking whether NLS is requested... yes
checking for msgfmt... /opt/bw/bin/msgfmt
checking for gmsgfmt... /bin/gmsgfmt
checking for xgettext... /opt/bw/bin/xgettext
checking for msgmerge... /opt/bw/bin/msgmerge
checking for CFPreferencesCopyAppValue... (cached) no
checking for CFLocaleCopyPreferredLanguages... (cached) no
checking for GNU gettext in libc... no
checking for iconv... (cached) yes
checking for working iconv... (cached) yes
checking how to link with libiconv... /opt/bw/lib/libiconv.so -R/opt/bw/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /opt/bw/lib/libintl.so
/opt/bw/lib/libiconv.so -R/opt/bw/lib
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating checks/Makefile
config.status: creating examples/Makefile
config.status: creating lib/config.h
config.status: executing depfiles commands
config.status: executing stamp-h commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

The compile *seems* to all be fine until :

.
.
.

/opt/developerstudio12.6/bin/c99    -I../lib -I../lib -I/opt/bw/include
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=600 -D_REENTRANT   -Xc
-errtags=yes -errwarn=%none -m64 -xarch=sparc -xO0 -g -xs -errfmt=error
-erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s
-xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none
-xbuiltin=%none -xunroll=1 -Qy -xdebugformat=dwarf -c -o path.o path.c
source='symtab.c' object='symtab.o' libtool=no \
DEPDIR=.deps depmode=dashXmstdout /opt/bw/bin/bash ../build-aux/depcomp \
/opt/developerstudio12.6/bin/c99    -I../lib -I../lib -I/opt/bw/include
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=600 -D_REENTRANT   -Xc
-errtags=yes -errwarn=%none -m64 -xarch=sparc -xO0 -g -xs -errfmt=error
-erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s
-xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none
-xbuiltin=%none -xunroll=1 -Qy -xdebugformat=dwarf -c -o symtab.o symtab.c
/opt/developerstudio12.6/bin/c99   -Xc -errtags=yes -errwarn=%none -m64
-xarch=sparc -xO0 -g -xs -errfmt=error -erroff=%none -errshort=full
-xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl
-xlibmieee -mc -ftrap=%none -xbuiltin=%none -xunroll=1 -Qy
-xdebugformat=dwarf  -m64 -R/opt/bw/lib -L/opt/bw/lib -o m4 m4.o
builtin.o debug.o eval.o format.o freeze.o input.o macro.o output.o
path.o symtab.o ../lib/libm4.a /opt/bw/lib/libiconv.so -R/opt/bw/lib
-lrt        /opt/bw/lib/libiconv.so -R/opt/bw/lib /opt/bw/lib/libintl.so
/opt/bw/lib/libiconv.so -R/opt/bw/lib
ld: warning: file /opt/bw/lib/libiconv.so: attempted multiple inclusion
of file
ld: warning: file /opt/bw/lib/libiconv.so: attempted multiple inclusion
of file
gmake[2]: Leaving directory
'/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004/src'
Making all in doc
gmake[2]: Entering directory
'/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004/doc'
Updating ./version.texi
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/opt/bw/bin/bash
'/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004/build-aux/missing'
makeinfo --version) >/dev/null 2>&1; then \
  for f in m4.info m4.info-[0-9] m4.info-[0-9][0-9] m4.i[0-9]
m4.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
  done; \
else :; fi && \
cd "$am__cwd"; \
if /opt/bw/bin/bash
'/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004/build-aux/missing'
makeinfo   -I . \
 -o m4.info m4.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd . && \
  $restore $backupdir/* `echo "./m4.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
MiscXS.c: loadable library and perl binaries are mismatched (got
handshake key e180000, needed df80000)
gmake[2]: *** [Makefile:1979: m4.info] Error 1
gmake[2]: Leaving directory
'/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004/doc'
gmake[1]: *** [Makefile:2018: all-recursive] Error 1
gmake[1]: Leaving directory '/opt/bw/build/m4-1.4.19_sunos5.10_sparcv9.004'
gmake: *** [Makefile:1974: all] Error 2

I don't know what to make of that.

beta $
beta $ which perl
/opt/bw/bin/perl
beta $
beta $ /opt/bw/bin/perl -V
Summary of my perl5 (revision 5 version 34 subversion 0) configuration:

  Platform:
    osname=solaris
    osvers=2.10
    archname=sun4-solaris-64-ld
    uname='sunos beta 5.10 generic_150400-65 sun4u sparc
sunw,sparc-enterprise '
    config_args='-Dprefix=/opt/bw -Dmksymlinks
-Accflags=-std=iso9899:2011 -errtags=yes -errwarn=%none -m64
-xarch=sparc -xO0 -g -xs -errfmt=error -erroff=%none -errshort=full
-xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl
-xlibmieee -mc -ftrap=%none -xbuiltin=%none -xunroll=1 -Qy
-xdebugformat=dwarf -L/opt/bw/lib -I/opt/bw/include'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=define
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='/opt/developerstudio12.6/bin/cc'
    ccflags ='-std=iso9899:2011 -errtags=yes -errwarn=%none -m64
-xarch=sparc -xO0 -g -xs -errfmt=error -erroff=%none -errshort=full
-xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl
-xlibmieee -mc -ftrap=%none -xbuiltin=%none -xunroll=1 -Qy
-xdebugformat=dwarf -L/opt/bw/lib -I/opt/bw/include -m64
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV'
    optimize='-xO0 -g -m64 -xstrconst -xildoff -xmemalign=8s -xnolibmil
-xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none -xbuiltin=%none'
    cppflags='-std=iso9899:2011 -errtags=yes -errwarn=%none -m64
-xarch=sparc -xO0 -g -xs -errfmt=error -erroff=%none -errshort=full
-xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl
-xlibmieee -mc -ftrap=%none -xbuiltin=%none -xunroll=1 -Qy
-xdebugformat=dwarf -L/opt/bw/lib -I/opt/bw/include'
    ccversion='Studio 12.6 Sun C 5.15 SunOS_sparc 2017/05/30'
    gccversion=''
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=87654321
    doublekind=4
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=2
    ivtype='long'
    ivsize=8
    nvtype='long double'
    nvsize=16
    Off_t='off_t'
    lseeksize=8
    alignbytes=16
    prototype=define
  Linker and Libraries:
    ld='/opt/developerstudio12.6/bin/cc'
    ldflags ='-64 -L/opt/bw/lib -L/usr/lib -L/usr/ccs/lib
-L/opt/developerstudio12.6/lib/compilers/sparcv9 -L/lib/64 -m64 '
    libpth=/opt/bw/lib /usr/lib /usr/ccs/lib
/opt/developerstudio12.6/lib/compilers/sparcv9 /lib/64
    libs=-lpthread -lsocket -lnsl -ldl -lm -lc
    perllibs=-lpthread -lsocket -lnsl -ldl -lm -lc
    libc=/usr/lib/sparcv9/libc.so
    so=so
    useshrplib=true
    libperl=libperl.so
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='  -R /opt/bw/lib/perl5/5.34.0/sun4-solaris-64-ld/CORE'
    cccdlflags='-KPIC -m64 -xarch=sparc -xO0 -g -xs -xstrconst -xildoff
-xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee'
    lddlflags=' -G -m64 -L/opt/bw/lib -L/usr/lib -L/usr/ccs/lib
-L/opt/developerstudio12.6/lib/compilers/sparcv9 -L/lib/64'


Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_LONG_DOUBLE
    USE_PERLIO
    USE_PERL_ATOF
  Built under solaris
  Compiled at Aug  2 2021 20:07:38
  %ENV:
    PERL="/opt/bw/bin/perl"
  @INC:
    /opt/bw/lib/perl5/site_perl/5.34.0/sun4-solaris-64-ld
    /opt/bw/lib/perl5/site_perl/5.34.0
    /opt/bw/lib/perl5/5.34.0/sun4-solaris-64-ld
    /opt/bw/lib/perl5/5.34.0
beta $


Yes, this is somewhat confusing at this point.

I totally ignore the change to doc/m4.texi as suggested in :

    https://lists.gnu.org/archive/html/bug-m4/2021-06/msg00009.html

This then allows for a clean compile and a single failed test.

The 198.sysval:err test fails and that seems to be a "feature" at the
moment. The patch suggested by Paul Eggert looks good and m4 builds and
tests fine with the exception of that one annoyance.

-- 
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken
GreyBeard and suspenders optional





reply via email to

[Prev in Thread] Current Thread [Next in Thread]