From 37bd1396ea9d91e675e031705a61835c0083b20a Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Mon, 6 Sep 1999 03:54:23 +0000 Subject: [PATCH] applied patch suggested by Hans Mulder to fix problems on OPENSTEP-Mach; be more careful about PERL_POLLUTE_MALLOC when they ask for bincompat (platforms that used to default to EMBEDMYMALLOC continue to do so); disable warnings.t#192 (appears unsalvageable on some platforms) p4raw-id: //depot/perl@4085 --- embed.h | 10 ++++++++-- embed.pl | 10 ++++++++-- handy.h | 4 ++-- perl.h | 6 ++---- pp_sys.c | 4 ++++ t/pragma/warn/pp_hot | 15 +++++++-------- 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/embed.h b/embed.h index cfb2aa2..266a691 100644 --- a/embed.h +++ b/embed.h @@ -30,8 +30,14 @@ # define Perl_set_numeric_local perl_set_numeric_local # define Perl_set_numeric_standard perl_set_numeric_standard # define PERL_POLLUTE -# ifndef EMBEDMYMALLOC -# define PERL_POLLUTE_MALLOC +/* malloc() pollution was the default in earlier versions, so enable + * it for bincompat; but not for systems that used to do prevent that, + * or when they ask for {HIDE,EMBED}MYMALLOC */ +# if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC) +# if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \ + !defined(__QNX__) +# define PERL_POLLUTE_MALLOC +# endif # endif #endif diff --git a/embed.pl b/embed.pl index 0543c0f..63d5fdd 100755 --- a/embed.pl +++ b/embed.pl @@ -303,8 +303,14 @@ print EM <<'END'; # define Perl_set_numeric_local perl_set_numeric_local # define Perl_set_numeric_standard perl_set_numeric_standard # define PERL_POLLUTE -# ifndef EMBEDMYMALLOC -# define PERL_POLLUTE_MALLOC +/* malloc() pollution was the default in earlier versions, so enable + * it for bincompat; but not for systems that used to do prevent that, + * or when they ask for {HIDE,EMBED}MYMALLOC */ +# if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC) +# if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \ + !defined(__QNX__) +# define PERL_POLLUTE_MALLOC +# endif # endif #endif diff --git a/handy.h b/handy.h index 95bcec7..5ffd01d 100644 --- a/handy.h +++ b/handy.h @@ -241,7 +241,7 @@ typedef unsigned short U16; #ifdef USE_NEXT_CTYPE # define isALNUM_LC(c) \ - (NXIsAlnum((unsigned int)(c)) || (char)(c) == '_') + (NXIsAlNum((unsigned int)(c)) || (char)(c) == '_') # define isIDFIRST_LC(c) \ (NXIsAlpha((unsigned int)(c)) || (char)(c) == '_') # define isALPHA_LC(c) NXIsAlpha((unsigned int)(c)) @@ -249,7 +249,7 @@ typedef unsigned short U16; # define isDIGIT_LC(c) NXIsDigit((unsigned int)(c)) # define isUPPER_LC(c) NXIsUpper((unsigned int)(c)) # define isLOWER_LC(c) NXIsLower((unsigned int)(c)) -# define isALNUMC_LC(c) NXIsAlnum((unsigned int)(c)) +# define isALNUMC_LC(c) NXIsAlNum((unsigned int)(c)) # define isCNTRL_LC(c) NXIsCntrl((unsigned int)(c)) # define isGRAPH_LC(c) NXIsGraph((unsigned int)(c)) # define isPRINT_LC(c) NXIsPrint((unsigned int)(c)) diff --git a/perl.h b/perl.h index 8973317..2b9f3c6 100644 --- a/perl.h +++ b/perl.h @@ -470,10 +470,6 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); # include "embed.h" #endif -#if defined(NeXT) || defined(__NeXT) || defined (__MACHTEN__) -# undef PERL_POLLUTE_MALLOC -#endif - #define MEM_SIZE Size_t #if defined(STANDARD_C) && defined(I_STDDEF) @@ -2028,8 +2024,10 @@ struct ufuncs { /* Fix these up for __STDC__ */ #ifndef DONT_DECLARE_STD char *mktemp (char*); +#ifndef atof double atof (const char*); #endif +#endif #ifndef STANDARD_C /* All of these are in stdlib.h or time.h for ANSI C */ diff --git a/pp_sys.c b/pp_sys.c index 3149f24..6c80e5e 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -187,6 +187,10 @@ static char zero_but_true[ZBTLEN + 1] = "0 but true"; # include #endif +#if defined(HAS_FCNTL) && defined(F_SETFD) && !defined(FD_CLOEXEC) +# define FD_CLOEXEC 1 /* NeXT needs this */ +#endif + #undef PERL_EFF_ACCESS_R_OK /* EFFective uid/gid ACCESS R_OK */ #undef PERL_EFF_ACCESS_W_OK #undef PERL_EFF_ACCESS_X_OK diff --git a/t/pragma/warn/pp_hot b/t/pragma/warn/pp_hot index 2a52dfb..d0d339d 100644 --- a/t/pragma/warn/pp_hot +++ b/t/pragma/warn/pp_hot @@ -51,15 +51,15 @@ print ; open(FOO, ">&STDOUT") and print ; print getc(STDERR); print getc(FOO); -read(FOO,$_,1); -no warnings 'io' ; -print STDIN "anc"; #################################################################### -# N O T E # -# This test is known to fail on Linux and *BSD systems with glibc. # -# The glibc development team is aware of the problem, and has # -# determined a fix for the next release of that library. # +# The next test is known to fail on some systems (Linux/BSD+glibc, # +# NeXT among others. glibc should be fixed in the next version, # +# but it appears other platforms have little hope. We skip it for # +# now (on the grounds that it is "just" a warning). # #################################################################### +#read(FOO,$_,1); +no warnings 'io' ; +print STDIN "anc"; EXPECT Filehandle main::STDIN opened only for input at - line 3. Filehandle main::STDOUT opened only for output at - line 4. @@ -67,7 +67,6 @@ Filehandle main::STDERR opened only for output at - line 5. Filehandle main::FOO opened only for output at - line 6. Filehandle main::STDERR opened only for output at - line 7. Filehandle main::FOO opened only for output at - line 8. -Filehandle main::FOO opened only for output at - line 9. ######## # pp_hot.c use warnings 'closed' ; -- 2.7.4