commit be91976103cab950f954aa9a8e6a6fcdc939a167
parent c365aeb0721d3749bb5f94f09a3ad97ec6131805
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date: Thu, 5 Oct 2017 17:47:18 +0000
Better *FLAGS management; prepare for 2.6.0.1
Diffstat:
9 files changed, 59 insertions(+), 34 deletions(-)
diff --git a/INSTALL b/INSTALL
@@ -51,9 +51,10 @@ nevertheless, a few standard environment variables are recognized.
detection by configure. The --host=HOST option will still add a HOST-
prefix to the value of CC.
- The values of CFLAGS, CPPFLAGS and LDFLAGS will be appended to flags
-auto-detected by configure. To entirely override the flags set by
-configure instead, use make variables.
+ The values of CFLAGS, CPPFLAGS and LDFLAGS will be appended to the
+default flags set by configure. To override those defaults instead
+of appending to them, use the CPPFLAGS, CFLAGS and LDFLAGS
+_make variables_ instead of environment variables.
* Make variables
diff --git a/Makefile b/Makefile
@@ -20,11 +20,11 @@ include package/deps.mak
version_m := $(basename $(version))
version_M := $(basename $(version_m))
version_l := $(basename $(version_M))
-CPPFLAGS_ALL := -Isrc/include $(CPPFLAGS)
-CFLAGS_ALL := $(CFLAGS) -pipe -Wall
+CPPFLAGS_ALL := $(CPPFLAGS_AUTO) $(CPPFLAGS)
+CFLAGS_ALL := $(CFLAGS_AUTO) $(CFLAGS)
CFLAGS_SHARED := -fPIC
-LDFLAGS_ALL := $(LDFLAGS)
-LDLIBS_ALL := $(LDLIBS)
+LDFLAGS_ALL := $(LDFLAGS_AUTO) $(LDFLAGS)
+LDLIBS_ALL := $(LDLIBS_AUTO) $(LDLIBS)
REALCC = $(CROSS_COMPILE)$(CC)
AR := $(CROSS_COMPILE)ar
RANLIB := $(CROSS_COMPILE)ranlib
diff --git a/NEWS b/NEWS
@@ -1,5 +1,12 @@
Changelog for skalibs.
+In 2.6.0.1
+----------
+
+ - Better CPPFLAGS/CFLAGS/LDFLAGS management
+ - openwritenclose() and openwritevnclose() now use mkstemp
+
+
In 2.6.0.0
----------
diff --git a/configure b/configure
@@ -125,11 +125,11 @@ choose () {
libs="$*"
r=true
case "$what" in
- *c*) $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o try$name.o -c src/sysdeps/try$name.c 2>/dev/null || r=false ;;
+ *c*) $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o try$name.o -c src/sysdeps/try$name.c 2>/dev/null || r=false ;;
esac
if $r ; then
case "$what" in
- *l*) $CC_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o try$name try$name.o $libs 2>/dev/null || r=false ;;
+ *l*) $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o try$name try$name.o $libs 2>/dev/null || r=false ;;
esac
fi
if $r ; then
@@ -156,7 +156,7 @@ choose () {
trytypes () {
echo "Checking size and signedness of standard types..."
- $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o output-types src/sysdeps/output-types.c
+ $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o output-types src/sysdeps/output-types.c
./output-types >> $sysdeps/sysdeps
./output-types | grep -F sizeof | while read key value ; do
caps=$(echo $key | sed s/:\$// | tr a-z A-Z)
@@ -181,8 +181,8 @@ trylibs () {
name=$1
echo "Checking whether system has $2..." >&3
shift 2
- if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -c -o try$name.o src/sysdeps/try$name.c 2>/dev/null ; then
- until $CC_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o /dev/null try$name.o $args 2>/dev/null ; do
+ if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o try$name.o src/sysdeps/try$name.c 2>/dev/null ; then
+ until $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o /dev/null try$name.o $args 2>/dev/null ; do
if test -z "$*" ; then
rm -f try$name.o
echo
@@ -210,9 +210,15 @@ trylibs () {
# Actual script
CC_AUTO=
-CFLAGS_AUTO="$CFLAGS"
-CPPFLAGS_AUTO="-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -O2 $CPPFLAGS"
-LDFLAGS_AUTO="$LDFLAGS"
+CPPFLAGS_AUTO="-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -Isrc/include"
+CPPFLAGS_POST="$CPPFLAGS"
+CPPFLAGS=
+CFLAGS_AUTO="-pipe -Wall"
+CFLAGS_POST="$CFLAGS"
+CFLAGS="-O2"
+LDFLAGS_AUTO=
+LDFLAGS_POST="$LDFLAGS"
+LDFLAGS=
LDFLAGS_NOSHARED=
LDFLAGS_SHARED=-shared
prefix=
@@ -353,7 +359,7 @@ test -n "$CC_AUTO" || { echo "$0: cannot find a C compiler" ; exit 1 ; }
echo " ... $CC_AUTO"
echo "Checking whether C compiler works... "
echo "typedef int x;" > "$tmpc"
-if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -c -o /dev/null "$tmpc" 2>"$tmpe" ; then
+if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o /dev/null "$tmpc" 2>"$tmpe" ; then
echo " ... yes"
else
echo " ... no. Compiler output follows:"
@@ -371,13 +377,13 @@ if test -z "$target" ; then
fi
echo " ... $target"
-tryflag CPPFLAGS_AUTO -std=c99
-tryflag CPPFLAGS_AUTO -fomit-frame-pointer
-tryflag CPPFLAGS_AUTO -fno-exceptions
-tryflag CPPFLAGS_AUTO -fno-unwind-tables
-tryflag CPPFLAGS_AUTO -fno-asynchronous-unwind-tables
-tryflag CPPFLAGS_AUTO -Wa,--noexecstack
-tryflag CPPFLAGS_AUTO -fno-stack-protector
+tryflag CFLAGS_AUTO -std=c99
+tryflag CFLAGS -fomit-frame-pointer
+tryflag CFLAGS_AUTO -fno-exceptions
+tryflag CFLAGS_AUTO -fno-unwind-tables
+tryflag CFLAGS_AUTO -fno-asynchronous-unwind-tables
+tryflag CFLAGS_AUTO -Wa,--noexecstack
+tryflag CFLAGS -fno-stack-protector
tryflag CPPFLAGS_AUTO -Werror=implicit-function-declaration
tryflag CPPFLAGS_AUTO -Werror=implicit-int
tryflag CPPFLAGS_AUTO -Werror=pointer-sign
@@ -390,7 +396,7 @@ tryflag CFLAGS_AUTO -fdata-sections
tryldflag LDFLAGS_AUTO -Wl,--sort-section=alignment
tryldflag LDFLAGS_AUTO -Wl,--sort-common
if $shared ; then
- tryldflag LDFLAGS_AUTO -Wl,--hash-style=both
+ tryldflag LDFLAGS -Wl,--hash-style=both
fi
if test -n "$sysdeps" ; then
@@ -472,7 +478,7 @@ EOF
exec 3>&-
echo "Checking system endianness..."
- $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO -o tryendianness src/sysdeps/tryendianness.c
+ $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o tryendianness src/sysdeps/tryendianness.c
endianness=$(./tryendianness) || fail "$0: unable to determine endianness"
echo "endianness: $endianness" >> $sysdeps/sysdeps
echo "#define ${package_macro_name}_ENDIANNESS \"$endianness\"" >> $sysdeps/sysdeps.h
@@ -553,9 +559,12 @@ TAINNOW_LIB := ${tainnow_lib}
TIMER_LIB := ${timer_lib}
UTIL_LIB := ${util_lib}
CC := ${CC_AUTO##${cross}}
-CFLAGS := $CFLAGS_AUTO
-CPPFLAGS := $CPPFLAGS_AUTO
-LDFLAGS := $LDFLAGS_AUTO
+CPPFLAGS_AUTO := $CPPFLAGS_AUTO
+CPPFLAGS := $CPPFLAGS $CPPFLAGS_POST
+CFLAGS_AUTO := $CFLAGS_AUTO
+CFLAGS := $CFLAGS $CFLAGS_POST
+LDFLAGS_AUTO := $LDFLAGS_AUTO
+LDFLAGS := $LDFLAGS $LDFLAGS_POST
LDFLAGS_NOSHARED := $LDFLAGS_NOSHARED
LDFLAGS_SHARED := $LDFLAGS_SHARED
CROSS_COMPILE := ${cross}
diff --git a/doc/index.html b/doc/index.html
@@ -60,7 +60,7 @@ with a standard C development environment </li>
<h3> Download </h3>
<ul>
- <li> The current released version of skalibs is <a href="skalibs-2.6.0.0.tar.gz">2.6.0.0</a>. </li>
+ <li> The current released version of skalibs is <a href="skalibs-2.6.0.1.tar.gz">2.6.0.1</a>. </li>
<li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgi-bin/cgit.cgi/skalibs/">skalibs
git repository</a>:
diff --git a/doc/license.html b/doc/license.html
@@ -74,7 +74,7 @@ color, or different text font. </li>
<p>
<em>I am aware that the previous restrictions sound completely
ridiculous while the official skalibs documentation is incomplete.
-As of 2.6.0.0, I'm not going to enforce those restrictions, but if you're
+As of 2.6.0.1, I'm not going to enforce those restrictions, but if you're
going to provide documentation for skalibs, don't keep it to yourself,
please send it to me instead. :-) </em>
</p>
diff --git a/doc/upgrade.html b/doc/upgrade.html
@@ -16,6 +16,17 @@
<a href="//skarnet.org/">skarnet.org</a>
</p>
+
+<h2> in 2.6.0.1 </h2>
+
+<ul>
+ <li> <tt>openwritenclose()</tt> and <tt>openwritevnclose()</tt> now use
+<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html">mkstemp()</a>
+instead of relying on an unpredictable name (which required a random
+generator to be fully initialized). </li>
+</ul>
+
+
<h2> in 2.6.0.0 </h2>
<ul>
diff --git a/package/deps.mak b/package/deps.mak
@@ -21,14 +21,12 @@ src/include/skalibs/djbtime.h: src/include/skalibs/tai.h src/include/skalibs/uin
src/include/skalibs/djbunix.h: src/include/skalibs/env.h src/include/skalibs/envalloc.h src/include/skalibs/gccattributes.h src/include/skalibs/stralloc.h
src/include/skalibs/env.h: src/include/skalibs/gccattributes.h src/include/skalibs/stralloc.h
src/include/skalibs/envalloc.h: src/include/skalibs/genalloc.h
-src/include/skalibs/error.h: src/include/skalibs/gccattributes.h
src/include/skalibs/fmtscan.h: src/include/skalibs/gccattributes.h
src/include/skalibs/genalloc.h: src/include/skalibs/functypes.h src/include/skalibs/stralloc.h
src/include/skalibs/genset.h: src/include/skalibs/functypes.h
src/include/skalibs/gensetdyn.h: src/include/skalibs/functypes.h src/include/skalibs/genalloc.h src/include/skalibs/stralloc.h
src/include/skalibs/iobuffer.h: src/include/skalibs/buffer.h src/include/skalibs/djbunix.h
src/include/skalibs/iopause.h: src/include/skalibs/tai.h
-src/include/skalibs/ip46.h: src/include/skalibs/fmtscan.h src/include/skalibs/socket.h
src/include/skalibs/kolbak.h: src/include/skalibs/unixmessage.h
src/include/skalibs/lolstdio.h: src/include/skalibs/bufalloc.h src/include/skalibs/buffer.h src/include/skalibs/strerr2.h
src/include/skalibs/mininetstring.h: src/include/skalibs/stralloc.h
@@ -47,7 +45,6 @@ src/include/skalibs/stddjb.h: src/include/skalibs/alarm.h src/include/skalibs/al
src/include/skalibs/strerr.h: src/include/skalibs/gccattributes.h
src/include/skalibs/strerr2.h: src/include/skalibs/strerr.h
src/include/skalibs/tai.h: src/include/skalibs/gccattributes.h src/include/skalibs/uint64.h
-src/include/skalibs/types.h: src/include/skalibs/uint16.h src/include/skalibs/uint32.h src/include/skalibs/uint64.h
src/include/skalibs/unix-timed.h: src/include/skalibs/bufalloc.h src/include/skalibs/buffer.h src/include/skalibs/functypes.h src/include/skalibs/stralloc.h src/include/skalibs/tai.h
src/include/skalibs/unix-transactional.h: src/include/skalibs/stralloc.h src/include/skalibs/uint64.h
src/include/skalibs/unixconnection.h: src/include/skalibs/unixmessage.h
diff --git a/package/info b/package/info
@@ -1,4 +1,4 @@
package=skalibs
-version=2.6.0.0
+version=2.6.0.1
category=prog
package_macro_name=SKALIBS