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

Re: Potential spiped 1.4.0 release -- please test



Hi Frederick & list,

On 08/30/14 05:31, Frederick Akalin wrote:
> Alas, my report comes too late to fix 1.4.0 for OS X 10.9.4, but I
> have a few minor issues to report.

I can always release a version 1.4.1. ;-)

> The first problem is with POSIX/posix-cflags.sh. Its lines that do
> 'echo "-D..."' prints trailing newlines, but if only one POSIX
> violation is detected it turns out okay since that trailing newline
> gets eaten (I'm guessing by the backticks). However, if both POSIX
> violations are triggered, then a newline gets inserted into the middle
> of CFLAGS_POSIX, which confuses make:

Very interesting.  I assumed that all of the \n characters would be eaten
and replaced by linear whitespace.

> printf %s "-DPOSIXFAIL_MSG_NOSIGNAL "

Yes, printf is what I've used elsewhere for constructing lines in parts.

> The second less serious problem is that the root Makefile assumes make
> == bsdmake. This seems not to cause any problems currently, but I
> suggest fixing it anyway, by replacing 'make' with '${MAKE}'.

I don't assume that make is bsdmake, only that it is something POSIX-compliant.
But you're right that I should use ${MAKE}, in case it isn't in the path.  (I
don't know if anyone actually gets this right, but if make is not in the path
and is invoked via /path/to/make, then ${MAKE} should be "/path/to/make" and
not just "make".)

Can you try the attached patch?

-- 
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid
diff -ruN spiped-1.4.0/CHANGELOG spiped-1.4.1/CHANGELOG
--- spiped-1.4.0/CHANGELOG	2014-08-28 01:29:56.000000000 -0700
+++ spiped-1.4.1/CHANGELOG	2014-08-30 12:15:19.000000000 -0700
@@ -1,3 +1,5 @@
+spiped-1.4.1
+* Fix build on OS X, and improve strict POSIX compliance.
 spiped-1.4.0
 * Add automatic detection of compiler support (at compile-time) and CPU
   support (at run-time) for x86 "AES New Instructions"; and when available,
diff -ruN spiped-1.4.0/Makefile spiped-1.4.1/Makefile
--- spiped-1.4.0/Makefile	2014-08-28 01:30:35.000000000 -0700
+++ spiped-1.4.1/Makefile	2014-08-30 12:15:43.000000000 -0700
@@ -11,17 +11,17 @@
 	( export CC="${CC}"; cd libcperciva/cpusupport/Build && command -p sh cpusupport.sh ) > cpusupport-config.h;	\
 	. ./cpusupport-config.h;			\
 	for D in ${PROGS}; do				\
-		( cd $${D} && make all ) || exit 2;	\
+		( cd $${D} && ${MAKE} all ) || exit 2;	\
 	done
 
 install: all
 	export BINDIR=$${BINDIR:-${BINDIR_DEFAULT}};	\
 	for D in ${PROGS}; do				\
-		( cd $${D} && make install ) || exit 2;	\
+		( cd $${D} && ${MAKE} install ) || exit 2;	\
 	done
 
 clean:
 	rm -f cpusupport-config.h
 	for D in ${PROGS}; do				\
-		( cd $${D} && make clean ) || exit 2;	\
+		( cd $${D} && ${MAKE} clean ) || exit 2;	\
 	done
diff -ruN spiped-1.4.0/POSIX/posix-cflags.sh spiped-1.4.1/POSIX/posix-cflags.sh
--- spiped-1.4.0/POSIX/posix-cflags.sh	2014-08-28 01:29:56.000000000 -0700
+++ spiped-1.4.1/POSIX/posix-cflags.sh	2014-08-30 12:03:28.000000000 -0700
@@ -1,10 +1,10 @@
 # Should be sourced by `command -p sh posix-cflags.sh` from within a Makefile
 if ! ${CC} -D_POSIX_C_SOURCE=200809L posix-msg_nosignal.c 2>/dev/null; then
-	echo "-DPOSIXFAIL_MSG_NOSIGNAL"
+	printf %s "-DPOSIXFAIL_MSG_NOSIGNAL "
 	echo "WARNING: POSIX violation: <sys/socket.h> not defining MSG_NOSIGNAL" >/dev/stderr
 fi
 if ! ${CC} -D_POSIX_C_SOURCE=200809L posix-clock_realtime.c 2>/dev/null; then
-	echo "-DPOSIXFAIL_CLOCK_REALTIME"
+	printf %s "-DPOSIXFAIL_CLOCK_REALTIME"
 	echo "WARNING: POSIX violation: <time.h> not defining CLOCK_REALTIME" >/dev/stderr
 fi
 rm -f a.out