From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-4.2 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2, SPF_HELO_PASS,SPF_PASS,URIBL_BLACK shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 2D8EB1F8C6 for ; Wed, 15 Sep 2021 07:34:19 +0000 (UTC) Received: from localhost ([::1]:41840 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mQPQv-0001Mu-Mf for normalperson@yhbt.net; Wed, 15 Sep 2021 03:34:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57086) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQPQe-0001Lc-MH; Wed, 15 Sep 2021 03:34:05 -0400 Received: from mail.oetec.com ([108.160.241.186]:53978) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQPQX-0003T2-O7; Wed, 15 Sep 2021 03:34:00 -0400 X-oetec-MailScanner-From: dclarke@blastwave.org X-oetec-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-5.068, required 6, autolearn=not spam, ALL_TRUSTED -1.00, BAYES_00 -1.90, DKIM_SIGNED 0.10, DKIM_VALID -0.10, DKIM_VALID_AU -0.10, DKIM_VALID_EF -0.10, NICE_REPLY_A -1.97, URIBL_BLOCKED 0.00) X-oetec-MailScanner: Found to be clean X-oetec-MailScanner-ID: 18F7XY99022705 X-oetec-MailScanner-Information: Please contact oetec for more information Received: from [172.16.35.2] (cpeac202e7325b3-cmac202e7325b0.cpe.net.cable.rogers.com [99.253.170.241]) (authenticated bits=0) by mail.oetec.com (8.15.2/8.15.2/Debian-8) with ESMTPSA id 18F7XY99022705 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Wed, 15 Sep 2021 03:33:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=blastwave.org; s=default; t=1631691216; bh=z1hrmP7XNHS9GdtK6K1KQo/B4A990VkxzLK3Tvut7Js=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=STSQfiDTsZpg2oTodK9gMI2McnxeQgiz9KcIEBg126z04L0ENl1fdQbYs17u9I9aU 8d1hQLzj2XS6OUgKg+zsFnes4k1lsHf/Qw+BnqQZTbPsQP/BKnOsYNHHP65pA/Ah7z xGNAPuJ3snPkV85bA1EEglDobGA91eP4H0nffcP4VYh1F2zKsJjQjjYUpoUiOAePbM 9K61ZAXEeA5jV4qCMhDZfHE5RWDRg+kD8jNROlr0n49VPcnjD1VNvpZrtIwLv8nrKq rWpTxIpZLvqO7WHhCDiGOSE8jq+moUA0GAbjdOmGNCfpLcNr39tknq3x9wfRusCK4v N//OuNFS5VbGQ== Message-ID: <030fe8dc-2435-2df4-6548-6b6b0f4d751c@blastwave.org> Date: Wed, 15 Sep 2021 03:33:34 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:92.0) Gecko/20100101 Thunderbird/92.0 Subject: Re: m4-1.4.19 not C99 clean ? Content-Language: en-US To: Eric Blake Cc: bug-m4@gnu.org, bug-gnulib@gnu.org, Paul Eggert , Bruno Haible References: <75cce312-97a0-3900-b7f1-83b55164a6e6@blastwave.org> <20210913141123.e5yyxkpz6s4fvfvm@redhat.com> From: Dennis Clarke In-Reply-To: <20210913141123.e5yyxkpz6s4fvfvm@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=108.160.241.186; envelope-from=dclarke@blastwave.org; helo=mail.oetec.com X-Spam_score_int: -63 X-Spam_score: -6.4 X-Spam_bar: ------ X-Spam_report: (-6.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-1.969, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" 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 #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 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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///opt/bw/include/iconv.h" checking absolute name of ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 defines MIN and MAX... no checking whether 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 ... "///usr/include/sched.h" checking for struct sched_param... yes checking for uid_t in sys/types.h... yes checking absolute name of ... "///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 ... "///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 ... "///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 ... "///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 ... "///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 ... "///usr/include/sys/random.h" checking absolute name of ... "///usr/include/sys/wait.h" checking for struct timespec in ... yes checking absolute name of ... "///usr/include/time.h" checking for TIME_UTC in ... no checking whether execvpe is declared... no checking absolute name of ... "///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 ... "///usr/include/wchar.h" checking whether wcsdup is declared... no checking whether is self-contained... yes checking for shutdown... (cached) no checking absolute name of ... "///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 ... "///usr/include/arpa/inet.h" checking for library needed for semaphore functions... -lrt checking absolute name of ... "///usr/include/ctype.h" checking absolute name of ... "///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 is self-contained... no checking absolute name of ... "///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 ... "///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 declares ioctl... no checking absolute name of ... "///usr/include/sys/ioctl.h" checking absolute name of ... "///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 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