In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/400638aa931c474ea2549c80aeb58d36a9f65db3?hp=4e2794096b6999123c408ee2ccfc3f1a92bd4bb2>
- Log ----------------------------------------------------------------- commit 400638aa931c474ea2549c80aeb58d36a9f65db3 Author: Craig A. Berry <[email protected]> Date: Fri Jan 2 18:42:31 2015 -0600 Ditch the custom extern/const model on VMS. We've been using globaldef/globalref for global data since eons ago. It was a requirement for the ancient and long-defunct VAXC compiler (not to be confused with DEC C for OpenVMS VAX), but DEC/Compaq/HP C supports extern and const pretty much the way everybody else does, and has for many years. HP C also supports globaldef/globalref for backward compatibility, but the C++ compiler does not, so continuing to use it means two different models for C and C++. While there is a slight theoretical benefit to using the old model and its fine-grained control of program section attributes and having all the read-write variables in one program section and all the read-only variables in another, there is no measureable performance or code size benefit, and being different just isn't worth the aggravation. So let's resign ourselves to having a separate program section in the shareable image for each global item and make a couple of places in the code easier on everyone's eyeballs and less likely to collide with other work. ----------------------------------------------------------------------- Summary of changes: EXTERN.h | 12 +----------- INTERN.h | 12 +----------- vms/gen_shrfls.pl | 8 -------- 3 files changed, 2 insertions(+), 30 deletions(-) diff --git a/EXTERN.h b/EXTERN.h index 2aa77db..4e4f1ad 100644 --- a/EXTERN.h +++ b/EXTERN.h @@ -18,16 +18,7 @@ #undef dEXT #undef EXTCONST #undef dEXTCONST -#if defined(VMS) && !defined(__GNUC__) - /* Suppress portability warnings from DECC for VMS-specific extensions */ -# ifdef __DECC -# pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) -# endif -# define EXT globalref -# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare -# define EXTCONST globalref -# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly -#else + # if (defined(WIN32) || defined(__SYMBIAN32__)) && !defined(PERL_STATIC_SYMS) /* miniperl should not export anything */ # if defined(PERL_IS_MINIPERL) && !defined(UNDER_CE) && defined(_MSC_VER) @@ -61,7 +52,6 @@ # define dEXTCONST const # endif # endif -#endif #undef INIT #define INIT(x) diff --git a/INTERN.h b/INTERN.h index 39b48f4..e6e0602 100644 --- a/INTERN.h +++ b/INTERN.h @@ -18,16 +18,7 @@ #undef dEXT #undef EXTCONST #undef dEXTCONST -#if defined(VMS) && !defined(__GNUC__) - /* Suppress portability warnings from DECC for VMS-specific extensions */ -# ifdef __DECC -# pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) -# endif -# define EXT globaldef {"$GLOBAL_RW_VARS"} noshare -# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare -# define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly -# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly -#else + # if (defined(WIN32) && defined(__MINGW32__)) || defined(__SYMBIAN32__) # ifdef __cplusplus # define EXT __declspec(dllexport) @@ -53,7 +44,6 @@ # define dEXTCONST const # endif # endif -#endif #undef INIT #define INIT(x) = x diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl index 2ef3e89..039528f 100644 --- a/vms/gen_shrfls.pl +++ b/vms/gen_shrfls.pl @@ -158,14 +158,6 @@ if ($isvax) { } unless ($isgcc) { - unless ($isvax) { - print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,NOEXE,RD,NOWRT,SHR\n"; - print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,NOEXE,RD,WRT,NOSHR\n"; - } - else { - print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n"; - print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n"; - } print OPTBLD "PSECT_ATTR=LIB\$INITIALIZE,GBL,NOEXE,NOWRT,NOSHR,LONG\n"; } print OPTBLD "case_sensitive=yes\n" if $care_about_case; -- Perl5 Master Repository
