bug-patch
[Top][All Lists]
Advanced

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

Re: bizarre failures on NetBSD 9.3 x86_64


From: Dennis Clarke
Subject: Re: bizarre failures on NetBSD 9.3 x86_64
Date: Tue, 9 May 2023 23:36:47 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 5/9/23 11:00, Bruno Haible wrote:
> Dennis Clarke wrote:
>> Seems to be a problem where a trivial Bourne shell for the user is not
>> good enough?
>
> What if you install GNU bash:
>
> # PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -m`/9.3/All
>    # export PKG_PATH
>    # pkg_add bash
>
> and then repeat the build attempt?
>

Bruno, thank you for the reply.

I was thinking that perhaps I fell onto a GNUism or bashism somewhere
and so yes, that is the very first thing I did :)

Same result.

Then I went looking around ...

I ssh into the server normally :

m$ echo $SHELL
/bin/sh

Then get bashed in the head

m$ which bash
/usr/pkg/bin/bash
m$ /usr/pkg/bin/bash --version
GNU bash, version 5.1.16(1)-release (x86_64--netbsd)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
m$
m$ /usr/pkg/bin/bash
bash-5.1$

OKay, let's extract a fresh tarball of patch-2.7.6

bash-5.1$
bash-5.1$ pwd
/opt/bw/build
bash-5.1$ ls /mnt/pluto/dclarke/src/patch*
/mnt/pluto/dclarke/src/patch-2.7.6.tar.gz
bash-5.1$
bash-5.1$ openssl dgst -sha256 -r /mnt/pluto/dclarke/src/patch-2.7.6.tar.gz
8cf86e00ad3aaa6d26aca30640e86b0e3e1f395ed99f189b06d4c9f74bc58a4e */mnt/pluto/dclarke/src/patch-2.7.6.tar.gz
bash-5.1$
bash-5.1$ gzip -dc /mnt/pluto/dclarke/src/patch-2.7.6.tar.gz | tar -xf -
bash-5.1$ mv patch-2.7.6 patch-2.7.6_NetBSD_9.3_AMD64.004
bash-5.1$ cd patch-2.7.6_NetBSD_9.3_AMD64.004
bash-5.1$

Take a look at this :

bash-5.1$ ls tests/test-lib.sh
tests/test-lib.sh
bash-5.1$
bash-5.1$ nl -b a -n rz tests/test-lib.sh | head -20
000001  # Library for simple test scripts
000002  # Copyright (C) 2009, 2011-2012 Free Software Foundation, Inc.
000003  #
000004 # Copying and distribution of this file, with or without modification, 000005 # in any medium, are permitted without royalty provided the copyright
000006  # notice and this notice are preserved.
000007
000008  # FIXME: Requires a version of diff that understands "-u".
000009
000010  require_gnu_diff() {
000011      case "`diff --version 2> /dev/null`" in
000012      *GNU*)
000013          ;;
000014      *)
000015          echo "This test requires GNU diff" >&2
000016          exit 77
000017      esac
000018  }
000019
000020  require() {
bash-5.1$

There on line 8 it seems to say we need the GNU diff?

So that means diffutils or whatever it is called. Maybe ?

Regardless the diff that we get in NetBSD 9.3 seems just fine :

bash-5.1$
bash-5.1$ which diff
/usr/bin/diff
bash-5.1$
bash-5.1$ /usr/bin/printf "Here is line 1\nhere is line 2\nhere is another line\n" > /var/tmp/dclarke/foo bash-5.1$ /usr/bin/printf "Here is line 1\nhere is line 2\nhere is a last line\n" > /var/tmp/dclarke/bar
bash-5.1$ diff -u /var/tmp/dclarke/foo /var/tmp/dclarke/bar
--- /var/tmp/dclarke/foo        2023-05-10 02:36:33.650699736 +0000
+++ /var/tmp/dclarke/bar        2023-05-10 02:36:49.654477281 +0000
@@ -1,3 +1,3 @@
 Here is line 1
 here is line 2
-here is another line
+here is a last line

Seems that "-u" works just fine to me.


Fine .. so setup a few env vars for a compile or at least a configure ?

bash-5.1$ env | sort | grep -v 'SSH'

CC=/opt/bw/gcc12/bin/gcc
CFLAGS=-Wl,-rpath=/opt/bw/lib,--enable-new-dtags -m64 -g -O0 -fno-fast-math -fno-builtin -malign-double -march=k8 -mtune =k8 -mieee-fp -mhard-float -mno-fancy-math-387 -m128bit-long-double -mlong-double-80 -mstackrealign -mpreferred-stack-bo
undary=8
COLUMNS=120
CPPFLAGS=-D_LARGEFILE64_SOURCE
CXX=/opt/bw/gcc12/bin/g++
CXXFLAGS=-g -m64 -O0 -L/opt/bw/lib -Wl,-rpath=/opt/bw/lib,--enable-new-dtags
DISPLAY=localhost:10.0
EDITOR=/usr/bin/vi
ENV=/home/dclarke/.shrc
HOME=/home/dclarke
LC_COLLATE=C
LC_CTYPE=C
LC_MESSAGES=C
LC_MONETARY=C
LC_NUMERIC=C
LC_TIME=C
LD_RUN_PATH=/opt/bw/lib
LINES=43
LOGNAME=dclarke
MAIL=/var/mail/dclarke
MAKE=/usr/pkg/bin/gmake
NICE=/usr/bin/nice
OLDPWD=/opt/bw/build
PAGER=/usr/bin/more
PATH=/opt/bw/bin:/opt/bw/gcc12/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/pkg/
bin:/usr/pkg/sbin
PWD=/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004
SHELL=/bin/sh
SHLVL=0
TERM=xterm
TIME=/usr/bin/time
TMPDIR=/var/tmp/dclarke
TMUX=/var/tmp/dclarke/tmux/default,29620,0
TMUX_PANE=%0
TZ=GMT0
USER=dclarke
VISUAL=/usr/bin/vi
XTERM_LOCALE=C
_=/usr/bin/env

I am looking at this inside a tmux session but I hardly doubt that means
anything.

Those CFLAGS are in place for the most minimal and "debuggable" result.
Is that even a word? Seem reasonable at the moment.

OKay so here in the configure stage of life I will watch closely for
"Thou Art in Sin and shall be cast into HELLFIRE" warnings. However I
just do not see why *everything* falls over and fails in flames and
smoke and ash.

Let's see :

bash-5.1$ [547/1866]
bash-5.1$ pwd
/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004
bash-5.1$ date -u
Wed May 10 03:02:46 UTC 2023
bash-5.1$ ./configure --prefix=/opt/bw --program-prefix=g --disable-silent-rules --enable-dependency-tracking
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether /usr/pkg/bin/gmake sets $(MAKE)... yes
checking whether /usr/pkg/bin/gmake supports nested variables... yes
checking whether /usr/pkg/bin/gmake supports nested variables... (cached) yes
checking for gcc... /opt/bw/gcc12/bin/gcc
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 we are using the GNU C compiler... yes
checking whether /opt/bw/gcc12/bin/gcc accepts -g... yes
checking for /opt/bw/gcc12/bin/gcc option to accept ISO C89... none needed
checking whether /opt/bw/gcc12/bin/gcc understands -c and -o together... yes
checking for style of include used by /usr/pkg/bin/gmake... GNU
checking dependency style of /opt/bw/gcc12/bin/gcc... gcc3
checking for /opt/bw/gcc12/bin/gcc option to accept ISO C99... none needed
checking for /opt/bw/gcc12/bin/gcc option to accept ISO Standard C... (cached) none needed
checking how to run the C preprocessor... /opt/bw/gcc12/bin/gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking the archiver (ar) interface... ar
checking for ar... (cached) ar
checking for ranlib... ranlib
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for ANSI C header files... (cached) yes
checking for size_t... yes
checking for working alloca.h... no
checking for alloca... yes
checking build system type... x86_64-unknown-netbsd9.3
checking host system type... x86_64-unknown-netbsd9.3
checking for d_ino member in directory struct... yes
checking for long file names... yes
checking for pathconf... yes
checking for canonicalize_file_name... no
checking for getcwd... yes
checking for readlink... yes
checking for realpath... yes
checking for chown... yes
checking for fchown... yes
checking for _set_invalid_parameter_handler... no
checking for fchdir... yes
checking for fdopendir... yes
checking for faccessat... yes
checking for fchmodat... yes
checking for lchmod... yes
checking for fcntl... yes
checking for symlink... yes
checking for mempcpy... no
checking for fstatat... yes
checking for getdtablesize... yes
checking for getprogname... yes
checking for getexecname... no
checking for gettimeofday... yes
checking for nanotime... no
checking for lstat... yes
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mprotect... yes
checking for mkdirat... yes
checking for tzset... yes
checking for openat... yes
checking for readlinkat... yes
checking for link... yes
checking for renameat... yes
checking for setenv... yes
checking for strdup... yes
checking for strndup... yes
checking for symlinkat... yes
checking for localtime_r... yes
checking for timegm... yes
checking for pipe... yes
checking for unlinkat... yes
checking for utime... yes
checking for futimes... yes
checking for futimesat... no
checking for futimens... yes
checking for utimensat... yes
checking for lutimes... yes
checking for vasnprintf... no
checking for snprintf... yes
checking for iswcntrl... yes
checking whether // is distinct from /... no
checking whether realpath works... yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking for sys/socket.h... yes
checking for dirent.h... yes
checking for sys/stat.h... (cached) yes
checking for getopt.h... yes
checking for sys/cdefs.h... yes
checking for sys/time.h... yes
checking for limits.h... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for sys/mman.h... yes
checking for utime.h... yes
checking for features.h... no
checking for crtdefs.h... no
checking for wctype.h... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether chown dereferences symlinks... yes
checking whether chown honors trailing slash... yes
checking whether chown always updates ctime... yes
checking whether the preprocessor supports include_next... yes
checking whether system header files limit the line length... no
checking if environ is properly declared... no
checking for complete errno.h... no
checking for EMULTIHOP value... yes
checking for ENOLINK value... yes
checking for EOVERFLOW value... yes
checking whether strerror_r is declared... yes
checking for strerror_r... yes
checking whether strerror_r returns char *... no
checking type of array argument to getgroups... gid_t
checking whether lstat correctly handles trailing slash... yes
checking whether fchdir is declared... yes
checking for working fcntl.h... no (bad O_NOATIME)
checking for pid_t... yes
checking for mode_t... yes
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking whether fchmodat is declared without a macro... yes
checking whether fstat is declared without a macro... yes
checking whether fstatat is declared without a macro... yes
checking whether futimens is declared without a macro... yes
checking whether lchmod is declared without a macro... yes
checking whether lstat is declared without a macro... yes
checking whether mkdirat is declared without a macro... yes
checking whether mkfifo is declared without a macro... yes
checking whether mkfifoat is declared without a macro... yes
checking whether mknod is declared without a macro... yes
checking whether mknodat is declared without a macro... yes
checking whether stat is declared without a macro... yes
checking whether utimensat is declared without a macro... yes
checking whether getcwd (NULL, 0) allocates memory for result... yes
checking for getcwd with POSIX signature... yes
checking whether getdtablesize is declared... yes
checking for getopt.h... (cached) yes
checking for getopt_long_only... no
checking for C/C++ restrict keyword... __restrict
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking whether gettimeofday is declared without a macro... yes
checking whether limits.h has ULLONG_WIDTH etc.... yes
checking for wint_t... yes
checking whether wint_t is too small... no
checking for unsigned long long int... yes
checking for long long int... yes
checking whether stdint.h conforms to C99... yes
checking whether stdint.h predates C++11... no
checking whether stdint.h has UINTMAX_WIDTH etc.... no
checking whether imaxabs is declared without a macro... yes
checking whether imaxdiv is declared without a macro... yes
checking whether strtoimax is declared without a macro... yes
checking whether strtoumax is declared without a macro... yes
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking for nl_langinfo and CODESET... yes
checking whether getc_unlocked is declared... yes
checking whether we are using the GNU C Library >= 2.1 or uClibc... no
checking for a sed that does not truncate output... /usr/pkg/bin/gsed
checking whether malloc, realloc, calloc are POSIX compliant... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for mbstate_t... yes
checking for a traditional japanese locale... ja_JP.eucJP
checking for a transitional chinese locale... zh_CN.GB18030
checking for a french Unicode locale... fr_FR.UTF-8
checking for mmap... yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking whether memrchr is declared... yes
checking whether <limits.h> defines MIN and MAX... no
checking whether <sys/param.h> defines MIN and MAX... yes
checking whether time_t is signed... yes
checking whether alarm is declared... yes
checking for working mktime... no
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct tm.tm_gmtoff... yes
checking for O_CLOEXEC... yes
checking for promoted mode_t type... mode_t
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for compound literals... yes
checking for ssize_t... yes
checking whether setenv is declared... yes
checking search.h usability... yes
checking search.h presence... yes
checking for search.h... yes
checking for tsearch... yes
checking for sigset_t... yes
checking for wchar_t... yes
checking whether strdup is declared... yes
checking whether strerror(0) succeeds... no
checking whether ffsl is declared without a macro... no
checking whether ffsll is declared without a macro... no
checking whether memmem is declared without a macro... yes
checking whether mempcpy is declared without a macro... no
checking whether memrchr is declared without a macro... yes
checking whether rawmemchr is declared without a macro... no
checking whether stpcpy is declared without a macro... yes
checking whether stpncpy is declared without a macro... yes
checking whether strchrnul is declared without a macro... yes
checking whether strdup is declared without a macro... yes
checking whether strncat is declared without a macro... yes
checking whether strndup is declared without a macro... yes
checking whether strnlen is declared without a macro... yes
checking whether strpbrk is declared without a macro... yes
checking whether strsep is declared without a macro... yes
checking whether strcasestr is declared without a macro... yes
checking whether strtok_r is declared without a macro... yes
checking whether strerror_r is declared without a macro... yes
checking whether strsignal is declared without a macro... yes
checking whether strverscmp is declared without a macro... no
checking whether strndup is declared... (cached) yes
checking whether strnlen is declared... (cached) yes
checking for struct timespec in <time.h>... yes
checking whether unsetenv is declared... yes
checking whether the utimes function works... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking where to find the exponent in a 'double'... word 1 bit 20
checking whether snprintf returns a byte count as in C99... yes
checking for snprintf... (cached) yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... (cached) yes
checking for wcrtomb... yes
checking whether _snprintf is declared... no
checking whether <wchar.h> uses 'inline' correctly... yes
checking whether this system has an arbitrary file name length limit... yes
checking for library containing clock_gettime... none required
checking for clock_gettime... yes
checking for clock_settime... yes
checking for closedir... yes
checking for d_ino member in directory struct... (cached) yes
checking whether alphasort is declared without a macro... yes
checking whether closedir is declared without a macro... yes
checking whether dirfd is declared without a macro... no
checking whether fdopendir is declared without a macro... yes
checking whether opendir is declared without a macro... yes
checking whether readdir is declared without a macro... yes
checking whether rewinddir is declared without a macro... yes
checking whether scandir is declared without a macro... yes
checking for dirfd... no
checking whether dirfd is declared... yes
checking whether dirfd is a macro... yes
checking whether // is distinct from /... (cached) no
checking whether dup2 works... yes
checking for error_at_line... no
checking for euidaccess... no
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking for getgroups... yes
checking for working getgroups... yes
checking for library containing eaccess... no
checking for eaccess... no
checking for fchownat... yes
checking whether fchownat works with AT_SYMLINK_NOFOLLOW... yes
checking whether fchownat works with an empty file name... yes
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... yes
checking whether fcntl is declared without a macro... yes
checking whether openat is declared without a macro... yes
checking for flexible array member... yes
checking whether conversion from 'int' to 'long double' works... yes
checking whether fstatat (..., 0) works... yes
checking whether getdtablesize works... yes
checking for getgroups... (cached) yes
checking for working getgroups... (cached) yes
checking whether getgroups handles negative values... 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... yes
checking whether gettimeofday clobbers localtime buffer... no
checking for gettimeofday with POSIX signature... yes
checking for group_member... no
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 for lchown... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... (cached) 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... yes
checking whether mbrtowc returns 0 when parsing a NUL character... yes
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 mempcpy... (cached) no
checking for memrchr... yes
checking whether mkdir handles trailing slash... yes
checking whether mkdir handles trailing dot... yes
checking for __mktime_internal... no
checking whether open recognizes a trailing slash... yes
checking for opendir... yes
checking for struct tm.tm_zone... (cached) yes
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 readdir... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking whether readlinkat signature is correct... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking whether rename honors trailing slash on destination... yes
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 linux/fs.h usability... no
checking linux/fs.h presence... no
checking for linux/fs.h... no
checking for linux/fs.h... (cached) no
checking whether rmdir works... yes
checking whether setenv validates arguments... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... no
checking whether pthread_sigmask is declared without a macro... yes
checking whether sigaction is declared without a macro... yes
checking whether sigaddset is declared without a macro... yes
checking whether sigdelset is declared without a macro... yes
checking whether sigemptyset is declared without a macro... yes
checking whether sigfillset is declared without a macro... yes
checking whether sigismember is declared without a macro... yes
checking whether sigpending is declared without a macro... yes
checking whether sigprocmask is declared without a macro... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking for ssize_t... (cached) 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... yes
checking for va_copy... yes
checking for max_align_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking which flavor of printf attribute matches inttypes macros... system
checking whether dprintf is declared without a macro... yes
checking whether fpurge is declared without a macro... yes
checking whether fseeko is declared without a macro... yes
checking whether ftello is declared without a macro... yes
checking whether getdelim is declared without a macro... yes
checking whether getline is declared without a macro... yes
checking whether gets is declared without a macro... yes
checking whether pclose is declared without a macro... yes
checking whether popen is declared without a macro... yes
checking whether renameat is declared without a macro... no
checking whether snprintf is declared without a macro... yes
checking whether tmpfile is declared without a macro... yes
checking whether vdprintf is declared without a macro... yes
checking whether vsnprintf is declared without a macro... yes
checking whether _Exit is declared without a macro... yes
checking whether atoll is declared without a macro... yes
checking whether canonicalize_file_name is declared without a macro... no
checking whether getloadavg is declared without a macro... yes
checking whether getsubopt is declared without a macro... yes
checking whether grantpt is declared without a macro... yes
checking whether initstate is declared without a macro... yes
checking whether initstate_r is declared without a macro... no
checking whether mkdtemp is declared without a macro... yes
checking whether mkostemp is declared without a macro... yes
checking whether mkostemps is declared without a macro... yes
checking whether mkstemp is declared without a macro... yes
checking whether mkstemps is declared without a macro... no
checking whether posix_openpt is declared without a macro... yes
checking whether ptsname is declared without a macro... yes
checking whether ptsname_r is declared without a macro... yes
checking whether qsort_r is declared without a macro... no
checking whether random is declared without a macro... yes
checking whether random_r is declared without a macro... no
checking whether reallocarray is declared without a macro... yes
checking whether realpath is declared without a macro... yes
checking whether rpmatch is declared without a macro... no
checking whether secure_getenv is declared without a macro... no
checking whether setenv is declared without a macro... yes
checking whether setstate is declared without a macro... yes
checking whether setstate_r is declared without a macro... no
checking whether srandom is declared without a macro... yes
checking whether srandom_r is declared without a macro... no
checking whether strtod is declared without a macro... yes
checking whether strtoll is declared without a macro... yes
checking whether strtoull is declared without a macro... yes
checking whether unlockpt is declared without a macro... yes
checking whether unsetenv is declared without a macro... yes
checking for working strndup... yes
checking for working strnlen... yes
checking whether symlink handles trailing slash correctly... yes
checking whether symlinkat handles trailing slash correctly... yes
checking for nlink_t... (cached) yes
checking whether fchmodat is declared without a macro... (cached) yes
checking whether fstat is declared without a macro... (cached) yes
checking whether fstatat is declared without a macro... (cached) yes
checking whether futimens is declared without a macro... (cached) yes
checking whether lchmod is declared without a macro... (cached) yes
checking whether lstat is declared without a macro... (cached) yes
checking whether mkdirat is declared without a macro... (cached) yes
checking whether mkfifo is declared without a macro... (cached) yes
checking whether mkfifoat is declared without a macro... (cached) yes
checking whether mknod is declared without a macro... (cached) yes
checking whether mknodat is declared without a macro... (cached) yes
checking whether stat is declared without a macro... (cached) yes
checking whether utimensat is declared without a macro... (cached) yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking for timezone_t... yes
checking whether tzset clobbers localtime buffer... no
checking whether chdir is declared without a macro... yes
checking whether chown is declared without a macro... yes
checking whether dup is declared without a macro... yes
checking whether dup2 is declared without a macro... yes
checking whether dup3 is declared without a macro... yes
checking whether environ is declared without a macro... no
checking whether euidaccess is declared without a macro... no
checking whether faccessat is declared without a macro... yes
checking whether fchdir is declared without a macro... yes
checking whether fchownat is declared without a macro... yes
checking whether fdatasync is declared without a macro... yes
checking whether fsync is declared without a macro... yes
checking whether ftruncate is declared without a macro... yes
checking whether getcwd is declared without a macro... yes
checking whether getdomainname is declared without a macro... yes
checking whether getdtablesize is declared without a macro... yes
checking whether getgroups is declared without a macro... yes
checking whether gethostname is declared without a macro... yes
checking whether getlogin is declared without a macro... yes
checking whether getlogin_r is declared without a macro... yes
checking whether getpagesize is declared without a macro... yes
checking whether getusershell is declared without a macro... yes
checking whether setusershell is declared without a macro... yes
checking whether endusershell is declared without a macro... yes
checking whether group_member is declared without a macro... no
checking whether isatty is declared without a macro... yes
checking whether lchown is declared without a macro... yes
checking whether link is declared without a macro... yes
checking whether linkat is declared without a macro... yes
checking whether lseek is declared without a macro... yes
checking whether pipe is declared without a macro... yes
checking whether pipe2 is declared without a macro... yes
checking whether pread is declared without a macro... yes
checking whether pwrite is declared without a macro... yes
checking whether readlink is declared without a macro... yes
checking whether readlinkat is declared without a macro... yes
checking whether rmdir is declared without a macro... yes
checking whether sethostname is declared without a macro... yes
checking whether sleep is declared without a macro... yes
checking whether symlink is declared without a macro... yes
checking whether symlinkat is declared without a macro... yes
checking whether truncate is declared without a macro... yes
checking whether ttyname_r is declared without a macro... yes
checking whether unlink is declared without a macro... yes
checking whether unlinkat is declared without a macro... yes
checking whether usleep is declared without a macro... yes
checking whether unlink honors trailing slashes... yes
checking whether unlink of a parent directory fails as it should... guessing yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... yes
checking whether utime is declared without a macro... yes
checking whether utimensat works... no
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking whether btowc is declared without a macro... yes
checking whether wctob is declared without a macro... yes
checking whether mbsinit is declared without a macro... yes
checking whether mbrtowc is declared without a macro... yes
checking whether mbrlen is declared without a macro... yes
checking whether mbsrtowcs is declared without a macro... yes
checking whether mbsnrtowcs is declared without a macro... yes
checking whether wcrtomb is declared without a macro... yes
checking whether wcsrtombs is declared without a macro... yes
checking whether wcsnrtombs is declared without a macro... yes
checking whether wcwidth is declared without a macro... yes
checking whether wmemchr is declared without a macro... yes
checking whether wmemcmp is declared without a macro... yes
checking whether wmemcpy is declared without a macro... yes
checking whether wmemmove is declared without a macro... yes
checking whether wmemset is declared without a macro... yes
checking whether wcslen is declared without a macro... yes
checking whether wcsnlen is declared without a macro... yes
checking whether wcscpy is declared without a macro... yes
checking whether wcpcpy is declared without a macro... no
checking whether wcsncpy is declared without a macro... yes
checking whether wcpncpy is declared without a macro... no
checking whether wcscat is declared without a macro... yes
checking whether wcsncat is declared without a macro... yes
checking whether wcscmp is declared without a macro... yes
checking whether wcsncmp is declared without a macro... yes
checking whether wcscasecmp is declared without a macro... yes
checking whether wcsncasecmp is declared without a macro... yes
checking whether wcscoll is declared without a macro... yes
checking whether wcsxfrm is declared without a macro... yes
checking whether wcsdup is declared without a macro... yes
checking whether wcschr is declared without a macro... yes
checking whether wcsrchr is declared without a macro... yes
checking whether wcscspn is declared without a macro... yes
checking whether wcsspn is declared without a macro... yes
checking whether wcspbrk is declared without a macro... yes
checking whether wcsstr is declared without a macro... yes
checking whether wcstok is declared without a macro... yes
checking whether wcswidth is declared without a macro... yes
checking whether wcsftime is declared without a macro... yes
checking whether iswcntrl works... yes
checking for towlower... yes
checking for wctype_t... yes
checking for wctrans_t... yes
checking whether wctype is declared without a macro... yes
checking whether iswctype is declared without a macro... yes
checking whether wctrans is declared without a macro... yes
checking whether towctrans is declared without a macro... yes
checking for stdint.h... (cached) yes
checking the archiver (ar) interface... (cached) ar
checking for mode_t... (cached) yes
checking for off_t... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... (cached) yes
checking attr/error_context.h usability... no
checking attr/error_context.h presence... no
checking for attr/error_context.h... no
checking attr/libattr.h usability... no
checking attr/libattr.h presence... no
checking for attr/libattr.h... no
configure: WARNING: libattr development library was not found or not usable.
configure: WARNING: GNU patch will be built without xattr support.
checking for geteuid... yes
checking for getuid... yes
checking for raise... (cached) yes
checking for sigaction... yes
checking for sigprocmask... yes
checking for sigsetmask... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for DOS-style setmode... no
checking for ed... /bin/ed
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
bash-5.1$

OKay, looking at the above there is no error message that says "Thou
shalt burn in the deepest fire!". In fact there is nothing that seems to
say there is any problem at all.

So we are good to go right ?

bash-5.1$ /usr/bin/time -p /usr/bin/nice -n +18 /usr/pkg/bin/gmake
/usr/pkg/bin/gmake  all-recursive
gmake[1]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004' Making all in lib gmake[2]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/lib' rm -f alloca.h-t alloca.h &&
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */';
cat ./alloca.in.h; \ } > alloca.h-t && \ mv -f alloca.h-t alloca.h
rm -f configmake.h-t &&
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */';
echo '#define PREFIX "/opt/bw"'; \ echo '#define EXEC_PREFIX "/opt/bw"'; \ echo '#define BINDIR "/opt/bw/bin"'; \
         echo '#define SBINDIR "/opt/bw/sbin"';
  echo '#define LIBEXECDIR "/opt/bw/libexec"';
  echo '#define DATAROOTDIR "/opt/bw/share"';
.
.
.
/opt/bw/gcc12/bin/gcc -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE64_SOURCE -Wl,-rpath=/opt/bw/lib,--enable-new-dt[217/1916] g -O0 -fno-fast-math -fno-builtin -malign-double -march=k8 -mtune=k8 -mieee-fp -mhard-float -mno-fancy-math-387 -m128bit -long-double -mlong-double-80 -mstackrealign -mpreferred-stack-boundary=8 -MT pipe-safer.o -MD -MP -MF .deps/pipe-safer.
Tpo -c -o pipe-safer.o pipe-safer.c
mv -f .deps/pipe-safer.Tpo .deps/pipe-safer.Po
/opt/bw/gcc12/bin/gcc -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE64_SOURCE -Wl,-rpath=/opt/bw/lib,--enable-new-dtags -m64 - g -O0 -fno-fast-math -fno-builtin -malign-double -march=k8 -mtune=k8 -mieee-fp -mhard-float -mno-fancy-math-387 -m128bit -long-double -mlong-double-80 -mstackrealign -mpreferred-stack-boundary=8 -MT utimens.o -MD -MP -MF .deps/utimens.Tpo -c
 -o utimens.o utimens.c
utimens.c: In function ‘fdutimens’:
utimens.c:383:17: warning: ‘update_timespec’ accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
  383 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:383:17: note: referencing argument 2 of type ‘struct timespec *[2]’
utimens.c:134:1: note: in a call to function ‘update_timespec’
134 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
utimens.c: In function ‘lutimens’:
utimens.c:596:17: warning: ‘update_timespec’ accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
  596 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:596:17: note: referencing argument 2 of type ‘struct timespec *[2]’
utimens.c:134:1: note: in a call to function ‘update_timespec’
134 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
utimens.c: In function ‘fdutimens’:
utimens.c:383:17: warning: ‘update_timespec’ accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
  383 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:383:17: note: referencing argument 2 of type ‘struct timespec *[2]’
utimens.c:134:1: note: in a call to function ‘update_timespec’
134 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
utimens.c: In function ‘lutimens’:
utimens.c:596:17: warning: ‘update_timespec’ accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
  596 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:596:17: note: referencing argument 2 of type ‘struct timespec *[2]’
utimens.c:134:1: note: in a call to function ‘update_timespec’
134 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
mv -f .deps/utimens.Tpo .deps/utimens.Po
/opt/bw/gcc12/bin/gcc -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE64_SOURCE -Wl,-rpath=/opt/bw/lib,--enable-new-dtags -m64 - g -O0 -fno-fast-math -fno-builtin -malign-double -march=k8 -mtune=k8 -mieee-fp -mhard-float -mno-fancy-math-387 -m128bit -long-double -mlong-double-80 -mstackrealign -mpreferred-stack-boundary=8 -MT verror.o -MD -MP -MF .deps/verror.Tpo -c -
o verror.o verror.c
mv -f .deps/verror.Tpo .deps/verror.Po
/opt/bw/gcc12/bin/gcc -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE64_SOURCE -Wl,-rpath=/opt/bw/lib,--enable-new-dtags -m64 - g -O0 -fno-fast-math -fno-builtin -malign-double -march=k8 -mtune=k8 -mieee-fp -mhard-float -mno-fancy-math-387 -m128bit -long-double -mlong-double-80 -mstackrealign -mpreferred-stack-boundary=8 -MT wctype-h.o -MD -MP -MF .deps/wctype-h.Tpo
-c -o wctype-h.o wctype-h.c
.
.
.


Suffice it to say there are no HELLFIRE fail warnings in all that.
Nothing to see special. It just .. ends nicely.




bash-5.1$
bash-5.1$ ls -l ./src/patch
-rwxr-xr-x  1 dclarke  devl  525736 May 10 03:22 ./src/patch
bash-5.1$
bash-5.1$ file ./src/patch
./src/patch: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /usr/libexec/ld.elf_so
, for NetBSD 9.3, with debug_info, not stripped
bash-5.1$
bash-5.1$ readelf -delV ./src/patch
ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x402ad0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          523496 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         7
  Size of section headers:           64 (bytes)
  Number of section headers:         35
  Section header string table index: 34

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         00000000004001c8  000001c8
       0000000000000017  0000000000000000   A       0     0     1
  [ 2] .note.netbsd.iden NOTE             00000000004001e0  000001e0
       0000000000000018  0000000000000000   A       0     0     4
.
.
.
  GNU_EH_FRAME   0x00000000000384d4 0x00000000004384d4 0x00000000004384d4
                 0x0000000000000fb4 0x0000000000000fb4  R      0x4

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
02 .interp .note.netbsd.ident .note.netbsd.pax .hash .dynsym .dynstr .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame
   03     .ctors .dtors .dynamic .got .got.plt .data .bss
   04     .dynamic
   05     .note.netbsd.ident .note.netbsd.pax
   06     .eh_frame_hdr

Dynamic section at offset 0x3d418 contains 18 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.12]
 0x000000000000001d (RUNPATH)            Library runpath: [/opt/bw/lib]
 0x000000000000000c (INIT)               0x402310
 0x000000000000000d (FINI)               0x431660
 0x0000000000000004 (HASH)               0x400210
 0x0000000000000005 (STRTAB)             0x4012e8
 0x0000000000000006 (SYMTAB)             0x400640
 0x000000000000000a (STRSZ)              1101 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x63d590
 0x0000000000000002 (PLTRELSZ)           2904 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x4017b0
 0x0000000000000007 (RELA)               0x401738
 0x0000000000000008 (RELASZ)             120 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x0000000000000000 (NULL)               0x0

No version information found in this file.
bash-5.1$

bash-5.1$
bash-5.1$ ./src/patch --version
GNU patch 2.7.6
Copyright (C) 2003, 2009-2012 Free Software Foundation, Inc.
Copyright (C) 1988 Larry Wall

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Larry Wall and Paul Eggert
bash-5.1$

Looks good to me ... however we fall into total disaster with tests :

bash-5.1$
bash-5.1$ /usr/bin/time -p /usr/bin/nice -n +18 /usr/pkg/bin/gmake check 2>&1 | tee ../patch-2.7.6_NetBSD_9.3_AMD64.004.
check.log
if test -d ./.git
        && git --version >/dev/null 2>&1; then
  cd . &&
  git submodule --quiet foreach
      'test "$(git rev-parse "$sha1")"
          = "$(git merge-base origin "$sha1")"'
    || { echo 'maint.mk: found non-public submodule commit' >&2;
         exit 1; };
else
  : ;
fi
/usr/pkg/bin/gmake  check-recursive
gmake[1]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004'
Making check in lib
gmake[2]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/lib'
/usr/pkg/bin/gmake  check-am
gmake[3]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/lib'
gmake[3]: Nothing to be done for 'check-am'.
gmake[3]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/lib' gmake[2]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/lib'
Making check in src
gmake[2]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/src'
gmake[2]: Nothing to be done for 'check'.
gmake[2]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/src'
Making check in tests
gmake[2]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests'
/usr/pkg/bin/gmake  check-TESTS
gmake[3]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests' gmake[4]: Entering directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests'
FAIL: asymmetric-hunks
FAIL: backup-prefix-suffix
FAIL: bad-filenames
FAIL: bad-usage
FAIL: concat-git-diff
XFAIL: context-format
FAIL: copy-rename
FAIL: corrupt-patch
FAIL: corrupt-reject-files
FAIL: create-delete
FAIL: create-directory
FAIL: criss-cross
FAIL: crlf-handling
XFAIL: dash-o-append
FAIL: deep-directories
FAIL: empty-files
FAIL: false-match
FAIL: fifo
FAIL: file-create-modes
FAIL: file-modes
FAIL: filename-choice
FAIL: git-binary-diff
FAIL: git-cleanup
FAIL: garbage
FAIL: global-reject-files
FAIL: inname
FAIL: line-numbers
FAIL: merge
FAIL: mangled-numbers-abort
FAIL: mixed-patch-types
FAIL: munged-context-format
FAIL: need-filename
FAIL: no-mode-change-git-diff
FAIL: no-newline-triggers-assert
FAIL: preserve-c-function-names
FAIL: preserve-mode-and-timestamp
FAIL: quoted-filenames
FAIL: read-only-files
FAIL: reject-format
FAIL: remember-backup-files
FAIL: remember-reject-files
FAIL: remove-directories
FAIL: symlinks
FAIL: unmodified-files
============================================================================
Testsuite summary for GNU patch 2.7.6
============================================================================
# TOTAL: 44
# PASS:  0
# SKIP:  0
# XFAIL: 2
# FAIL:  42
# XPASS: 0
# ERROR: 0
============================================================================
See tests/test-suite.log
Please report to bug-patch@gnu.org
============================================================================
gmake[4]: *** [Makefile:1412: test-suite.log] Error 1
gmake[4]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests'
gmake[3]: *** [Makefile:1520: check-TESTS] Error 2
gmake[3]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests'
gmake[2]: *** [Makefile:1891: check-am] Error 2
gmake[2]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004/tests'
gmake[1]: *** [Makefile:1325: check-recursive] Error 1
gmake[1]: Leaving directory '/opt/bw/build/patch-2.7.6_NetBSD_9.3_AMD64.004'
gmake: *** [Makefile:1615: check] Error 2
real         5.71
user         2.96
sys          3.54
bash-5.1$

I do NOT believe anything in that result. Nothing. It makes zero sense.

So bash shell or otherwise ( Bourne? ) this just falls over for unknown
and quite frankly spooky reasons.


--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
or whatever..




reply via email to

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