summaryrefslogtreecommitdiff
path: root/config_h.SH
Commit message (Collapse)AuthorAgeFilesLines
* Restore ability to build on platforms without snprintf()Aaron Crane2017-11-181-0/+11
| | | | | | | | | | | | | C89 does not in fact define snprintf() or vsnprintf(), and we must therefore probe for the existence of those functions before trying to use them. khw++ for pointing out my earlier error. This reverts part or all of each of the following commits: 13d66b05c6163c3514774d3d11da5f3950e97e98 Rely on C89 vsnprintf() e791399041815a1a45cea3c7f277c7045b96e51b Rely on C89 snprintf() adf7d503e55721c500f0bf66560b8f5df7966fe7 pod/perlhacktips.pod: remove some outdated portability notes
* Rely on C89 <string.h>Aaron Crane2017-10-211-6/+0
| | | | This requires a corresponding change in the metaconfig units.
* Don't attempt to use non-standard <memory.h>Aaron Crane2017-10-211-6/+0
| | | | It's only needed on systems without C89 <string.h>, which we rely on anyway.
* Rely on C89 <assert.h>Aaron Crane2017-10-211-6/+0
|
* Rely on C89 <math.h>Aaron Crane2017-10-211-6/+0
| | | | This requires a corresponding change in the metaconfig units.
* Rely on C89 strerror()Aaron Crane2017-10-211-12/+0
| | | | This requires a corresponding change to the metaconfig units.
* Don't try to use <values.h>Aaron Crane2017-10-211-8/+0
| | | | | All the information it contains can be gleaned more readily from C89 <limits.h> and <float.h>.
* Rely on C89 <float.h> defining DBL_DIGAaron Crane2017-10-211-8/+0
| | | | | | | | | 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.
* Rely on C89 <float.h>Aaron Crane2017-10-211-7/+0
| | | | This requires newer metaconfig units that also rely on C89 <float.h>.
* Rely on C89 <limits.h>Aaron Crane2017-10-211-15/+8
| | | | This requires newer metaconfig units that also rely on C89 <limits.h>.
* Rely on C89 <time.h>Aaron Crane2017-10-211-2/+2
| | | | | The Configure script here was built from a metaconfig unit that also assumes <time.h> exists.
* Rely on C89 strchr() and strrchr()Aaron Crane2017-10-211-12/+0
| | | | | | 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.
* Rely on C89 sprintf() return value semanticsAaron Crane2017-10-211-8/+0
|
* Rely on C89 <stddef.h>Aaron Crane2017-10-211-6/+0
|
* Rely on C89 <stdlib.h>Aaron Crane2017-10-211-6/+0
| | | | | | | | 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.
* Rely on C89 <stdarg.h>Aaron Crane2017-10-211-11/+0
|
* Rely on C89 prototypesAaron Crane2017-10-211-18/+0
| | | | | | 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.
* Rely on C89 variadic prototypesAaron Crane2017-10-211-22/+0
| | | | | | | 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).
* Rely on C89 vprintf()Aaron Crane2017-10-211-14/+0
|
* Rely on C89 snprintf()Aaron Crane2017-10-211-11/+0
|
* Assume C89 "volatile" keywordAaron Crane2017-10-211-9/+0
| | | | | | | 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.
* Assume we have C89 memchr()Aaron Crane2017-10-211-6/+0
|
* Assume we have sane C89 memcmp()Aaron Crane2017-10-211-19/+0
| | | | | | | "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().
* Assume we have C89 memcpy() and memmove()Aaron Crane2017-10-211-28/+0
| | | | We can therefore also avoid probing for and/or using BSD bcopy().
* Don't look for a "safe" memcpy()Aaron Crane2017-10-211-8/+0
| | | | | | | | | | | | | 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.
* Assume we have C89 memset()Aaron Crane2017-10-211-12/+0
| | | | This means we also never need to consider using BSD bzero().
* Remove USE_STRUCT_COPY in favour of C89 struct assignmentAaron Crane2017-10-211-7/+0
| | | | | At least for now, we retain the StructCopy() macro, but its definition always just uses struct assignment.
* Add new Configure probesH.Merijn Brand2017-10-211-13/+77
| | | | | | | This is a merge off several new probes in metaconfig done in the new shared developing environment by several authors Thanks to all that contributed!
* Finish adding memrchr Configure probeDagfinn Ilmari Mannsåker2017-10-131-0/+7
| | | | | Commit 1e436e33 accidentally added the probe to Configure, this finishes the job by regenerating Glossary, config_h.SH and friends.
* regen Configure and friends after backportsH.Merijn Brand2017-09-191-32/+28
|
* add probes for openat, unlinkat, renameat, linkat and fchmodatTony Cook2017-09-111-0/+25
|
* Remove "." from default @INC when default_inc_excludes_dot is setH.Merijn Brand2016-11-111-0/+6
| | | | | | | | | | | | | | | | Perl now provides a way to build perl without . in @INC by default. If you want this feature, you can build with -Ddefault_inc_excludes_dot Because the testing / make process for perl modules do not function well with . missing from @INC, Perl now supports the environment variable PERL_USE_UNSAFE_INC=1 which makes Perl behave as it previously did, returning . to @INC in all child processes. WARNING: PERL_USE_UNSAFE_INC has been provided during the perl 5.25 development cycle and is not guaranteed to function in perl 5.26. Update unit tests and default value files to work with the new %Config variable "default_inc_excludes_dot"
* Re-gen after backport with serious fixesH.Merijn Brand2016-11-111-14/+14
|
* Configure: add defs summarizing doublekind/longdblkindJarkko Hietaniemi2016-10-281-0/+69
| | | | | | | | | | For windows/netware It seems that many of the recent fp definitions have not been yet copied over there [1] [2], so went mostly by dead reckoning [3]. [1] Note that many of them are not absolutely necessary for building. [2] The proper updating involves doing stuff in win32, which I do not have. [3] As far as I can tell, Windows CE does not really not have long double.
* Add scan for IBM and Cray mainframe fp formats.Jarkko Hietaniemi2016-10-171-0/+6
| | | | | | | | | | | For completeness: it's quite unlikely Perl would build in those environments. Though with Cray it's less impossible: Perl used to build in C90 UNICOS, in 5.8-ish timeframe. With IBM, highly unlikely, because there probably never was a UNIXy enough environment where the IBM Floating Point Architecture was used.
* Add probe for gai_strerrorH.Merijn Brand2016-08-111-0/+7
|
* Follow-up from backporting workH.Merijn Brand2016-07-281-0/+1
|
* Force inclusion of I_XLOCALE until it is actually usedH.Merijn Brand2016-07-281-0/+5
|
* Configure: VAX format HJarkko Hietaniemi2016-07-271-0/+1
|
* VAX: Configure changes for VAX floatsJarkko Hietaniemi2016-07-011-0/+6
| | | | | | | | | | | | | Detect the VAX floating point formats D and G. And the F float, but that is float (duh), never likely to be the double, but do it for consistency (we detect IEEE single precision floats, too). The T float and X float are the IEEE 64-bit and 128-bit, but those were available only on the Alpha. Tested on vax-netbsd.
* Add Configure probe for strerror_l()Aaron Crane2016-06-021-0/+7
| | | | | | | | | As requested by khw++ Until the relevant symbol is used, HAS_STRERROR_L must be mentioned explicitly in metaconfig.h. This corresponds to metaconfig d0838744f03cfe7642950ea91dd48f575d0bfd15.
* Add Configure probe for querylocale()Aaron Crane2016-06-021-0/+5
| | | | | | | | | As requested by khw++ Until the relevant symbol is used, HAS_QUERYLOCALE must be mentioned explicitly in metaconfig.h. This corresponds to metaconfig 541f0dd272df4f9326996727898393ac8f6626f7.
* Rebuild Configure from current metaconfigAaron Crane2016-06-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Relevant changes: commit 5d3ffa97290d2d3d65a42a0ed8b69d945b661ee7 Author: H.Merijn Brand - Tux <h.m.brand@xs4all.nl> Date: Sun May 29 15:30:33 2016 +0200 Finish.U isn't modified anymore All changes accepted by upstream. One down, 164 to go commit 5d805d83bd4663831594540ddadeeb6213d19736 Author: H.Merijn Brand - Tux <h.m.brand@xs4all.nl> Date: Sat May 14 18:48:26 2016 +0200 Remove trailing whitespace on meta-lines in unit files This change has also been proposed as PR to dist upstream commit b9807b5fe3f4c97fa34e19b8a9b265f91f0e4aca Author: H.Merijn Brand - Tux <h.m.brand@xs4all.nl> Date: Sat May 14 18:30:03 2016 +0200 Merged changes to Finish.U
* Regenerate Configure and related parts after backportsAaron Crane2016-04-231-1525/+1525
| | | | | perl5.git is now in sync with metaconfig.git commit 7c34fa4e8142642c6e2978f0307e925898465f58
* Bring Configure back into sync again with metaH.Merijn Brand2016-04-231-24/+17
| | | | | Work done at the QAH in Rugby. Multi-thanks to Aaron for helping out here. You're doing a great job!
* Add probe for memmemH.Merijn Brand2016-03-251-0/+7
|
* Add Configure probes for newlocale, freelocale, and uselocaleH.Merijn Brand2016-03-191-0/+17
|
* Probe for and expose more fields for SA_SIGINFODagfinn Ilmari Mannsåker2016-01-261-0/+42
| | | | | | | | These are all specified by POSIX/SUSv3, but not all platforms have them, as mentioned in POSIX.pm. We can only test the pid, uid and code fields, since they are the only ones that are defined for a user-sent signal.
* Add Configure support for fdclose() for [perl #126847].Andy Dougherty2016-01-041-0/+7
| | | | | This patch also adjusts the generated files suggested by Porting/checkcfgvar.pl.
* Configure: mixed-endian double-doublesJarkko Hietaniemi2015-12-141-4/+11
| | | | | | | | | | | The ppc64el is the first seen little-endian double-double (and also the first little-endian ppc), but it turns out its little-endianness is mixed: the doubles are still in big-endian order. Configure was expecting wrongly a fully byte-reversed double-double. Therefore extend the long double format detection to cover all the (double-double) permutations, though the formats of five and eight are rather unlikely (based on current platforms using double-double).