In perl.git, the branch blead has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/3d10fa085102a79a96d9e335384c3f56f3b6b9cc?hp=c4de53373c059dba8933ed1fed32f90a8ff2d0fb>

- Log -----------------------------------------------------------------
commit 3d10fa085102a79a96d9e335384c3f56f3b6b9cc
Merge: c4de53373c a54aca4b73
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 21 17:05:11 2017 +0100

    [MERGE] Rely on a C89 compiler
    
    We have claimed to need a C89 compiler for building since at least October 
1998
    (see commit 5effff0b18af479fcc5e67b74bc41c4bc53342f6). This branch finally
    makes good on that promise: we no longer probe for required features of C89
    (whether language features, cpp syntax, the presence or behaviour of library
    routines, or the availability or contents of header files).
    
    This permits substantial simplification of our header files, as well as
    a pleasing reduction in the size of the Configure script and the number of
    compilation probes it does.
    
    That said, this set of changes is a little conservative. Notably, I have not
    attempted to unpick our maze of malloc/free/realloc macros to rely on things
    like free(NULL); nor have I attempted to rely on adequate locale support 
(since
    AIUI the libc on Android in particular claims to have locale support but
    doesn't). It's also possible that I've simply missed some opportunities to
    simplify the code and/or Configure script, but I hope that we can 
collectively
    fix those as and when we discover them.
    
    These changes have been tested on the following platforms: Mac OS (gcc, 
clang),
    Linux (gcc), FreeBSD (gcc), Win32 (MSVC), HP/UX (HP C), and AIX (xlc).
    
    This work was undertaken at the Perl 5 Hackathon 2017. I thank the 
Hackathon's
    sponsors for making it possible for me to attend; I would not have been 
able to
    do this otherwise.

commit a54aca4b73c9f1159b75e9f3eb04745eb58cb485
Author: Aaron Crane <a...@cpan.org>
Date:   Wed Oct 18 19:34:45 2017 +0100

    perl.h: explicitly declare "environ" in more places
    
    Some systems declare environ in some situations; others never do. (BSD
    systems seem to fall into the latter category, for example.)
    
    Previously, we declared environ in the absence of the DONT_DECLARE_STD cpp
    symbol, but that symbol has now been removed (on the grounds that 
redeclaring
    system functions is typically unhelpful). But it probably shouldn't have 
been
    used to avoid declaring environ, because very few systems actually provide
    declarations for that variable.
    
    This change adds the environ declaration almost everywhere, on the grounds
    that even where the system headers do declare it, an additional declaration
    won't in fact hurt.

commit adf7d503e55721c500f0bf66560b8f5df7966fe7
Author: Aaron Crane <a...@cpan.org>
Date:   Tue Oct 17 17:36:33 2017 +0100

    pod/perlhacktips.pod: remove some outdated portability notes

commit d54fbe846a9f98aaae47d79e46490ecda6819fe0
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 16:26:48 2017 +0200

    Rely on C89 <string.h>
    
    This requires a corresponding change in the metaconfig units.

commit 81f9da18781fda785bd4c55602364ac5ce848a10
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 16:10:31 2017 +0200

    Don't attempt to use non-standard <memory.h>
    
    It's only needed on systems without C89 <string.h>, which we rely on anyway.

commit 6ff2ec7da32d2a2afeb2b1b0a1d5a78e2d573402
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:47:10 2017 +0200

    Rely on C89 <assert.h>

commit 7e0346596d505ad065530a113109ee0a1ff260e9
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:20:33 2017 +0200

    Rely on C89 <math.h>
    
    This requires a corresponding change in the metaconfig units.

commit 7eab73e249a1c03e84ac85f2162ddab4c4824ac5
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:11:22 2017 +0200

    Never attempt to redeclare standard functions

commit b78ed007fa9baa198c63557db888ec30e57d786e
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:43:38 2017 +0200

    Don't attempt to define or use STANDARD_C
    
    We rely on a C89 implementation anyway.

commit 3576247a261ea97b6808934dc3fba546f1afd2d5
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:39:07 2017 +0200

    Rely on C89 NULL

commit 96523a53aeb24ef2374ea899f3a1f4cc1045d355
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:03:01 2017 +0200

    Don't declare C89 realloc()
    
    The declaration is actually for PerlMem_realloc(), which is a macro for
    either realloc() or an indirection through the interpreter struct, depending
    on configuration — see iperlsys.h. If it's the indrection, this declaration
    will be a syntax error, so it must be in fact plain old realloc().
    
    The declaration is guarded with HAS_REALLOC_PROTOTYPE, which isn't actually
    defined or consulted anywhere else in the codebase.
    
    Since we require C89, there's no need for this — we #include <stdlib.h>, and
    therefore can assume realloc() exists.

commit b21d8587d6f2e56db4e5c64099cb03cbde2f8906
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:57:51 2017 +0200

    Rely on C89 strerror()
    
    This requires a corresponding change to the metaconfig units.

commit d1f9b933c88f298c6c0c5ed1dc3f9d46df8c05db
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:15:04 2017 +0200

    util.h: simplify cpp conditionals

commit 8ad758c71191a2a3db14a28ce222a611005ff638
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:09:26 2017 +0200

    util.c: simplify cpp conditionals

commit c2844c4f6a1ba1cbf34d6c06f58b8d248562ce50
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:56:37 2017 +0200

    thread.h: simplify cpp conditionals

commit 5026560c306ae1d85252d843f6e0de5860ef9589
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:52:05 2017 +0200

    sv.c: simplify cpp conditionals

commit 7ce6ba0fb5b8748b33b04f1e400a9fddded56dba
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:48:10 2017 +0200

    regen/reentr.pl: simplify cpp conditionals

commit 8d69850701e677ebcc44e4da724a7390bcd3ff09
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:42:16 2017 +0200

    pp_sys.c: simplify cpp conditionals

commit 41f35ffdd92bd0a58eb2563c365bd7654f371778
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:07:18 2017 +0200

    pp_pack.c: simplify cpp conditionals

commit d1a21e441b960b44c368ad603bfd9208ef8f60fb
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:55:26 2017 +0200

    pp_hot.c: simplify cpp conditionals

commit 4fda7c0cc8689dd812e767bd25a3a7a5bfee7b61
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:53:41 2017 +0200

    pp_ctl.c: simplify cpp conditionals

commit 00b6a411576ca1b1610e88c2ce54bb7278e94abc
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:51:50 2017 +0200

    pp.c: simplify cpp conditionals

commit faf558915f633171b621a29f5da0fcddd829a571
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 18:16:16 2017 +0200

    perlio.c: simplify cpp conditionals

commit da5fdda8009e6ea2085865e59ddbe437fa6ffd46
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 18:11:58 2017 +0200

    perl.h: simplify cpp conditionals

commit 760d86c454259bd93477b4f55cf3c89afa6ac054
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:42:54 2017 +0200

    Drop support for the hp9000s500 cpp symbol
    
    This includes changed metaconfig units which drop support in the same way.
    
    https://en.wikipedia.org/wiki/HP_9000 :
    
    > The HP 9000 brand was introduced in 1984 to encompass several existing
    > technical workstation models previously launched in the early 1980s. […]
    > The Series 500s were based on the HP FOCUS microprocessor. […] The 520 was
    > a complete workstation with built-in keyboard, display, 5.25-inch floppy
    > disk, and optional thermal printer and 5 MB hard disk. […] The processors
    > in the original Series 500s ran at 20 MHz, and could reach a benchmark
    > speed of 1 MIPS.
    
    https://en.wikipedia.org/wiki/HP_FOCUS :
    
    > The Hewlett-Packard FOCUS microprocessor, launched in 1982, was the
    > first commercial, single chip, fully 32-bit microprocessor available on
    > the market. […] The FOCUS […] was a stack architecture, with over 220
    > instructions (some 32 bits wide, some 16 bits wide), a segmented memory
    > model, and no general purpose programmer-visible registers.

commit e7ce59ca151467064a88cc8f60cf9cbcf76e2907
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:24:42 2017 +0200

    Delete useless references to DG/UX

commit 39bb759e785ba84a62265cffc0bbb850faf1b103
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:17:15 2017 +0200

    perl.c: simplify cpp conditionals

commit 0000db226ca2999be36123959cf44b594c5c8cf9
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:07:13 2017 +0200

    opcode.pl: simplify cpp conditionals
    
    This affects the generated opcode.h.

commit 0cbb9d6e5110600ac96ca9d7544c8956082ebf0f
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:03:32 2017 +0200

    numeric.c: simplify cpp conditionals

commit 2abc681d27f72f8a4ad94049b1ae16171521dd33
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:02:25 2017 +0200

    mg.c: simplify cpp conditionals

commit 059fd8e704532aaa45601f3f14cfbecd491672dd
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:55:55 2017 +0200

    malloc.c: simplify cpp conditionals

commit 6b0972d65bbd51275f93e75efff1274225f4f32c
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:54:44 2017 +0200

    malloc.c: don't redefine START_EXTERN_C from perl.h

commit 07798b1720f6b201696ab45bff7fa2f3f2781c43
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:44:08 2017 +0200

    handy.h: simplify cpp conditionals

commit 604645a653b1bdf4f641a2db6a777ac274626687
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:40:59 2017 +0200

    dosish.h: simplify cpp conditionals

commit fbaa6c64d983277fa97268284a1ab6dd2a02959a
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:34:23 2017 +0200

    EXTERN.h: simplify cpp conditionals

commit 4009c3ff1ea01581837a8fd419a882e219b298b8
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:30:05 2017 +0200

    doio.c: simplify cpp conditionals

commit d4bd48023fe0ba950fface5aa859b6852aa29fc4
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:20:21 2017 +0200

    vms/vmsish.h: move a function declaration from doio.c

commit fca5fb9612a125f48173bedf2c079778d7bc54dd
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:59:59 2017 +0200

    caretx.c: simplify cpp conditionals

commit f12ee906ec242232139e92b04197e9f8a17e3f27
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:56:07 2017 +0200

    XSUB.h: simplify cpp conditions using C89 "#elif"

commit 6ec488b3d495e8c0c86a29f0ef861dc81dcb504c
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:45:18 2017 +0200

    Rely on contents of C89 <limits.h>

commit 63b481b9190a4e9eac012ce7222e23c0fef1bac0
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:34:03 2017 +0200

    Simplify perl.h floating-point limits defines
    
    - Always include <float.h> and <limits.h>
    
    - Assume that the DBL_* constants are always available in <float.h> (though
      we still check for each LDBL_* constant individually)
    
    - Drop support for the undocumented OVR_DBL_DIG and OVR_LDBL_DIG
      preprocessor symbols
    
    - Use cpp "#elif"

commit be9d87ad962b0216d0ff92be75d90e3b36eeadb9
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:14:20 2017 +0200

    Don't try to use <values.h>
    
    All the information it contains can be gleaned more readily from C89
    <limits.h> and <float.h>.

commit edb450b123b6d0746d07c89cc1fe31426753497c
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 13:54:42 2017 +0200

    Rely on C89 <float.h> defining DBL_DIG
    
    I would like to be able to assume that we have long doubles, and therefore
    that LDBL_DIG and friends are all defined too. But it seems that we may
    still support some platforms which are otherwise C89, but don't have even
    trivial long-double support; in particular, HP/UX 10 apparently uses a
    struct of four uint32_t values as long double, but doesn't support other
    bits, and confuses the Configure probe that looks for quadmath.

commit b905af4c1158d6ce72032009e9f8387d5a5f5285
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 12:49:41 2017 +0200

    Rely on C89 <float.h>
    
    This requires newer metaconfig units that also rely on C89 <float.h>.

commit 350b922a8600b68529a55d5fcc05d4ebd9a45990
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 12:38:59 2017 +0200

    Rely on C89 <limits.h>
    
    This requires newer metaconfig units that also rely on C89 <limits.h>.

commit 9245da2a079b4997c421147be2ea97e85dad2589
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 11:18:10 2017 +0200

    Rely on C89 <time.h>
    
    The Configure script here was built from a metaconfig unit that also assumes
    <time.h> exists.

commit 1509effa50d0917578f8ab4dd412918cb11d6fcb
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 10:35:44 2017 +0200

    Rely on C89 strchr() and strrchr()
    
    This needs a metaconfig change that defangs the standard unit for finding
    strchr(), because that unit sees the uses of "index" and "rindex" (in files
    like keywords.c and opcode.h) as indicators that it must be used instead.

commit f1519f70705b2eee563b9ac4056d4eb39d383ea1
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 10:03:59 2017 +0200

    Rely on C89 sprintf() return value semantics

commit 03f3961765f87fb8bccb4e3fa5b9e2e533d7dc30
Author: Aaron Crane <a...@cpan.org>
Date:   Tue Oct 17 17:30:18 2017 +0100

    Use snprintf() in favour of sprintf()

commit 346712be0b77cf7a59cff19c5b96533d9a780268
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 09:25:14 2017 +0200

    Rely on C89 <stddef.h>

commit dd512de320cc50ddbfc3ce3ee4996367b911d983
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 09:16:17 2017 +0200

    Rely on C89 <stdlib.h>
    
    The Configure changes here were generated using a version of metaconfig
    that copies U/modified/i_stdlib.U from dist/U/vaproto.U, and changes it to
    unconditionally define the i_stdlib Configure variable. That variable is
    used by a large number of other Configure units, so it's not actually
    practical to try and remove the relevant unit entirely.

commit 9d82a2b71ca36a0f03ce4676aab0bada365292a9
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 00:55:41 2017 +0200

    Rely on C89 <stdarg.h>

commit 3d97541cde09d330e1c16246cbe085f4717abb01
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:50:15 2017 +0200

    Rely on C89 prototypes
    
    The Configure changes here were generated using a version of metaconfig
    that modifies the prototype.U and Protochk.U units to assume that C89
    prototypes work.

commit c9db53f47fcab6bc813d34e149444282f9aef29c
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 17:01:19 2017 +0200

    Don't pretend to determine whether ansi2knr is needed

commit 01f1810e38e276d92d051978043505422ee3211b
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:17:02 2017 +0200

    Rely on C89 variadic prototypes
    
    The Configure changes here were generated using a version of metaconfig
    that copies U/modified/vaproto.U from dist/U/vaproto.U, and changes it to
    refrain from promising to define a _V symbol (which would otherwise cause
    the relevant probe to included in Configure).

commit abaa7af6d89122e8180f976675a72244f6cf3f95
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:05:57 2017 +0200

    Configure: assume C89 headers in need_va_copy probe
    
    This matches a recent change to metaconfig.

commit edee246148d0f7e22ea026e09413d4bcc0cb51dd
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:56:12 2017 +0200

    Rely on C89 vprintf()

commit 3313a8602661409b390874b9b1bcd7de4c8455de
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:49:34 2017 +0200

    Rely on C89 sprintf() return type

commit 67aaef986388cb6322d74bf057ce4b2bf7ee15c0
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:44:29 2017 +0200

    Configure: assume C89 headers in d_c99_variadic_macros probe
    
    This matches a recent change to metaconfig.

commit e791399041815a1a45cea3c7f277c7045b96e51b
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:35:52 2017 +0200

    Rely on C89 snprintf()

commit 13d66b05c6163c3514774d3d11da5f3950e97e98
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:22:43 2017 +0200

    Rely on C89 vsnprintf()
    
    We assume it has the standard behaviour that, if the buffer is too short, it
    returns the desired buffer length.

commit 8162b70e63fb41df1eaf259c13d61d8b563cd7f5
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 16:26:56 2017 +0200

    Don't use VOL internally, because "volatile" works just fine
    
    However, we do preserve it outside PERL_CORE for the use of XS authors.

commit 516e10a9956d11346cdddceee7203ef7e6181dc0
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:46:20 2017 +0200

    Assume C89 "volatile" keyword
    
    The Configure changes here were generated using a version of metaconfig
    that makes U/perl/perlxv.U assume that the keyword exists, and prevents
    U/modified/d_volatile.U from promising to define a "volatile" keyword;
    otherwise, those units would bring in the relevant Configure probe anyway.

commit 6e876d890f021fe5f975eed6716986552e849b66
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:18:42 2017 +0200

    Assume we have C89 memchr()

commit e5d7f4e5fdc8fcb324745c39345b369ab04cadb1
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 14:31:56 2017 +0200

    Assume we have sane C89 memcmp()
    
    "Sane" means that it works correctly on bytes with their high bit set, as
    C89 also requires.
    
    We therefore no longer need to probe for and/or use BSD bcmp().

commit 6abb197755380da4c7221427281d6933762516a3
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:04:00 2017 +0200

    Drop support for PowerUX / Power MAX OS
    
    It is almost impossible to find any information about this platform on the
    internet, which strongly suggests that it's as dead as dead can be.

commit 1eb06a387814d96975ac806b89805b1e28e8080d
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 14:00:03 2017 +0200

    Assume we have C89 memcpy() and memmove()
    
    We can therefore also avoid probing for and/or using BSD bcopy().

commit 1c1d7d5ba0bc33e7bea0a9aeb2d420fc5a8128ab
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 13:47:22 2017 +0200

    Don't look for a "safe" memcpy()
    
    C89 says that, if you want to copy overlapping memory blocks, you must use
    memmove(), and that attempt to copy overlapping memory blocks using memcpy()
    yields undefined behaviour. So we should never even attempt to probe for a
    system memcpy() implementation that just happens to handle overlapping
    memory blocks. In particular, the compiler might compile the probe program
    in such a way that Configure thinks overlapping memcpy() works even when it
    doesn't.
    
    This has the additional advantage of removing a Configure probe that needs
    to execute a target-platform program on the build host.

commit 04322328fc4bc2863d0bc74339ed92d33b7eaba7
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 11:02:27 2017 +0200

    Assume we have C89 memset()
    
    This means we also never need to consider using BSD bzero().

commit 11568d10a6b3495b7a54f171d4134d8798fd64d6
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 10:33:33 2017 +0200

    Remove USE_STRUCT_COPY in favour of C89 struct assignment
    
    At least for now, we retain the StructCopy() macro, but its definition
    always just uses struct assignment.

-----------------------------------------------------------------------

Summary of changes:
 Configure                      | 1595 +++++++---------------------------------
 Cross/cflags-cross-arm         |    1 -
 Cross/config.sh-arm-linux      |   33 -
 Cross/config.sh-arm-linux-n770 |   32 -
 EXTERN.h                       |   20 +-
 INSTALL                        |   36 -
 MANIFEST                       |    2 -
 Makefile.micro                 |    3 +-
 NetWare/config.wc              |   33 -
 NetWare/config_H.wc            |  210 ------
 Porting/Glossary               |  178 -----
 Porting/config.sh              |   33 -
 Porting/config_H               |  263 -------
 XSUB.h                         |   26 +-
 caretx.c                       |   11 +-
 cflags.SH                      |    9 -
 config_h.SH                    |  267 +------
 configure.com                  |   38 -
 dist/IO/poll.c                 |    4 +-
 doio.c                         |   39 +-
 dosish.h                       |   42 +-
 embed.fnc                      |   18 +-
 embed.h                        |   12 -
 ext/File-Glob/bsd_glob.c       |    2 -
 ext/POSIX/POSIX.xs             |    9 -
 ext/POSIX/lib/POSIX.pm         |    2 +-
 ext/SDBM_File/dbe.c            |    8 +-
 ext/SDBM_File/dbu.c            |    5 -
 ext/SDBM_File/pair.c           |    7 +-
 ext/SDBM_File/pair.h           |   18 +-
 ext/SDBM_File/sdbm.c           |   22 +-
 ext/SDBM_File/sdbm.h           |  131 +---
 ext/re/re.pm                   |    2 +-
 ext/re/re.xs                   |    2 +-
 handy.h                        |   67 +-
 hints/catamount.sh             |    1 -
 hints/epix.sh                  |    1 -
 hints/genix.sh                 |    1 -
 hints/irix_4.sh                |    2 +-
 hints/irix_6.sh                |    6 -
 hints/mips.sh                  |    1 -
 hints/powerux.sh               |  218 ------
 hints/svr4.sh                  |    7 -
 hints/svr5.sh                  |    6 -
 hints/ultrix_4.sh              |    4 -
 intrpvar.h                     |    2 +-
 makedef.pl                     |    5 -
 malloc.c                       |   20 +-
 mg.c                           |   46 +-
 numeric.c                      |    6 +-
 op.c                           |    6 +-
 opcode.h                       |   12 +-
 perl.c                         |   36 +-
 perl.h                         |  808 ++++----------------
 perlio.c                       |   46 +-
 plan9/config.plan9             |  216 ------
 plan9/config_h.sample          |  222 ------
 plan9/config_sh.sample         |   33 -
 pod/perlembed.pod              |    2 +-
 pod/perlhacktips.pod           |   19 +-
 pod/perlport.pod               |    1 -
 pp.c                           |    8 +-
 pp_ctl.c                       |    6 +-
 pp_hot.c                       |   12 +-
 pp_pack.c                      |   22 +-
 pp_sys.c                       |  102 +--
 proto.h                        |   30 +-
 reentr.c                       |   30 +-
 regcomp.c                      |    4 +-
 regcomp.h                      |    2 +-
 regen/opcode.pl                |   12 +-
 regen/reentr.pl                |   10 +-
 sv.c                           |    6 +-
 symbian/config.sh              |   29 -
 t/op/sprintf.t                 |    4 +-
 t/run/switches.t               |    4 +-
 taint.c                        |    2 +-
 thread.h                       |   16 +-
 uconfig.h                      |  271 +------
 uconfig.sh                     |   32 -
 uconfig64.sh                   |   33 -
 util.c                         |  258 +------
 util.h                         |   24 +-
 vms/vmsish.h                   |    7 +-
 win32/config.ce                |   33 -
 win32/config.gc                |   31 -
 win32/config.vc                |   33 -
 win32/config_H.ce              |  230 ------
 win32/config_H.gc              |  263 -------
 win32/config_H.vc              |  263 -------
 win32/win32.h                  |    1 -
 91 files changed, 723 insertions(+), 5962 deletions(-)
 delete mode 100644 hints/genix.sh
 delete mode 100644 hints/powerux.sh

diff --git a/Configure b/Configure
index f984117741..43872c1f3e 100755
--- a/Configure
+++ b/Configure
@@ -336,7 +336,6 @@ rm_try=''
 afs=''
 afsroot=''
 alignbytes=''
-ansi2knr=''
 archlib=''
 archlibexp=''
 d_archlib=''
@@ -391,14 +390,11 @@ d_attribute_unused=''
 d_attribute_warn_unused_result=''
 d_printf_format_null=''
 d_backtrace=''
-d_bcmp=''
-d_bcopy=''
 d_builtin_choose_expr=''
 d_builtin_expect=''
 d_builtin_add_overflow=''
 d_builtin_mul_overflow=''
 d_builtin_sub_overflow=''
-d_bzero=''
 d_c99_variadic_macros=''
 d_casti32=''
 castflags=''
@@ -428,7 +424,6 @@ d_ctermid_r=''
 ctime_r_proto=''
 d_ctime_r=''
 d_cuserid=''
-d_dbl_dig=''
 d_dbminitproto=''
 d_difftime=''
 d_dir_dd_fd=''
@@ -665,13 +660,8 @@ d_mbrlen=''
 d_mbrtowc=''
 d_mbstowcs=''
 d_mbtowc=''
-d_memchr=''
-d_memcmp=''
-d_memcpy=''
 d_memmem=''
-d_memmove=''
 d_memrchr=''
-d_memset=''
 d_mkdir=''
 d_mkdtemp=''
 d_mkfifo=''
@@ -748,9 +738,6 @@ d_rename=''
 d_rint=''
 d_rmdir=''
 d_round=''
-d_safebcpy=''
-d_safemcpy=''
-d_sanemcmp=''
 d_sbrkproto=''
 d_scalbn=''
 d_scalbnl=''
@@ -820,8 +807,6 @@ d_signbit=''
 d_sigprocmask=''
 d_sigsetjmp=''
 usesitecustomize=''
-d_snprintf=''
-d_vsnprintf=''
 d_sockatmark=''
 d_sockatmarkproto=''
 d_ip_mreq=''
@@ -844,7 +829,6 @@ sockethdr=''
 socketlib=''
 d_socklen_t=''
 d_socks5_init=''
-d_sprintf_returns_strlen=''
 d_sqrtl=''
 d_srand48_r=''
 srand48_r_proto=''
@@ -871,12 +855,7 @@ stdio_bufsiz=''
 stdio_cnt=''
 stdio_filbuf=''
 stdio_ptr=''
-d_index=''
-d_strchr=''
 d_strcoll=''
-d_strctcpy=''
-d_strerrm=''
-d_strerror=''
 d_sysernlst=''
 d_syserrlst=''
 d_strerror_l=''
@@ -940,9 +919,6 @@ d_vfork=''
 usevfork=''
 d_voidsig=''
 signal_t=''
-d_volatile=''
-d_charvspr=''
-d_vprintf=''
 d_wait4=''
 d_waitpid=''
 d_wcscmp=''
@@ -985,7 +961,6 @@ html3dir=''
 html3direxp=''
 installhtml3dir=''
 i_arpainet=''
-i_assert=''
 i_bfd=''
 i_crypt=''
 db_hashtype=''
@@ -1003,7 +978,6 @@ i_dlfcn=''
 i_execinfo=''
 i_fcntl=''
 i_fenv=''
-i_float=''
 i_fp=''
 i_fp_class=''
 i_gdbm=''
@@ -1013,13 +987,10 @@ i_ieeefp=''
 i_inttypes=''
 i_langinfo=''
 i_libutil=''
-i_limits=''
 i_locale=''
 i_machcthr=''
 i_malloc=''
 i_mallocmalloc=''
-i_math=''
-i_memory=''
 i_mntent=''
 d_gdbm_ndbm_h_uses_prototypes=''
 d_gdbmndbm_h_uses_prototypes=''
@@ -1049,11 +1020,8 @@ i_quadmath=''
 i_shadow=''
 i_socks=''
 i_stdbool=''
-i_stddef=''
 i_stdint=''
 i_stdlib=''
-i_string=''
-strings=''
 i_sunmath=''
 i_sysaccess=''
 i_sysdir=''
@@ -1095,10 +1063,6 @@ timeincl=''
 i_unistd=''
 i_ustat=''
 i_utime=''
-i_values=''
-i_stdarg=''
-i_varargs=''
-i_varhdr=''
 i_vfork=''
 i_wchar=''
 d_inc_version_list=''
@@ -1260,7 +1224,6 @@ prefixexp=''
 installprivlib=''
 privlib=''
 privlibexp=''
-prototype=''
 ptrsize=''
 d_PRIXU64=''
 d_PRId64=''
@@ -1382,7 +1345,6 @@ usethreads=''
 incpath=''
 mips_type=''
 usrinc=''
-vaproto=''
 d_vendorarch=''
 installvendorarch=''
 vendorarch=''
@@ -5813,6 +5775,107 @@ mc_file=$1;
 shift;
 $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
 
+: stub, used only to satisfy other units
+i_stdlib='define'
+
+: check for lengths of integral types
+echo " "
+case "$intsize" in
+'')
+       echo "Checking to see how big your integers are..." >&4
+       $cat >try.c <<EOCP
+#include <stdio.h>
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+int main()
+{
+       printf("intsize=%d;\n", (int)sizeof(int));
+       printf("longsize=%d;\n", (int)sizeof(long));
+       printf("shortsize=%d;\n", (int)sizeof(short));
+       exit(0);
+}
+EOCP
+       set try
+       if eval $compile_ok && $run ./try > /dev/null; then
+               eval `$run ./try`
+               echo "Your integers are $intsize bytes long."
+               echo "Your long integers are $longsize bytes long."
+               echo "Your short integers are $shortsize bytes long."
+       else
+               $cat >&4 <<EOM
+!
+Help! I can't compile and run the intsize test program: please enlighten me!
+(This is probably a misconfiguration in your system or libraries, and
+you really ought to fix it.  Still, I'll try anyway.)
+!
+EOM
+               dflt=4
+               rp="What is the size of an integer (in bytes)?"
+               . ./myread
+               intsize="$ans"
+               dflt=$intsize
+               rp="What is the size of a long integer (in bytes)?"
+               . ./myread
+               longsize="$ans"
+               dflt=2
+               rp="What is the size of a short integer (in bytes)?"
+               . ./myread
+               shortsize="$ans"
+       fi
+       ;;
+esac
+$rm_try
+
+: check for long long
+echo " "
+echo "Checking to see if you have long long..." >&4
+echo 'int main() { long long x = 7; return 0; }' > try.c
+set try
+if eval $compile; then
+       val="$define"
+       echo "You have long long."
+else
+       val="$undef"
+       echo "You do not have long long."
+fi
+$rm_try
+set d_longlong
+eval $setvar
+
+: check for length of long long
+case "${d_longlong}${longlongsize}" in
+$define)
+       echo " "
+       echo "Checking to see how big your long longs are..." >&4
+       $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof(long long));
+    return(0);
+}
+EOCP
+       set try
+       if eval $compile_ok; then
+               longlongsize=`$run ./try`
+               echo "Your long longs are $longlongsize bytes long."
+       else
+               dflt='8'
+               echo " "
+               echo "(I can't seem to compile the test program.  Guessing...)"
+               rp="What is the size of a long long (in bytes)?"
+               . ./myread
+               longlongsize="$ans"
+       fi
+       if $test "X$longsize" = "X$longlongsize"; then
+               echo "(That isn't any different from an ordinary long.)"
+       fi
+       ;;
+esac
+$rm_try
+
 : determine filename position in cpp output
 echo " "
 echo "Computing filename position in cpp output for #include directives..." >&4
@@ -5925,108 +5988,6 @@ do set $yyy; var=$2; eval "was=\$$2";
        set $yyy; shift; shift; yyy=$@;
 done'
 
-: see if stdlib is available
-set stdlib.h i_stdlib
-eval $inhdr
-
-: check for lengths of integral types
-echo " "
-case "$intsize" in
-'')
-       echo "Checking to see how big your integers are..." >&4
-       $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
-       printf("intsize=%d;\n", (int)sizeof(int));
-       printf("longsize=%d;\n", (int)sizeof(long));
-       printf("shortsize=%d;\n", (int)sizeof(short));
-       exit(0);
-}
-EOCP
-       set try
-       if eval $compile_ok && $run ./try > /dev/null; then
-               eval `$run ./try`
-               echo "Your integers are $intsize bytes long."
-               echo "Your long integers are $longsize bytes long."
-               echo "Your short integers are $shortsize bytes long."
-       else
-               $cat >&4 <<EOM
-!
-Help! I can't compile and run the intsize test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it.  Still, I'll try anyway.)
-!
-EOM
-               dflt=4
-               rp="What is the size of an integer (in bytes)?"
-               . ./myread
-               intsize="$ans"
-               dflt=$intsize
-               rp="What is the size of a long integer (in bytes)?"
-               . ./myread
-               longsize="$ans"
-               dflt=2
-               rp="What is the size of a short integer (in bytes)?"
-               . ./myread
-               shortsize="$ans"
-       fi
-       ;;
-esac
-$rm_try
-
-: check for long long
-echo " "
-echo "Checking to see if you have long long..." >&4
-echo 'int main() { long long x = 7; return 0; }' > try.c
-set try
-if eval $compile; then
-       val="$define"
-       echo "You have long long."
-else
-       val="$undef"
-       echo "You do not have long long."
-fi
-$rm_try
-set d_longlong
-eval $setvar
-
-: check for length of long long
-case "${d_longlong}${longlongsize}" in
-$define)
-       echo " "
-       echo "Checking to see how big your long longs are..." >&4
-       $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof(long long));
-    return(0);
-}
-EOCP
-       set try
-       if eval $compile_ok; then
-               longlongsize=`$run ./try`
-               echo "Your long longs are $longlongsize bytes long."
-       else
-               dflt='8'
-               echo " "
-               echo "(I can't seem to compile the test program.  Guessing...)"
-               rp="What is the size of a long long (in bytes)?"
-               . ./myread
-               longlongsize="$ans"
-       fi
-       if $test "X$longsize" = "X$longlongsize"; then
-               echo "(That isn't any different from an ordinary long.)"
-       fi
-       ;;
-esac
-$rm_try
-
 : see if inttypes.h is available
 : we want a real compile instead of Inhdr because some systems
 : have an inttypes.h which includes non-existent headers
@@ -6922,10 +6883,6 @@ EOCP
 esac
 $rm_try
 
-: see if this is a float.h system
-set float.h i_float
-eval $inhdr
-
 : check for long doubles
 echo " "
 echo "Checking to see if you have long double..." >&4
@@ -6984,13 +6941,10 @@ $echo "Checking the kind of long doubles you have..." 
>&4
 case "$d_longdbl" in
 define)
 $cat <<EOP >try.c
-#$i_float I_FLOAT
 #$i_stdlib I_STDLIB
 #define LONGDBLSIZE $longdblsize
 #define DOUBLESIZE $doublesize
-#ifdef I_FLOAT
 #include <float.h>
-#endif
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
@@ -8123,52 +8077,6 @@ esac
 set d_perl_otherlibdirs
 eval $setvar
 
-: Cruising for prototypes
-echo " "
-echo "Checking out function prototypes..." >&4
-$cat >prototype.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main(int argc, char *argv[]) {
-       exit(0);}
-EOCP
-if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
-       echo "Your C compiler appears to support function prototypes."
-       val="$define"
-else
-       echo "Your C compiler doesn't seem to understand function prototypes."
-       val="$undef"
-fi
-set prototype
-eval $setvar
-$rm -f prototype*
-
-: Check if ansi2knr is required
-case "$prototype" in
-"$define") ;;
-*)     ansi2knr='ansi2knr'
-       echo " "
-       cat <<EOM >&4
-
-$me:  FATAL ERROR:
-This version of $package can only be compiled by a compiler that
-understands function prototypes.  Unfortunately, your C compiler
-       $cc $ccflags
-doesn't seem to understand them.  Sorry about that.
-
-If GNU cc is available for your system, perhaps you could try that instead.
-
-Eventually, we hope to support building Perl with pre-ANSI compilers.
-If you would like to help in that effort, please contact <perl...@perl.org>.
-
-Aborting Configure now.
-EOM
-       exit 2
-       ;;
-esac
-
 : DTrace support
 dflt_dtrace='/usr/sbin/dtrace'
 $test -x /usr/bin/dtrace && dflt_dtrace='/usr/bin/dtrace'
@@ -10137,46 +10045,6 @@ esac
 prefixvar=vendorscript
 . ./installprefix
 
-: script used to emit important warnings
-cat >warn <<EOS
-$startsh
-if test \$# -gt 0; then
-       echo "\$@" >msg
-else
-       cat >msg
-fi
-echo "*** WARNING:" >&4
-sed -e 's/^/*** /' <msg >&4
-echo "*** " >&4
-cat msg >>config.msg
-echo " " >>config.msg
-rm -f msg
-EOS
-chmod +x warn
-$eunicefix warn
-
-: see which of string.h or strings.h is needed
-echo " "
-strings=`./findhdr string.h`
-if $test "$strings" && $test -r "$strings"; then
-       echo "Using <string.h> instead of <strings.h>." >&4
-       val="$define"
-else
-       val="$undef"
-       strings=`./findhdr strings.h`
-       if $test "$strings" && $test -r "$strings"; then
-               echo "Using <strings.h> instead of <string.h>." >&4
-       else
-               ./warn "No string header found -- You'll surely have problems."
-       fi
-fi
-set i_string
-eval $setvar
-case "$i_string" in
-"$undef") strings=`./findhdr strings.h`;;
-*)       strings=`./findhdr string.h`;;
-esac
-
 : see if qgcvt exists
 set qgcvt d_qgcvt
 eval $inlibc
@@ -10533,12 +10401,7 @@ char *myname = "sprintf";
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
-#$i_string I_STRING
-#ifdef I_STRING
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif
+#include <string.h>
 
 int checkit(char *expect, char *got)
 {
@@ -10817,7 +10680,6 @@ $startsh
 cc="$cc"
 optimize="$optimize"
 ccflags="$ccflags"
-prototype="$prototype"
 define="$define"
 rm_try="$rm_try"
 usethreads=$usethreads
@@ -10845,13 +10707,8 @@ while test $# -ge 2; do
     fi
     shift 2
 done
-test "$prototype" = "$define"  && echo '#define CAN_PROTOTYPE' >> try.c
 cat >> try.c <<'EOCP'
-#ifdef CAN_PROTOTYPE
 #define        _(args) args
-#else
-#define        _(args) ()
-#endif
 EOCP
 echo "$foo" >> try.c
 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
@@ -10910,16 +10767,15 @@ set $varname;
 eval $setvar;
 $rm_try'
 
-: see if we should include time.h, sys/time.h, or both
+: see if we should include sys/time.h
 echo " "
+i_time='define'
 if test "X$timeincl" = X; then
-       echo "Testing to see if we should include <time.h>, <sys/time.h> or 
both." >&4
+       echo "Testing to see if we should include <sys/time.h>." >&4
        $echo $n "I'm now running the test program...$c"
        $cat >try.c <<EOCP
 #include <sys/types.h>
-#ifdef I_TIME
 #include <time.h>
-#endif
 #ifdef I_SYSTIME
 #ifdef SYSTIMEKERNEL
 #define KERNEL
@@ -10956,13 +10812,12 @@ EOCP
        sysselect=''
        for s_timeval in '-DS_TIMEVAL' ''; do
        for i_systimek in '' '-DSYSTIMEKERNEL'; do
-       for i_time in '' '-DI_TIME'; do
        for i_systime in '-DI_SYSTIME' ''; do
                case "$flags" in
                '') $echo $n ".$c"
-                       set try $i_time $i_systime $i_systimek $sysselect 
$s_timeval $s_timezone
+                       set try $i_systime $i_systimek $sysselect $s_timeval 
$s_timezone
                        if eval $compile; then
-                               set X $i_time $i_systime $i_systimek $sysselect 
$s_timeval
+                               set X $i_systime $i_systimek $sysselect 
$s_timeval
                                shift
                                flags="$*"
                                echo " "
@@ -10974,7 +10829,6 @@ EOCP
        done
        done
        done
-       done
        timeincl=''
        echo " "
        case "$flags" in
@@ -10984,12 +10838,6 @@ EOCP
        *) i_systimek="$undef";;
        esac
        case "$flags" in
-       *I_TIME*) i_time="$define"
-               timeincl=`./findhdr time.h`" $timeincl"
-               echo "We'll include <time.h>." >&4;;
-       *) i_time="$undef";;
-       esac
-       case "$flags" in
        *I_SYSTIME*) i_systime="$define"
                timeincl=`./findhdr sys/time.h`" $timeincl"
                echo "We'll include <sys/time.h>." >&4;;
@@ -11369,14 +11217,6 @@ set d_attribute_warn_unused_result
 eval $setvar
 $rm -f attrib*
 
-: see if bcmp exists
-set bcmp d_bcmp
-eval $inlibc
-
-: see if bcopy exists
-set bcopy d_bcopy
-eval $inlibc
-
 : see if getpgrp exists
 set getpgrp d_getpgrp
 eval $inlibc
@@ -11687,124 +11527,9 @@ set d_builtin_expect
 eval $setvar
 $rm_try
 
-: see if bzero exists
-set bzero d_bzero
-eval $inlibc
-
-: see if stdarg is available
-echo " "
-if $test `./findhdr stdarg.h`; then
-       echo "<stdarg.h> found." >&4
-       valstd="$define"
-else
-       echo "<stdarg.h> NOT found." >&4
-       valstd="$undef"
-fi
-
-: see if varargs is available
-echo " "
-if $test `./findhdr varargs.h`; then
-       echo "<varargs.h> found." >&4
-else
-       echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
-fi
-
-: set up the varargs testing programs
-$cat > varargs.c <<EOP
-#ifdef I_STDARG
-#include <stdarg.h>
-#endif
-#ifdef I_VARARGS
-#include <varargs.h>
-#endif
-
-#ifdef I_STDARG
-int f(char *p, ...)
-#else
-int f(va_alist)
-va_dcl
-#endif
-{
-       va_list ap;
-#ifndef I_STDARG
-       char *p;
-#endif
-#ifdef I_STDARG
-       va_start(ap,p);
-#else
-       va_start(ap);
-       p = va_arg(ap, char *);
-#endif
-       va_end(ap);
-       return 0;
-}
-EOP
-$cat > varargs <<EOP
-$startsh
-if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
-       echo "true"
-else
-       echo "false"
-fi
-$rm -f varargs$_o
-EOP
-chmod +x varargs
-
-: now check which varargs header should be included
-echo " "
-i_varhdr=''
-val=''
-case "$valstd" in
-"$define")
-       if `./varargs I_STDARG`; then
-               val='stdarg.h'
-       elif `./varargs I_VARARGS`; then
-               val='varargs.h'
-       fi
-       ;;
-*)
-       if `./varargs I_VARARGS`; then
-               val='varargs.h'
-       fi
-       ;;
-esac
-case "$val" in
-'')
-       echo " "
-       echo "*** WHOA THERE!!! ***" >&4
-       echo "    Your C compiler \"$cc\" doesn't seem to support stdarg or 
varargs!" >&4
-       case "$knowitall" in
-       '')
-       echo "    I'm giving up; maybe you can try again with a different 
compiler?" >&4
-               exit 1
-               ;;
-       esac
-echo "I could not find the definition for va_dcl... You have problems..." >&4
-       val="$undef"; set i_stdarg; eval $setvar
-       val="$undef"; set i_varargs; eval $setvar
-       ;;
-*)
-       set i_varhdr
-       eval $setvar
-       case "$i_varhdr" in
-       stdarg.h)
-               val="$define"; set i_stdarg; eval $setvar
-               val="$undef"; set i_varargs; eval $setvar
-               ;;
-       varargs.h)
-               val="$undef"; set i_stdarg; eval $setvar
-               val="$define"; set i_varargs; eval $setvar
-               ;;
-       esac
-       echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
-esac
-$rm -f varargs*
-
 : see if the Compiler supports C99 variadic macros
-case "$i_stdarg$i_stdlib" in
-    "$define$define")
-    echo "You have <stdarg.h> and <stdlib.h>, so checking for C99 variadic 
macros." >&4
-    $cat >try.c <<EOCP
+echo "Checking for C99 variadic macros." >&4
+$cat >try.c <<EOCP
 #include <stdio.h>
 #include <stdarg.h>
 
@@ -11817,29 +11542,23 @@ int main() {
   return 0;
 }
 EOCP
-    set try
-    if eval $compile && $run ./try 2>&1 >/dev/null; then
-       case "`$run ./try`" in
-           "123 456 789")
-           echo "You have C99 variadic macros." >&4
-           d_c99_variadic_macros="$define"
-           ;;
-           *)
-           echo "You don't have functional C99 variadic macros." >&4
-           d_c99_variadic_macros="$undef"
-           ;;
-       esac
-    else
-       echo "I couldn't compile and run the test program, so I assume that you 
don't have functional C99 variadic macros." >&4
+set try
+if eval $compile && $run ./try 2>&1 >/dev/null; then
+    case "`$run ./try`" in
+       "123 456 789")
+       echo "You have C99 variadic macros." >&4
+       d_c99_variadic_macros="$define"
+       ;;
+       *)
+       echo "You don't have functional C99 variadic macros." >&4
        d_c99_variadic_macros="$undef"
-    fi
-    $rm_try
-    ;;
-    *)
-    echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 
variadic macros." >&4
+       ;;
+    esac
+else
+    echo "I couldn't compile and run the test program, so I assume that you 
don't have functional C99 variadic macros." >&4
     d_c99_variadic_macros="$undef"
-    ;;
-esac
+fi
+$rm_try
 
 : see if signal is declared as pointer to function returning int or void
 echo " "
@@ -12052,87 +11771,6 @@ $rm_try
 set cbrt d_cbrt
 eval $inlibc
 
-: see if vprintf exists
-echo " "
-if set vprintf val -f d_vprintf; eval $csym; $val; then
-       echo 'vprintf() found.' >&4
-       val="$define"
-       $cat >try.c <<EOF
-#$i_stdarg I_STDARG  /* Only one of these can be defined by i_varhrd */
-#$i_varargs I_VARARGS
-
-#$i_stdlib I_STDLIB
-#$i_unistd I_UNISTD
-
-#ifdef I_STDARG
-#  include <stdarg.h>
-#else /* I_VARARGS */
-#  include <varargs.h>
-#endif
-
-#ifdef I_UNISTD
-#  include <unistd.h>
-#endif
-
-#ifdef I_STDLIB
-#  include <stdlib.h>
-#endif
-
-#include <stdio.h> /* vsprintf prototype */
-
-#ifdef I_STDARG
-void xxx(int n, ...)
-{
-    va_list args;
-    char buf[10];
-    va_start(args, n);
-    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
-}
-int main() { xxx(1, "foo"); }
-
-#else /* I_VARARGS */
-
-xxx(va_alist)
-va_dcl
-{
-    va_list args;
-    char buf[10];
-    va_start(args);
-    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
-}
-int main() { xxx("foo"); }
-
-#endif
-
-EOF
-       set try
-       if eval $compile_ok; then
-               if $run ./try; then
-                       echo "Your vsprintf() returns (int)." >&4
-                       val2="$undef"
-               else
-                       echo "Your vsprintf() returns (char*)." >&4
-                       val2="$define"
-               fi
-       else
-               echo 'I am unable to compile the vsprintf() test program.' >&4
-               # We shouldn't get here.  If we do, assume the standard 
signature,
-               # not the old BSD one.
-               echo 'Guessing that vsprintf() returns (int).' >&4
-               val2="$undef"
-       fi
-else
-       echo 'vprintf() NOT found.' >&4
-       val="$undef"
-       val2="$undef"
-fi
-$rm_try
-set d_vprintf
-eval $setvar
-val=$val2
-set d_charvspr
-eval $setvar
-
 : see if chown exists
 set chown d_chown
 eval $inlibc
@@ -12626,37 +12264,6 @@ esac
 set cuserid d_cuserid
 eval $inlibc
 
-: see if this is a limits.h system
-set limits.h i_limits
-eval $inhdr
-
-: See if number of significant digits in a double precision number is known
-echo " "
-$cat >dbl_dig.c <<EOM
-#$i_limits I_LIMITS
-#$i_float I_FLOAT
-#ifdef I_LIMITS
-#include <limits.h>
-#endif
-#ifdef I_FLOAT
-#include <float.h>
-#endif
-#ifdef DBL_DIG
-printf("Contains DBL_DIG");
-#endif
-EOM
-$cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
-if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
-       echo "DBL_DIG found." >&4
-       val="$define"
-else
-       echo "DBL_DIG NOT found." >&4
-       val="$undef"
-fi
-$rm -f dbl_dig.?
-set d_dbl_dig
-eval $setvar
-
 : see if dbm.h is available
 : see if dbmclose exists
 set dbmclose d_dbmclose
@@ -12829,14 +12436,10 @@ $cat >dirfd.c <<EOM
 #include <sys/ndir.h>
 #else
 #ifdef I_SYS_DIR
-#ifdef hp9000s500
-#include <ndir.h>      /* may be wrong in the future */
-#else
 #include <sys/dir.h>
 #endif
 #endif
 #endif
-#endif
 int main() {
        DIR *dirp = opendir(".");
        if (dirfd(dirp) >= 0)
@@ -13648,12 +13251,7 @@ extern int errno;
 #ifdef I_UNISTD
 #include <unistd.h>
 #endif
-#$i_string I_STRING
-#ifdef I_STRING
 #include <string.h>
-#else
-#include <strings.h>
-#endif
 $signal_t blech(int x) { exit(3); }
 EOCP
        $cat >> try.c <<'EOCP'
@@ -14320,17 +13918,10 @@ eval $inlibc
 set fp_class d_fp_class
 eval $inlibc
 
-: see if this is a math.h system
-set math.h i_math
-eval $inhdr
-
 : check for fpclassify
 echo "Checking to see if you have fpclassify..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return fpclassify(1.0) == FP_NORMAL ? 0 : 1; }
 EOCP
 set try
@@ -16064,39 +15655,6 @@ eval $inlibc
 set ilogbl d_ilogbl
 eval $inlibc
 
-: index or strchr
-echo " "
-if set index val -f; eval $csym; $val; then
-       if set strchr val -f d_strchr; eval $csym; $val; then
-               if $contains strchr "$strings" >/dev/null 2>&1 ; then
-                       val="$define"
-                       vali="$undef"
-                       echo "strchr() found." >&4
-               else
-                       val="$undef"
-                       vali="$define"
-                       echo "index() found." >&4
-               fi
-       else
-               val="$undef"
-               vali="$define"
-               echo "index() found." >&4
-       fi
-else
-       if set strchr val -f d_strchr; eval $csym; $val; then
-               val="$define"
-               vali="$undef"
-               echo "strchr() found." >&4
-       else
-               echo "No index() or strchr() found!" >&4
-               val="$undef"
-               vali="$undef"
-       fi
-fi
-set d_strchr; eval $setvar
-val="$vali"
-set d_index; eval $setvar
-
 : check whether inet_aton exists
 set inet_aton d_inetaton
 eval $inlibc
@@ -16165,10 +15723,7 @@ $rm -f isblank*
 : check for isfinite
 echo "Checking to see if you have isfinite..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isfinite(0.0); }
 EOCP
 set try
@@ -16190,10 +15745,7 @@ eval $inlibc
 : check for isinf
 echo "Checking to see if you have isinf..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isinf(0.0); }
 EOCP
 set try
@@ -16215,10 +15767,7 @@ eval $inlibc
 : check for isless
 echo "Checking to see if you have isless..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isless(0.0); }
 EOCP
 set try
@@ -16236,10 +15785,7 @@ eval $setvar
 : check for isnan
 echo "Checking to see if you have isnan..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isnan(0.0); }
 EOCP
 set try
@@ -16261,10 +15807,7 @@ eval $inlibc
 : check for isnormal
 echo "Checking to see if you have isnormal..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isnormal(0.0); }
 EOCP
 set try
@@ -16351,14 +15894,8 @@ eval $setvar
 : See if number of significant digits in a double precision number is known
 echo " "
 $cat >ldbl_dig.c <<EOM
-#$i_limits I_LIMITS
-#$i_float I_FLOAT
-#ifdef I_LIMITS
 #include <limits.h>
-#endif
-#ifdef I_FLOAT
 #include <float.h>
-#endif
 #ifdef LDBL_DIG
 printf("Contains LDBL_DIG");
 #endif
@@ -16385,11 +15922,9 @@ eval $inlibc
 
 : check to see if math.h defines _LIB_VERSION
 d_libm_lib_version="$undef"
-case $i_math in
-    $define)
-       echo " "
-       echo "Checking to see if your libm supports _LIB_VERSION..." >&4
-       $cat >try.c <<EOCP
+echo " "
+echo "Checking to see if your libm supports _LIB_VERSION..." >&4
+$cat >try.c <<EOCP
 #include <unistd.h>
 #include <math.h>
 int main (int argc, char *argv[])
@@ -16398,18 +15933,15 @@ int main (int argc, char *argv[])
     return (0);
     } /* main */
 EOCP
-       set try
-       if eval $compile; then
-           foo=`$run ./try`
-           echo "Yes, it does ($foo)" >&4
-           d_libm_lib_version="$define"
-       else
-           echo "No, it does not (probably harmless)" >&4
-           fi
-       $rm_try
-       ;;
-
-    esac
+set try
+if eval $compile; then
+    foo=`$run ./try`
+    echo "Yes, it does ($foo)" >&4
+    d_libm_lib_version="$define"
+else
+    echo "No, it does not (probably harmless)" >&4
+    fi
+$rm_try
 
 : see if link exists
 set link d_link
@@ -16491,7 +16023,6 @@ REENTRANT_PROTO*)
 #$i_unistd     I_UNISTD
 #$i_time       I_TIME
 #$i_stdlib     I_STDLIB
-#$i_string     I_STRING
 #$i_malloc     I_MALLOC
 #ifdef I_SYS_TYPES
 #  include <sys/types.h>
@@ -16505,11 +16036,7 @@ REENTRANT_PROTO*)
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
-#ifdef I_STRING
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif
+#include <string.h>
 #ifdef I_MALLOC
 #  include <malloc.h>
 #endif
@@ -16627,34 +16154,14 @@ eval $inlibc
 set mbtowc d_mbtowc
 eval $inlibc
 
-: see if memchr exists
-set memchr d_memchr
-eval $inlibc
-
-: see if memcmp exists
-set memcmp d_memcmp
-eval $inlibc
-
-: see if memcpy exists
-set memcpy d_memcpy
-eval $inlibc
-
 : see if memmem exists
 set memmem d_memmem
 eval $inlibc
 
-: see if memmove exists
-set memmove d_memmove
-eval $inlibc
-
 : see if memrchr exists
 set memrchr d_memrchr
 eval $inlibc
 
-: see if memset exists
-set memset d_memset
-eval $inlibc
-
 : see if mkdir exists
 set mkdir d_mkdir
 eval $inlibc
@@ -16724,7 +16231,7 @@ eval $inlibc
 
 : see if prototype for modfl is available
 echo " "
-set d_modflproto modfl $i_math math.h
+set d_modflproto modfl define math.h
 eval $hasproto
 
 if $test "$uselongdouble" = "$define"; then
@@ -16880,37 +16387,6 @@ eval $inlibc
 set quadmath.h i_quadmath
 eval $inhdr
 
-: check for volatile keyword
-echo " "
-echo 'Checking to see if your C compiler knows about "volatile"...' >&4
-$cat >try.c <<'EOCP'
-int main()
-{
-       typedef struct _goo_struct goo_struct;
-       goo_struct * volatile goo = ((goo_struct *)0);
-       struct _goo_struct {
-               long long_int;
-               int reg_int;
-               char char_var;
-       };
-       typedef unsigned short foo_t;
-       char *volatile foo;
-       volatile int bar;
-       volatile foo_t blech;
-       foo = foo;
-}
-EOCP
-if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
-       val="$define"
-       echo "Yup, it does."
-else
-       val="$undef"
-       echo "Nope, it doesn't."
-fi
-set d_volatile
-eval $setvar
-$rm_try
-
 : Check basic sizes
 echo " "
 $echo "Choosing the C types to be used for Perl's internal types..." >&4
@@ -17104,10 +16580,6 @@ case "$i64type" in
 esac
 
 $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
@@ -17117,7 +16589,8 @@ $cat <<EOP >try.c
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif
 int main() {
@@ -17168,10 +16641,6 @@ esac
 $rm_try
 
 $echo "Checking to find the largest integer value your NVs can hold..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 
@@ -17183,10 +16652,11 @@ main() {
   int count = 1;
 
   while(count < 256) {
-    $volatile NV up = value + 1.0;
-    $volatile NV negated = -value;
-    $volatile NV down = negated - 1.0;
-    $volatile NV got_up = up - value;
+    /* volatile so that the compiler has to store it out to memory */
+    volatile NV up = value + 1.0;
+    volatile NV negated = -value;
+    volatile NV down = negated - 1.0;
+    volatile NV got_up = up - value;
     int up_good = got_up == 1.0;
     int got_down = down - negated;
     int down_good = got_down == -1.0;
@@ -17251,26 +16721,18 @@ fi
 $rm_try
 
 $echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
-#$i_string I_STRING
-#ifdef I_STRING
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif
+#include <string.h>
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif
 
@@ -17815,321 +17277,91 @@ case "$d_readdir_r" in
        case "$readdir_r_proto" in
        ''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);'
        ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TSR ;;
-       esac
-       case "$readdir_r_proto" in
-       ''|0) try='int readdir_r(DIR*, struct dirent*);'
-       ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TS ;;
-       esac
-       case "$readdir_r_proto" in
-       ''|0)   d_readdir_r=undef
-               readdir_r_proto=0
-               echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
-       * )     case "$readdir_r_proto" in
-               REENTRANT_PROTO*) ;;
-               *) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;;
-               esac
... 11149 lines suppressed ...

-- 
Perl5 Master Repository

Reply via email to