| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Under POSIX threads the getpid() and getppid() functions return the
same values across multiple threads, i.e. threads don't have their own
PID's. This is not the case under the obsolete LinuxThreads where each
thread has a different PID, so getpid() and getppid() will return
different values across threads.
Ever since the first perl 5.0 we've returned POSIX-consistent
semantics for $$, until v5.14.0-251-g0e21945 when the getpid() cache
was removed. In 5.8.1 Rafael added further explicit POSIX emulation in
perl-5.8.0-133-g4d76a34 [1] by explicitly caching getppid(), so that
multiple threads would always return the same value.
I don't think all this effort to emulate POSIX sematics is worth it. I
think $$ and getppid() are OS-level functions that should always
return the same as their C equivalents. I shouldn't have to use a
module like Linux::Pid to get the OS version of the return values.
This is pretty much a complete non-issue in practice these days,
LinuxThreads was a Linux 2.4 thread implementation that nobody
maintains anymore[2], all modern Linux distros use NPTL threads which
don't suffer from this discrepancy. Debian GNU/kFreeBSD does use
LinuxThreads in the 6.0 release, but they too will be moving away from
it in future releases, and really, nobody uses Debian GNU/kFreeBSD
anyway.
This caching makes it unnecessarily tedious to fork an embedded Perl
interpreter. When someone that constructs an embedded perl interpreter
and forks their application, the fork(2) system call isn't going to
run Perl_pp_fork(), and thus the return value of $$ and getppid()
doesn't reflect the current process. See [3] for a bug in uWSGI
related to this, and Perl::AfterFork on the CPAN for XS code that you
need to run after forking a PerlInterpreter unbeknownst to perl.
We've already been failing the tests in t/op/getpid.t on these Linux
systems that nobody apparently uses, the Debian GNU/kFreeBSD users did
notice and filed #96270, this patch fixes that failure by changing the
tests to test for different behavior under LinuxThreads, I've tested
that this works on my Debian GNU/kFreeBSD 6.0.4 virtual machine.
If this change is found to be unacceptable (i.e. we want to continue
to emulate POSIX thread semantics for the sake of LinuxThreads) we
also need to revert v5.14.0-251-g0e21945, because currently we're only
emulating POSIX semantics for getppid(), not getpid(). But I don't
think we should do that, both v5.14.0-251-g0e21945 and this commit are
awesome.
This commit includes a change to embedvar.h made by "make
regen_headers".
1. http://www.nntp.perl.org/group/perl.perl5.porters/2002/08/msg64603.html
2. http://pauillac.inria.fr/~xleroy/linuxthreads/
3. http://projects.unbit.it/uwsgi/ticket/85
|
|
|
|
|
| |
Before -Uuseithreads resulted in a threaded perl. Now
-Uuseithreads and -Uusethreads DWIM
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes [perl #103668].
|
|
|
|
| |
Similar code as in linux.sh
|
|
|
|
|
| |
Solaris 11 SunStudio 12.2. ships without cc, so CC must be used.
Detect it and set ccversion correctly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
at the moment, perl is compiled on GNU/Hurd without large file support.
This, other than the lacking of support for files > 2 GB, causes the
failure in the t/op/stat.t test.
The failure in stat.t happens because of the following: when filtering
devices in /dev/* using grep {} with -b/-c, stat fails for large
devices such as /dev/hdX blocks, or /dev/zero chars (this latter case
should be an Hurd-specific issue, but shouldn't matter for this case),
hence the counts done with grep {} and the ones done filtering the
output of `ls' don't match.
The attached patch enables the LFS using the same way used on linux.sh;
about t/op/lfs.t, it gets skipped at the "kernel/fs not configured to
use large files?" check, although it correctly detects sparse files and
(at least by looking at the disk usage) allocates the 5GB (or so) file
created with system() in that test.
|
|
|
|
| |
Remove private copies of some POSIX functions that are now implemented by OpenVOS.
|
|
|
|
|
|
|
|
| |
Bug-Debian: http://bugs.debian.org/636609
Patch-Name: fixes/hurd-hints.diff
With minor modifications to add Pino to AUTHORS.
|
|
|
|
|
|
|
|
|
|
|
| |
Perl does not build on FreeBSD 10.0 because some checks in
hints/freebsd.sh think FreeBSD 10 is FreeBSD 1 and therefore enable
behaviour only appropriate for a.out systems.
The below patch was included in the lang/perl5.12 port and fixes its
build. The resulting binaries are also suitable to compile other ports.
I have also verified that this patch applies to lang/perl5.10 and
lang/perl5.14, making them build.
|
| |
|
| |
|
|
|
|
|
| |
Remove support for the Borland C++ compiler on Win32, as agreed here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-09/msg00034.html
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correct the socketsize. Probably due to big-endian versus
little-endian, this has always worked on Intel CPUs. This
is a very very old problem, and it has been the reason I
never used gcc-4 on PA-RISC, because perl would not pass
the test suite in 64bitall.
Noticeable effects of wrong "$socksizetype" are return codes
of 0 (pass) from functions like getpeername (), but invalid
(or none) data in the returned structures or a return length
of 0 or 256. In the latter case, the length is stored in the
second part of the 64bit long and the 32bit first part is 0.
This might be true on Intel-like machines too, but the tests
will pass, as the significant part of the returned length is
in the first 32bits and a pointer to int will still see that
correct. Mind that in that case the 32bits after that might
have been overridden => can of worms.
|
| |
|
|
|
|
|
| |
All it does is cause warnings on recent systems with that header installed. It's
required for some variants of FreeBSD only.
|
|
|
|
|
| |
Testing from 10.5 with Xcode 3 to the latest OS X works with usenm='false' but
not always with usenm='true'
|
|
|
|
|
|
|
| |
40f026236b9959b7 added code to the Linux hints file to use gcc to locate
libraries such as -lm. However, if the user has their own gcc earlier in $PATH
than the system gcc, we don't want its libraries. So try to prefer the system
gcc.
|
| |
|
|
|
|
|
|
|
| |
Bug-Debian: http://bugs.debian.org/587901
Don't override possible extra $ccflags values given to Configure
on GNU/Hurd.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The recent change to hints/linux.sh,
40f026236b9959b7ad3260fedc6c66cd30bb7abc
set the plibpth variable.
It was supposed to set all entries on a single line, but it didn't.
Do it now, and also remove trailing /'s.
(The collapsing is a more robust version of the previous commit,
since reverted, that davem wrote independently).
|
|
|
|
|
|
| |
This reverts commit 55e4a474ad63535e486bd657f45b5339709cbcd3.
In improved version is coming next...
|
|
|
|
|
|
|
|
| |
The recent change to hints/linux.sh,
40f026236b9959b7ad3260fedc6c66cd30bb7abc
set the plibpth variable.
It was supposed to set all entries on a single line, but it didn't.
Do it now,
|
|
|
|
|
| |
netbsd for pre 4.6 gcc requires --whole-archive to build shared
libraries, but this is rejected and not required in 4.6.0.
|
|
|
|
|
|
| |
This reverts commit 673d8593b7ef274dadbfff97fd641e3c563fc716.
I meant to apply the cc.cbu version of this patch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
(such as -lm) in /lib or /usr/lib. So we have to ask gcc to tell us
where to look. We don't want gcc's own libraries, however, so we
filter those out.
This could be conditional on Ubuntu, but other distributions have
announced their intent follow suit, and this scheme seems to work even
on rather old gcc's. This unconditionally uses gcc because even if the
user is using another compiler, we still need to find the math library
and friends, and I don't know how other compilers will cope with that
situation. Still, as an escape hatch, allow Configure command line
overrides to plibpth to bypass this check.
|
|
|
|
|
|
|
|
| |
netbsd for pre 4.6 gcc requires --whole-archive to build shared
libraries, but this is rejected and not required in 4.6.0.
Simply changing the option to -Wl,--whole-archive works on gcc 4.6.0
but fails for the system cc on NetBSD 5.1/x64.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously -no-cpp-precomp was added uncondtionally to cppflags and ccflags.
Apple's compiler accepts this unconditionally. gcc 4.5 warns about it, but
ignores it. gcc 4.6 treats the unknown flag as an error. Hence test whether
the flag causes problems, and only add it if it does not.
(Searching with Google suggests that this flag has been unnecessary on OS X
for some time. However, there's no clear documentation about it to confirm
when it stopped being necessary.)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building on Solaris 10 multiple warnings are produced saying:
Warning: -xarch=generic64 is deprecated, use -m64 to create 64-bit
programs
This is because the config script hints/solaris_2.sh uses the values
returned by getconf which are incorrect for newer versions of Sun's
compiler. I believe they are correct for earlier versions, but do not
have a system to test this on. This change to solaris_2.sh checks
that the compiler produces this warning, and if so updates the flags
to the correct values.
|
|
|
|
|
|
|
|
|
|
| |
Done with:
./perl -Ilib Porting/bump-perl-version -s 5.13.9 5.13.10 > /tmp/scan
./perl -Ilib Porting/bump-perl-version -u < /tmp/scan
And then manually editing the README.vms file to update the vmstar
example.
|
| |
|
| |
|
|
|
|
|
|
| |
This reverts commit 7dc5472a0a41a8396671d5586d4c1254a1cb5e8c.
Back out XS switch over
|
| |
|
|
|
|
|
|
|
|
|
| |
# New Ticket Created by (Peter J. Acklam)
# Please include the string: [perl #81884]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81884 >
Signed-off-by: Abigail <abigail@abigail.be>
|
|
|
|
| |
hadn't worked for years before that.
|
|
|
|
|
|
| |
do not use usemymalloc (double size + slow)
remove deprecated libcygipc info
remove overlarge stack size
|
| |
|
|
|
|
|
| |
All files have been modified more recently than their tag, rendering
information in the tag redundant.
|
|
|
|
|
|
| |
It should not be the default, it isn't the default when perl is
built in pkgsrc and from personal experience using perl's malloc
as the default is to enter a world of pain and suffering.
|