| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
We also provbe for gcc's earlier syntax, __thread.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On FreeBSD dev_t (and hence the st_dev member of struct stat) is an
unsigned 64-bit integer, and the previous simple PUSHi() corrupted
that.
A previous version of this reflected the st_ino code and implemented
our own number to string conversion, but a system with such a large
st_dev should be assumed to have inttypes.h, and an intmax_t which is
no smaller than st_dev.
The st_ino code could probably be changed similarly, but 64-bit inode
numbers are not a new thing, so it may be riskier.
|
|
|
|
|
|
|
|
|
|
|
| |
This header was originally only needed for builds on darwin and
FreeBSD, but was being included whenever it was detected.
This has caused problems when what was an internal header was
removed (from glibc) and in general wasn't needed anyway.
On FreeBSD only localeconv_l() requires xlocale.h, so we test
specifically for that.
|
|
|
|
| |
Several new probes have been added.
|
|
|
|
|
|
|
|
|
|
|
| |
This probe has been available without my realizing it had been merged.
Some compilers, chiefly IBM, use only integer-size bitfields, warning
when presented with other-sized ones. Allowing other-sized fields is an
extension to the C standard.
These warnings don't affect the correctness of the code generated, but
very many are generated per run, potentially overwhelming the reader
into not noticing warnings that are important.
|
|
|
|
|
|
| |
* Apparently, first you bump, then you update perldelta.
* 5.35.0 *might* be released tomorrow (likely) but not certainly.
* I've set it to tomorrow so Module::CoreList won't be upset.
|
| |
|
|
|
|
|
|
| |
Most implementations do not have a problem with two getenv()'s running
simultaneously in different threads. But Posix doesn't require such
good behavior. This adds a simple probe to test the current system.
|
|
|
|
|
|
|
|
| |
Do not set strict by default on -e or -E
This is a development only feature to allow us to clean up blead.
./Configure -Dusedevel -des -Dusedefaultstrict
|
|
|
|
| |
See https://github.com/Perl/metaconfig/pull/66/
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
A probe for wcrtomb() and one for attribute always inline have been
added, and the ones for:
1) checking if there is a C backtrace facility; and
2) character data alignedness
have been revised
|
| |
|
| |
|
|
|
|
| |
This also now notes some behavior of setlocale
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The metaconfig probe for <db.h> previously relied on the d_const symbol set
by the "const" probe, so generating Configure here has been done against
metaconfig commit 1204d4627a06b11f16620188f3fa83159ed35fd9 which changes
that.
Thanks to khw++ for pointing out this oversight in my attempt last year to
make the codebase rely on C89.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the change here comes from a single unit being moved in the
generated Configure, but there are some substantive changes:
- config_h.SH was missing HAS_DUPLOCALE and d_duplocale
- d_duplocale was also missing from the platform-specific config-var files
This still doesn't quite ensure that rebuilding Configure makes no changes,
because there are differences to nl_langinfo() handling that need a change
in our metaconfig units. That will come next.
|
| |
|
|
|
|
|
| |
This is another file descriptor creating function that's needed as an
O_CLOEXEC-handling variant of an existing function.
|
|
|
|
|
| |
These will shortly be used to implement I/O operations that create file
descriptors with the FD_CLOEXEC flag set atomically.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
This requires a corresponding change in the metaconfig units.
|
|
|
|
| |
It's only needed on systems without C89 <string.h>, which we rely on anyway.
|
| |
|
|
|
|
| |
This requires a corresponding change in the metaconfig units.
|
|
|
|
| |
This requires a corresponding change to the metaconfig units.
|
|
|
|
|
| |
All the information it contains can be gleaned more readily from C89
<limits.h> and <float.h>.
|
|
|
|
| |
This requires newer metaconfig units that also rely on C89 <float.h>.
|
|
|
|
| |
This requires newer metaconfig units that also rely on C89 <limits.h>.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
"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().
|
|
|
|
| |
We can therefore also avoid probing for and/or using BSD bcopy().
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|