This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Get in the last bunch of Configure changes
authorH.Merijn Brand - Tux <h.m.brand@xs4all.nl>
Thu, 20 Nov 2014 15:21:57 +0000 (16:21 +0100)
committerH.Merijn Brand - Tux <h.m.brand@xs4all.nl>
Thu, 20 Nov 2014 15:21:57 +0000 (16:21 +0100)
Also bring config_h.SH in sync

U/compline/ccflags.U
U/perl/Mksymlinks.U
U/perl/d_lc_monetary_2008.U [new file with mode: 0644]
U/perl/d_llrint.U
U/perl/d_prctl.U
U/perl/d_scalbn.U
U/perl/dlsrc.U
U/perl/longdblfio.U
U/perl/perlxvf.U

index caf6074..3049410 100644 (file)
@@ -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
index 16371eb..7885737 100644 (file)
@@ -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 (file)
index 0000000..86a268d
--- /dev/null
@@ -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
+
index 5dab0e5..a540157 100644 (file)
@@ -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               /**/
index caf3dde..f033ee3 100644 (file)
@@ -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
index 2c90d96..509e4ac 100644 (file)
@@ -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:.
index 692d532..bced30d 100644 (file)
@@ -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
index d655fc7..50dd516 100644 (file)
 ?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
index 68111f1..99421c0 100644 (file)
@@ -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