Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ppport.h and polution (was: 5.6.0 ready for prime-time?) #1749

Closed
p5pRT opened this issue Apr 3, 2000 · 2 comments
Closed

ppport.h and polution (was: 5.6.0 ready for prime-time?) #1749

p5pRT opened this issue Apr 3, 2000 · 2 comments

Comments

@p5pRT
Copy link

p5pRT commented Apr 3, 2000

Migrated from rt.perl.org#3000 (status was 'resolved')

Searchable as RT3000$

@p5pRT
Copy link
Author

p5pRT commented Apr 3, 2000

From rra@stanford.edu

Gurusamy Sarathy <gsar@​ActiveState.com> writes​:

On Mon, 03 Apr 2000 11​:18​:43 EDT, Norton Allen wrote​:

My module compiled without changes as late as .670, possibly with RC1,
but required na => PL_na attention by RC2.

I don't see anything about this in the archives. Did you report it via
perlbug?

Changes to #defines in patchlevel.h broke ppport.h, though; I wonder if
that has something to do with it. That was our problem with INN at least.
I'm currently waiting on feedback on this patch from the person who
reported the problem with INN, or the time to install Perl 5.6.0 on a test
machine where I can build INN against it, but I think this patch against
1.0003 will fix the problem.

Inline Patch
--- ppport.h.orig	Thu Feb 25 19:41:21 1999
+++ ppport.h	Mon Apr  3 15:16:48 2000
@@ -139,21 +139,25 @@
 */
 
 
-#ifndef PERL_PATCHLEVEL
+#if !defined(PERL_VERSION) && !defined(PERL_PATCHLEVEL)
 #	ifndef __PATCHLEVEL_H_INCLUDED__
 #		include "patchlevel.h"
 #	endif
 #endif
-#ifndef PERL_PATCHLEVEL
-#	define PERL_PATCHLEVEL PATCHLEVEL
-#	define PERL_SUBVERSION SUBVERSION
+#ifndef PERL_VERSION
+#	ifdef PERL_PATCHLEVEL
+#		define PERL_VERSION    PERL_PATCHLEVEL
+#	else
+#		define PERL_VERSION    PATCHLEVEL
+#		define PERL_SUBVERSION SUBVERSION
+#	endif
 #endif
 
 #ifndef ERRSV
 #	define ERRSV perl_get_sv("@",FALSE)
 #endif
 
-#if (PERL_PATCHLEVEL < 4) || ((PERL_PATCHLEVEL == 4) && (PERL_SUBVERSION <= 4))
+#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 4))
 #	define PL_sv_undef	sv_undef
 #	define PL_sv_yes	sv_yes
 #	define PL_sv_no		sv_no
@@ -165,7 +169,7 @@
 #	define PL_copline	copline
 #endif
 
-#if (PERL_PATCHLEVEL < 5)
+#if (PERL_VERSION < 5)
 #  ifdef WIN32
 #	define dTHR extern int Perl___notused
 #  else
@@ -182,7 +186,7 @@
 /* Provide: newCONSTSUB */
 
 /* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
-#if (PATCHLEVEL < 4) || ((PATCHLEVEL == 4) && (SUBVERSION < 63))
+#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 63))
 
 /* Prototype */
 #if !defined(NEED_newCONSTSUB_GLOBAL)

@p5pRT
Copy link
Author

p5pRT commented Apr 3, 2000

From @gsar

On 03 Apr 2000 15​:18​:06 PDT, Russ Allbery wrote​:

Gurusamy Sarathy <gsar@​ActiveState.com> writes​:

I don't see anything about this in the archives. Did you report it via
perlbug?

Changes to #defines in patchlevel.h broke ppport.h, though; I wonder if
that has something to do with it. That was our problem with INN at least.
[...]
--- ppport.h.orig Thu Feb 25 19​:41​:21 1999
+++ ppport.h Mon Apr 3 15​:16​:48 2000
@​@​ -139,21 +139,25 @​@​
*/

-#ifndef PERL_PATCHLEVEL
+#if !defined(PERL_VERSION) && !defined(PERL_PATCHLEVEL)

Perl has never #defined a PERL_PATCHLEVEL, so I don't think that could
have ever fully "worked". (See diff of patchlevel.h between 5.005_50
and 5.6.0.)

# ifndef __PATCHLEVEL_H_INCLUDED__
# include "patchlevel.h"
# endif

I think the breakage you're referring to may be due to the fact
that __PATCHLEVEL_H_INCLUDED__ has been #defined by default since
5.005_62 (15 October 1999). Certainly not a "last minute change".

Sarathy
gsar@​ActiveState.com

Inline Patch
-----------------------------------8<-----------------------------------
==== //depot/perl/patchlevel.h#40 (text) - //depot/perl/patchlevel.h#73 (text) ====
@@ -1,6 +1,36 @@
 #ifndef __PATCHLEVEL_H_INCLUDED__
-#define PATCHLEVEL 5
-#define SUBVERSION 50
+
+/* do not adjust the whitespace! Configure expects the numbers to be
+ * exactly on the third column */
+
+#define PERL_REVISION	5		/* age */
+#define PERL_VERSION	6		/* epoch */
+#define PERL_SUBVERSION	0		/* generation */
+
+/* The following numbers describe the earliest compatible version of
+   Perl ("compatibility" here being defined as sufficient binary/API
+   compatibility to run XS code built with the older version).
+   Normally this should not change across maintenance releases.
+
+   Note that this only refers to an out-of-the-box build.  Many non-default
+   options such as usemultiplicity tend to break binary compatibility
+   more often.
+
+   This is used by Configure et al to figure out 
+   PERL_INC_VERSION_LIST, which lists version libraries
+   to include in @INC.  See INSTALL for how this works.
+*/
+#define PERL_API_REVISION	5	/* Adjust manually as needed.  */
+#define PERL_API_VERSION	5	/* Adjust manually as needed.  */
+#define PERL_API_SUBVERSION	0	/* Adjust manually as needed.  */
+/*
+   XXX Note:  The selection of non-default Configure options, such
+   as -Duselonglong may invalidate these settings.  Currently, Configure
+   does not adequately test for this.   A.D.  Jan 13, 2000
+*/
+
+#define __PATCHLEVEL_H_INCLUDED__
+#endif
 
 /*
 	local_patches -- list of locally applied less-than-subversion patches.
@@ -37,6 +67,7 @@
 	This will prevent patch from choking if someone has previously
 	applied different patches than you.
  */
+#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
 static	char	*local_patches[] = {
 	NULL
 	,NULL
@@ -46,5 +77,8 @@
 #  define	LOCAL_PATCH_COUNT	\
 	(sizeof(local_patches)/sizeof(local_patches[0])-2)
 
-#  define __PATCHLEVEL_H_INCLUDED__
+/* the old terms of reference, add them only when explicitly included */
+#define PATCHLEVEL		PERL_VERSION
+#undef  SUBVERSION		/* OS/390 has a SUBVERSION in a system header */
+#define SUBVERSION		PERL_SUBVERSION
 #endif
End of Patch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant