In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/2e94d7323a4c0ec3134a8d5916645ca41e8bfe00?hp=5fde9fa4cbe66ffa73af8a18a5042cb511c581a4>

- Log -----------------------------------------------------------------
commit 2e94d7323a4c0ec3134a8d5916645ca41e8bfe00
Author: Daniel Dragan <[email protected]>
Date:   Fri Jul 20 12:37:53 2012 -0400

    Add PERL_NO_GET_CONTEXT to Win32CORE
    
    Win32CORE is already ithreads aware, but was still making
    Perl_get_context calls. This fixes that. Smaller machine code is the result.

M       ext/Win32CORE/Win32CORE.c

commit 50e8e1f58c8f44de664c58d031a1fcc6880830c1
Author: Daniel Dragan <[email protected]>
Date:   Thu Jul 19 14:30:21 2012 -0400

    Add MSVC noreturn to inside of the interp
    
    12a2785c7e86f586a05cad9ff90ce673c68c3115 only turned on MSVC noreturn for
    external DLL XS modules, not inside the interp (perl5**.dll). This commit
    fixes that. For me (bulk88), with an -O1 build, perl517.dll dropped
    from 1044KB to 1036KB after applying this.

M       win32/win32.h

commit 03c98af06fb1276cf98494ab176371eeabcdc5a2
Author: Jan Dubois <[email protected]>
Date:   Mon Jul 30 16:08:01 2012 -0700

    Split __declspec(dllimport,noreturn) into 2 parts
    
    I thought I did test commit 12a2785c with VC6 and it built without
    errors, but I can no longer reproduce this.  Checking standard
    CRT headers shows common usage (e.g. for longjmp() in setjmp.h) is
    "__declspec(dllimport) __declspec(noreturn)", so let's use that
    one instead.

M       win32/win32.h
-----------------------------------------------------------------------

Summary of changes:
 ext/Win32CORE/Win32CORE.c |    1 +
 win32/win32.h             |    8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 win32/win32.h

diff --git a/ext/Win32CORE/Win32CORE.c b/ext/Win32CORE/Win32CORE.c
index fba6f55..943ca86 100644
--- a/ext/Win32CORE/Win32CORE.c
+++ b/ext/Win32CORE/Win32CORE.c
@@ -13,6 +13,7 @@
 #if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
   #undef WIN32
 #endif
+#define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
   #define EXTCONST extern const
diff --git a/win32/win32.h b/win32/win32.h
old mode 100644
new mode 100755
index 2c821eb..808ea19
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -67,14 +67,18 @@
 #  ifdef __cplusplus
 #    define PERL_CALLCONV extern "C" __declspec(dllimport)
 #    ifdef _MSC_VER
-#      define PERL_CALLCONV_NO_RET extern "C" __declspec(dllimport, noreturn)
+#      define PERL_CALLCONV_NO_RET extern "C" __declspec(dllimport) 
__declspec(noreturn)
 #    endif
 #  else
 #    define PERL_CALLCONV __declspec(dllimport)
 #    ifdef _MSC_VER
-#      define PERL_CALLCONV_NO_RET __declspec(dllimport, noreturn)
+#      define PERL_CALLCONV_NO_RET __declspec(dllimport) __declspec(noreturn)
 #    endif
 #  endif
+#else /* MSVC noreturn support inside the interp */
+#  ifdef _MSC_VER
+#    define PERL_CALLCONV_NO_RET __declspec(noreturn)
+#  endif
 #endif
 
 #define  WIN32_LEAN_AND_MEAN

--
Perl5 Master Repository

Reply via email to