diff --git a/CoreFoundation/Base.subproj/CFAsmMacros.h b/CoreFoundation/Base.subproj/CFAsmMacros.h index c93b266d9f..4dd8a94e50 100644 --- a/CoreFoundation/Base.subproj/CFAsmMacros.h +++ b/CoreFoundation/Base.subproj/CFAsmMacros.h @@ -20,5 +20,16 @@ #define NO_EXEC_STACK_DIRECTIVE #endif +.macro SAFESEH_REGISTRATION_DIRECTIVE +#if defined(_WIN32) && defined(_M_IX86) + .def @feat.00 + .scl 3 + .type 0 + .endef + .globl @feat.00 +@feat.00 = 1 +#endif +.endm + #endif diff --git a/CoreFoundation/String.subproj/CFCharacterSetData.S b/CoreFoundation/String.subproj/CFCharacterSetData.S index 6f81d174be..d5d7a1d20a 100644 --- a/CoreFoundation/String.subproj/CFCharacterSetData.S +++ b/CoreFoundation/String.subproj/CFCharacterSetData.S @@ -22,4 +22,4 @@ _C_LABEL(__CFCharacterSetBitmapDataSize): .int _C_LABEL(__CFCharacterSetBitmapDataEnd) - _C_LABEL(__CFCharacterSetBitmapData) NO_EXEC_STACK_DIRECTIVE - +SAFESEH_REGISTRATION_DIRECTIVE diff --git a/CoreFoundation/String.subproj/CFUniCharPropertyDatabase.S b/CoreFoundation/String.subproj/CFUniCharPropertyDatabase.S index 32e4397e6c..b57310e507 100644 --- a/CoreFoundation/String.subproj/CFUniCharPropertyDatabase.S +++ b/CoreFoundation/String.subproj/CFUniCharPropertyDatabase.S @@ -22,4 +22,4 @@ _C_LABEL(__CFUniCharPropertyDatabaseSize): .int _C_LABEL(__CFUniCharPropertyDatabaseEnd) - _C_LABEL(__CFUniCharPropertyDatabase) NO_EXEC_STACK_DIRECTIVE - +SAFESEH_REGISTRATION_DIRECTIVE diff --git a/CoreFoundation/String.subproj/CFUnicodeData.S b/CoreFoundation/String.subproj/CFUnicodeData.S index d07cf18ebf..40c1092baf 100644 --- a/CoreFoundation/String.subproj/CFUnicodeData.S +++ b/CoreFoundation/String.subproj/CFUnicodeData.S @@ -36,4 +36,4 @@ _C_LABEL(__CFUnicodeDataLSize): #endif NO_EXEC_STACK_DIRECTIVE - +SAFESEH_REGISTRATION_DIRECTIVE