# as that way the compiler can do the right implementation dependant
# thing. (NWC)
case "$gccversion" in
- ?*) set stack-protector -fstack-protector
+ ?*) set stack-protector-strong -fstack-protector-strong
eval $checkccflag
+ case "$dflt" in
+ *-fstack-protector-strong*) ;; # It got added.
+ *) # Try the plain/older -fstack-protector.
+ set stack-protector -fstack-protector
+ eval $checkccflag
+ ;;
+ esac
;;
esac
;;
esac
# See note above about -fstack-protector
case "$ccflags" in
+*-fstack-protector-strong*)
+ case "$dflt" in
+ *-fstack-protector-strong*) ;; # Don't add it again
+ *) dflt="$dflt -fstack-protector-strong" ;;
+ esac
+ ;;
*-fstack-protector*)
case "$dflt" in
*-fstack-protector*) ;; # Don't add it again
?X:
?MAKE:Mksymlinks: lns issymlink src
?MAKE: -pick add $@ %<
-?T: directory filename
+?T:dir source file
?LINT:extern mksymlinks
: Make symlinks util
case "$mksymlinks" in
*) case "$lns:$issymlink" in
*"ln"*" -s:"*"test -"?)
echo "Creating the symbolic links..." >&4
- echo "(First creating the subdirectories...)" >&4
cd ..
- awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do
- read directory
- test -z "$directory" && break
- mkdir -p $directory
- done
+ awk '{print $1}' $src/MANIFEST | sed -e 's:/\([^/]*\)$: \1:' |
+ awk 'NF == 1 {
+ dir=".";
+ file=$1 "";
+ }
+ NF == 2 {
+ dir=$1 "";
+ file=$2 "";
+ }
+ {
+ print "# dir = ", dir, "file = ", file
+ mf[dir] = mf[dir]" "source"/"dir"/"file;
+ } END {
+ for (d in mf) {
+ if (d != ".") { print("mkdir -p "d) }
+ print("ln -sf "mf[d]" "d);
+ }
+ }' source="$src" > UU/mksymlinks.$$
+ sh UU/mksymlinks.$$
+ rm UU/mksymlinks.$$
# Sanity check 1.
if test ! -d t/base; then
echo "Failed to create the subdirectories. Aborting." >&4
exit 1
fi
- echo "(Then creating the symlinks...)" >&4
- awk '{print $1}' $src/MANIFEST | while true; do
- read filename
- test -z "$filename" && break
- if test -f $filename; then
- if $issymlink $filename; then
- rm -f $filename
- fi
- fi
- if test -f $filename; then
- echo "$filename already exists, not symlinking."
- else
- ln -s $src/$filename $filename
- fi
- done
# Sanity check 2.
if test ! -f t/base/lex.t; then
echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
exit 1
fi
+ if test ! -f win32/win32.c; then
+ echo "Failed to create the symlinks (win32/win32.c missing). Aborting." >&4
+ exit 1
+ fi
cd UU
;;
*) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4
--- /dev/null
+?RCS: You may redistribute only under the terms of the Artistic License,
+?RCS: as specified in the README file that comes with the distribution.
+?RCS: You may reuse parts of this distribution only within the terms of
+?RCS: that same Artistic License; a copy of which may be found at the root
+?RCS: of the source tree for dist 3.0.
+?RCS:
+?MAKE:d_lc_monetary_2008: cat Compile rm_try d_locconv
+?MAKE: -pick add $@ %<
+?S:d_lc_monetary_2008:
+?S: This variable conditionally defines HAS_LC_MONETARY_2008 if libc
+?S: has the international currency locale rules from POSIX
+?S: 1003.1-2008.
+?S:.
+?C:HAS_LC_MONETARY_2008:
+?C: This symbol, if defined, indicates that the localeconv routine is
+?C: available and has the additional members added in POSIX 1003.1-2008.
+?C:.
+?H:#$d_lc_monetary_2008 HAS_LC_MONETARY_2008 /**/
+?H:.
+: see if libc has the POSIX.1-2008 currency locale rules
+case "$d_locconv:$d_lc_monetary_2008" in
+$define:)
+ $cat >try.c <<EOCP
+#include <locale.h>
+int main() {
+ struct lconv *lc = localeconv();
+ char int_p_cs_precedes = lc->int_p_cs_precedes;
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile; then
+ d_lc_monetary_2008="$define"
+ else
+ d_lc_monetary_2008="$undef"
+ fi;
+ $rm_try
+ ;;
+esac
+
?S:.
?C:HAS_LLRINT:
?C: This symbol, if defined, indicates that the llrint routine is
-?C: available to to return the closest long long value according to
+?C: available to return the closest long long value according to
?C: the current rounding mode.
?C:.
?H:#$d_llrint HAS_LLRINT /**/
?C:HAS_PRCTL:
?C: This symbol, if defined, indicates that the prctl routine is
?C: available to set process title.
+?C: Note that there are at least two prctl variants: Linux and Irix.
+?C: While they are somewhat similar, they are incompatible.
?C:.
?C:HAS_PRCTL_SET_NAME:
?C: This symbol, if defined, indicates that the prctl routine is
?S:.
?C:HAS_SCALBN:
?C: This symbol, if defined, indicates that the scalbn routine is
-?C: available to multiply floating-point number by integral power of radix.
+?C: available to multiply floating-point number by integral power
+?C: of radix.
?C:.
?H:#$d_scalbn HAS_SCALBN /**/
?H:.
esac
case "$ldflags" in
+ *-fstack-protector-strong*)
+ case "$dflt" in
+ *-fstack-protector-strong*) ;; # Don't add it again
+ *) dflt="$dflt -fstack-protector-strong" ;;
+ esac
+ ;;
*-fstack-protector*)
case "$dflt" in
*-fstack-protector*) ;; # Don't add it again
?C: This symbol, if defined, contains the string used by stdio to
?C: format long doubles (format 'f') for input.
?C:.
+?C:DOUBLEKIND:
+?C: DOUBLEKIND will be one of
+?C: DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+?C: DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+?C: DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+?C: DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+?C: DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+?C: DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+?C: DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+?C: DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+?C: DOUBLE_IS_UNKNOWN_FORMAT
+?C:.
+?LINT:known DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+?LINT:known DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+?LINT:known DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+?LINT:known DOUBLE_IS_UNKNOWN_FORMAT
+?H:#define DOUBLEKIND $doublekind /**/
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
+?H:?DOUBLEKIND:#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+?H:?DOUBLEKIND:#define DOUBLE_IS_UNKNOWN_FORMAT -1
?H:#$d_PRIfldbl PERL_PRIfldbl $sPRIfldbl /**/
?H:#$d_PRIgldbl PERL_PRIgldbl $sPRIgldbl /**/
?H:#$d_PRIeldbl PERL_PRIeldbl $sPRIeldbl /**/
case "$yyy" in
123.456)
sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
- sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
+ sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
echo "We will use %f."
;;
esac
case "$yyy" in
123.456)
sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
- sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
+ sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
echo "We will use %Lf."
;;
esac
case "$yyy" in
123.456)
sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
- sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
+ sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
echo "We will use %llf."
;;
esac
case "$yyy" in
123.456)
sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
- sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
+ sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
echo "We will use %lf."
;;
esac
nvFUformat='"QF"'
nvGUformat='"QG"'
else
- if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
- nveformat="$sPRIeldbl"
- nvfformat="$sPRIfldbl"
- nvgformat="$sPRIgldbl"
- nvEUformat="$sPRIEUldbl"
- nvFUformat="$sPRIFUldbl"
- nvGUformat="$sPRIGUldbl"
- else
- nveformat='"e"'
- nvfformat='"f"'
- nvgformat='"g"'
- nvEUformat='"E"'
- nvFUformat='"F"'
- nvGUformat='"G"'
- fi
+ if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
+ nveformat="$sPRIeldbl"
+ nvfformat="$sPRIfldbl"
+ nvgformat="$sPRIgldbl"
+ nvEUformat="$sPRIEUldbl"
+ nvFUformat="$sPRIFUldbl"
+ nvGUformat="$sPRIGUldbl"
+ else
+ nveformat='"e"'
+ nvfformat='"f"'
+ nvgformat='"g"'
+ nvEUformat='"E"'
+ nvFUformat='"F"'
+ nvGUformat='"G"'
+ fi
fi
case "$ivdformat" in