[Tcsh] tcsh-6.24.08 and DragonFlyBSD 6.4.0

Nelson H. F. Beebe beebe at math.utah.edu
Mon Apr 10 21:16:00 UTC 2023


The test build of tcsh-6.24.08 on DragonFlyBSD 6.4.0 (the latest release
of that O/S) failed like this:

	/usr/bin/cc -c -I/usr/uumath/include -I/usr/local/include -I/usr/uumath/include \
	    -I. -I. -D_PATH_TCSHELL='"/usr/uumath/bin/tcsh"' \
	    -I/usr/uumath/include -I/usr/local/include  tc.alloc.c
	tc.alloc.c:462:8: error: conflicting types for 'malloc_usable_size'
	 size_t malloc_usable_size(M_U_S_CONST void *);
		^~~~~~~~~~~~~~~~~~
	In file included from /usr/include/stdlib.h:43,
			 from sh.h:335,
			 from tc.alloc.c:40:
	/usr/include/malloc_np.h:36:8: note: previous declaration of 'malloc_usable_size' was here
	 size_t malloc_usable_size(const void *);
		^~~~~~~~~~~~~~~~~~
	tc.alloc.c:464:1: error: conflicting types for 'malloc_usable_size'
	 malloc_usable_size(M_U_S_CONST void *ptr)
	 ^~~~~~~~~~~~~~~~~~
	In file included from /usr/include/stdlib.h:43,
			 from sh.h:335,
			 from tc.alloc.c:40:
	/usr/include/malloc_np.h:36:8: note: previous declaration of 'malloc_usable_size' was here
	 size_t malloc_usable_size(const void *);
		^~~~~~~~~~~~~~~~~~

Indeed, I find these patterns:

	%  grep M_U_S_CONST *.c
	tc.alloc.c:#define M_U_S_CONST
	tc.alloc.c:#define M_U_S_CONST
	tc.alloc.c:size_t malloc_usable_size(M_U_S_CONST void *);
	tc.alloc.c:malloc_usable_size(M_U_S_CONST void *ptr)

	%  grep  malloc_usable_size /usr/include/malloc_np.h
	size_t malloc_usable_size(const void *);

One possible solution is to rename the tcsh version of the conflicting
function to something unique to tcsh, but I leave that up to the tcsh
team.

As an experiment, I ran

	% sed -i s/malloc_usable_size/tcsh_malloc_usable_size/g tc.alloc.c
	% make all check

That was successful, and the checks reporte

	# ------------- ##
	## Test results. ##
	## ------------- ##

	195 tests were successful.
	53 tests were skipped.

That is the ONLY one of 105 builds today that experienced no test
failures.  It was also the only one that I did interactively, instead
of in batch mode: perhaps that is the difference.

To test that conjecture, I visited the build directory on two systems,
Ubuntu 20.04 and NetBSD 10.0.  On the former, an interactive "make
check" reported all tests passing, but on the latter, there were still
two failures:

	 49: filetest             FAILED (commands.at:503)
	112: Primary expressions  FAILED (expr.at:106)

The "117: Comments" and "181: $ edit" tests now pass, but did not in
the batch builds.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                                                          -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------


More information about the Tcsh mailing list