with my patches, perl5.003_15 compiled with cc, runs all tests.
Compiled with gcc I get this failed tests:
op/goto...........FAILED on test 8
op/sysio..........FAILED on test 0
lib/autoloader....Goto undefined subroutine at ./lib/autoloader.t line 58.
FAILED on test 3
lib/english.......FAILED on test 0
lib/fatal.........FAILED on test 0
lib/hostname......FAILED on test 0
Failed 6/135 tests, 91.11% okay.
On my Linux System I get similar failures:
op/goto...........FAILED on test 8
op/sysio..........Negative length at ./op/sysio.t line 64.
FAILED on test 1
lib/autoloader....Goto undefined subroutine at ./lib/autoloader.t line 58.
FAILED on test 0
lib/english.......FAILED on test 0
lib/fatal.........Can't use an undefined value as filehandle reference at ./lib/fatal.t line 21.
lib/hostname......FAILED on test 0
Failed 6/135 tests, 94.81% okay.
So I think that this problems are already fixed. My changes to
perl.h are necessary to compile x2p/malloc.c, but there may be
better solutions.
p5p-msgid: <m0vd254-0004oKC@incom.rhein-main.de>
# getsockname() and getpeername() return 256 for no good reason
ccflags="$ccflags -DBOGUS_GETNAME_RETURN=256"
+# rename(2) can't rename long filenames
+d_rename=undef
+
# You can also include -D_SYSV3 to pick up "traditionally visible"
# symbols hidden by name-space pollution rules. This raises some
# compilation "redefinition" warnings, but they appear harmless.
#ifdef HAS_RENAME
anum = rename(tmps, tmps2);
#else
- if (same_dirent(tmps2, tmps)) /* can always rename to same name */
- anum = 1;
- else {
- if (euid || Stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode))
- (void)UNLINK(tmps2);
- if (!(anum = link(tmps, tmps2)))
- anum = UNLINK(tmps);
+ if (!(anum = Stat(tmps, &statbuf))) {
+ if (same_dirent(tmps2, tmps)) /* can always rename to same name */
+ anum = 1;
+ else {
+ if (euid || Stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode))
+ (void)UNLINK(tmps2);
+ if (!(anum = link(tmps, tmps2)))
+ anum = UNLINK(tmps);
+ }
}
#endif
SETi( anum >= 0 );