In metaconfig.git, the branch master has been updated <http://perl5.git.perl.org/metaconfig.git/commitdiff/06ccdaa8cdc72982dd275d62c6d002da4588b91f?hp=0e620fbb347b7bf10ec2459f3646808509a30c3c>
- Log ----------------------------------------------------------------- commit 06ccdaa8cdc72982dd275d62c6d002da4588b91f Author: H.Merijn Brand - Tux <[email protected]> Date: Thu Nov 20 16:21:57 2014 +0100 Get in the last bunch of Configure changes Also bring config_h.SH in sync ----------------------------------------------------------------------- Summary of changes: U/compline/ccflags.U | 15 ++++++++++++++- U/perl/Mksymlinks.U | 47 ++++++++++++++++++++++++--------------------- U/perl/d_lc_monetary_2008.U | 40 ++++++++++++++++++++++++++++++++++++++ U/perl/d_llrint.U | 2 +- U/perl/d_prctl.U | 2 ++ U/perl/d_scalbn.U | 3 ++- U/perl/dlsrc.U | 6 ++++++ U/perl/longdblfio.U | 39 +++++++++++++++++++++++++++++++++---- U/perl/perlxvf.U | 30 ++++++++++++++--------------- 9 files changed, 140 insertions(+), 44 deletions(-) create mode 100644 U/perl/d_lc_monetary_2008.U diff --git a/U/compline/ccflags.U b/U/compline/ccflags.U index caf6074..3049410 100644 --- a/U/compline/ccflags.U +++ b/U/compline/ccflags.U @@ -232,8 +232,15 @@ default|recommended) # 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 ;; @@ -384,6 +391,12 @@ case "$ldflags" in 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 diff --git a/U/perl/Mksymlinks.U b/U/perl/Mksymlinks.U index 16371eb..7885737 100644 --- a/U/perl/Mksymlinks.U +++ b/U/perl/Mksymlinks.U @@ -9,7 +9,7 @@ ?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 @@ -21,38 +21,41 @@ $define|true|[yY]*) *) 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 diff --git a/U/perl/d_lc_monetary_2008.U b/U/perl/d_lc_monetary_2008.U new file mode 100644 index 0000000..86a268d --- /dev/null +++ b/U/perl/d_lc_monetary_2008.U @@ -0,0 +1,40 @@ +?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 + diff --git a/U/perl/d_llrint.U b/U/perl/d_llrint.U index 5dab0e5..a540157 100644 --- a/U/perl/d_llrint.U +++ b/U/perl/d_llrint.U @@ -9,7 +9,7 @@ ?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 /**/ diff --git a/U/perl/d_prctl.U b/U/perl/d_prctl.U index caf3dde..f033ee3 100644 --- a/U/perl/d_prctl.U +++ b/U/perl/d_prctl.U @@ -19,6 +19,8 @@ ?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 diff --git a/U/perl/d_scalbn.U b/U/perl/d_scalbn.U index 2c90d96..509e4ac 100644 --- a/U/perl/d_scalbn.U +++ b/U/perl/d_scalbn.U @@ -9,7 +9,8 @@ ?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:. diff --git a/U/perl/dlsrc.U b/U/perl/dlsrc.U index 692d532..bced30d 100644 --- a/U/perl/dlsrc.U +++ b/U/perl/dlsrc.U @@ -304,6 +304,12 @@ EOM 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 diff --git a/U/perl/longdblfio.U b/U/perl/longdblfio.U index d655fc7..50dd516 100644 --- a/U/perl/longdblfio.U +++ b/U/perl/longdblfio.U @@ -120,6 +120,37 @@ ?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 /**/ @@ -241,7 +272,7 @@ EOCP 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 @@ -263,7 +294,7 @@ EOCP 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 @@ -285,7 +316,7 @@ EOCP 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 @@ -307,7 +338,7 @@ EOCP 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 diff --git a/U/perl/perlxvf.U b/U/perl/perlxvf.U index 68111f1..99421c0 100644 --- a/U/perl/perlxvf.U +++ b/U/perl/perlxvf.U @@ -159,21 +159,21 @@ if $test X"$usequadmath" = X"$define"; then 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 -- perl5 metaconfig repository
