View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001763 | SOGo | SOPE | public | 2012-04-09 16:18 | 2012-05-09 15:57 |
Reporter | avoegele | Assigned To | ludovic | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | nightly v2 | ||||
Target Version | 1.3.15 | Fixed in Version | 1.3.15 | ||
Summary | 0001763: Support GCC 4.7 in SOPE | ||||
Description | GCC 4.7 removes several functions that were deprecated with GCC 4.6. Also, the libobjc distributed with GCC 4.7.0 sets __GNU_LIBOBJC__ to 20110608. The attached patch replaces "GNU_LIBOBJC == 20100911" with "GNU_LIBOBJC >= 20100911" in several places. The condition "GNU_LIBOBJC != 20100911" is replaced with "!(GNU_LIBOBJC >= 20100911)". In several modules the function sel_isEqual() is used instead of sel_eq() if a recent libobjc is installed. In sope-gdl1/GDLAccess/EOFaultHandler.m sel_getTypeEncoding() is used instead of selector->sel_types. Tested on Slackware Linux, which recently switched to GCC 4.7.0. | ||||
Tags | No tags attached. | ||||
2012-04-09 16:18
|
sope_gcc_4_7.diff (27,092 bytes)
# # old_revision [91277a54bc09d99eb7c022687bc24ac4529c81d3] # # patch "sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m" # from [b5585a8779d92fe699f3edc58c3e81817fb2850c] # to [aa0635be8440b78c2a0dc75ec120972b198bfd14] # # patch "sope-appserver/NGObjWeb/DynamicElements/WOComponentContent.m" # from [533a4a0b97a6336e13d02989c6fb4a23c2b24f9b] # to [12cfd6384312d2c37399397ae4b0a2c4088eb758] # # patch "sope-appserver/NGObjWeb/DynamicElements/WOComponentReference.m" # from [ee75523fe44a4efe5be252f5bf8a950945587737] # to [75ab16b9fc8ba0482db38a770a35e6d32e76442e] # # patch "sope-appserver/NGObjWeb/DynamicElements/WOCompoundElement.m" # from [d48af17bf652c81acd850ad9b1233f3d0beb18bb] # to [9b8dd5e24a25bf4b061ca1d97588896da02bec15] # # patch "sope-appserver/NGObjWeb/NSObject+WO.m" # from [789d7b5f193b93767a300bac82b35df83e2fd20c] # to [fad2f5b5db9fff5441fe2e9ae7e075292ef9c549] # # patch "sope-appserver/NGObjWeb/SoObjects/SoObjCClass.m" # from [f59757c12ed63d52cdd36f7ecb4a4659456b2818] # to [596e8c01916a4a93c6cd9ae92a6949ffcf7d4ba1] # # patch "sope-appserver/NGObjWeb/SoObjects/SoSelectorInvocation.m" # from [b3939614dee42b4e061b53e815b2716425b8c337] # to [55963870272ad54919b719d467dce0d88d09f8ac] # # patch "sope-appserver/NGObjWeb/WOApplication.m" # from [01ed97099e592b60adccb66f2bb27dce4a078309] # to [ab6b6620ac342dd7557db32ce2e4841002df9562] # # patch "sope-appserver/NGObjWeb/WOComponent+Sync.m" # from [8289c302efc35c56ac2f94900d2416a10d0c96fa] # to [0ec059d57873a77846d61792bf5751de9ed69cae] # # patch "sope-appserver/NGObjWeb/WODirectActionRequestHandler.m" # from [abcd4d153248d1f6bd45e102d8fa9f1510d51bcd] # to [87a44474c3bfef008ae374c440d929da70ccaff1] # # patch "sope-appserver/NGObjWeb/WOSession.m" # from [2838dafb7c9f02ee141033403c30d4f829abe7e6] # to [b0d6df4a0c71d3c4293d7083c11f6e68c6f1a1b7] # # patch "sope-appserver/NGObjWeb/common.h" # from [da608eeb9694956da84ee937d6c0c173d1dd4fae] # to [58229122fdf6292d149c90510ae7da9189e1945d] # # patch "sope-core/EOControl/EOKeyValueCoding.m" # from [d767115c5d13fb624c1539a494784e306e50cabf] # to [05026433be504cab09fddc130b615e848745d940] # # patch "sope-core/EOControl/EOValidation.m" # from [ede5fb08ebc5632ee82f623db062870e065b9b80] # to [f575e0bc45b4da79fdca5286cda96f0880582dbb] # # patch "sope-core/EOControl/common.h" # from [9423a5c5505561fc183924bdb2c82d55fabaf061] # to [b5d35a6e03c74d4b89c3fadeb4c11c8cd1f463e3] # # patch "sope-core/NGExtensions/EOExt.subproj/EOQualifier+CtxEval.m" # from [3e1ff61981b7b80fb4accdecfeaac668f32072d7] # to [6ac0c0db9c7e4448024ff260827e3e689eb6f8df] # # patch "sope-core/NGExtensions/FdExt.subproj/NSNull+misc.m" # from [53462c1d9ee5ecb4c97c13e24025a978deb77f78] # to [1d6430c2ba315a51baa4319685843cd1f056552a] # # patch "sope-core/NGExtensions/NGBundleManager.m" # from [afdb978b26102d2324760ad3249682c65e823172] # to [50ba07bbaf49fa4fe3a44639d91ad429b0509644] # # patch "sope-core/NGExtensions/NGExtensions/NGMemoryAllocation.h" # from [8eb6eb8e3bc0fcce9b21576022c1d85887f6af3e] # to [f12ec337b0c922ed7d8c7e9c2df57d77c549d7c1] # # patch "sope-core/NGExtensions/common.h" # from [819ac09f20d4c77e1f9bdcf21e2bf9368d59a8ba] # to [910ffba8b124c77068f3377db3b4809ce0912cc3] # # patch "sope-core/NGStreams/common.h" # from [6b3c6a2bb8aa5769aa7672be129daa8d958deed1] # to [1c56c74d1481888e91d4540abb6c6af939e29760] # # patch "sope-gdl1/GDLAccess/EODatabaseFault.m" # from [39a385b41e25a05b2c6de3db4812b695f0246db9] # to [d43e06ab7a0dcede51cf94b5fe50d87481cb0b05] # # patch "sope-gdl1/GDLAccess/EOFault.m" # from [48205793ddd1c54063e556c73bfe296bb5e08ab4] # to [fe711c2f7711ea6ab487eae9c5bfe744dee7a514] # # patch "sope-gdl1/GDLAccess/EOFaultHandler.m" # from [2e2b559fdca27b14229dbe71a0b27d7f49a2bec9] # to [af382885f12b5524ac6af6fe6ebe83f1f71764a0] # # patch "sope-gdl1/GDLAccess/EOKeyComparisonQualifier+SQL.m" # from [be0a5114f5e53f3667f56ac464807f2501d229c5] # to [6bd2a6d106a2975a76bc8faa6cb15a0301b7a9a2] # # patch "sope-gdl1/GDLAccess/EORecordDictionary.m" # from [e3f92f26a9a7773ef40d641b1de8623f911da1a1] # to [3b82ce2c21444a2db1eae92ab582b47b2ad85f78] # # patch "sope-gdl1/GDLAccess/common.h" # from [dc86e9e1d1625a95619642863250ad950ba74a51] # to [c9e30b6f0d38f32f695b4ceb3d56184ebff28c7f] # # patch "sope-ldap/NGLdap/EOQualifier+LDAP.m" # from [8ec13c777164cced9931fa91c43830905676a25b] # to [de0e7b85962429e229eb6e23f71d41f09443b80b] # # patch "sope-mime/NGImap4/imCommon.h" # from [ff80057bc0474f1dd3bcfcff7a7fbb39117d18f9] # to [f8376f722d03b0812bc9b9aab263c1e75252811f] # ============================================================ --- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m b5585a8779d92fe699f3edc58c3e81817fb2850c +++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m aa0635be8440b78c2a0dc75ec120972b198bfd14 @@ -25,7 +25,7 @@ #include "common.h" #include <string.h> -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 #define METHOD_NULL NULL #define object_is_instance(XXX) (XXX != nil) #define class_get_class_method class_getClassMethod @@ -479,7 +479,7 @@ static inline void _fillInfo(WOKeyPathAs if (method != METHOD_NULL) { info->access.method = method_get_imp(method); -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) info->retType = *(method_getTypeEncoding(method)); #else info->retType = *(method->method_types); ============================================================ --- sope-appserver/NGObjWeb/DynamicElements/WOComponentContent.m 533a4a0b97a6336e13d02989c6fb4a23c2b24f9b +++ sope-appserver/NGObjWeb/DynamicElements/WOComponentContent.m 12cfd6384312d2c37399397ae4b0a2c4088eb758 @@ -75,7 +75,7 @@ static Class NSDateClass = Nil; printf(" "); printf("content: [%s %s]: %0.3fs\n", [[component name] cString], -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) sel_getName(_cmd), #else sel_get_name(_cmd), @@ -115,7 +115,7 @@ static Class NSDateClass = Nil; printf(" "); printf("content: [%s %s]: %0.3fs\n", [[component name] cString], -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) sel_getName(_cmd), #else sel_get_name(_cmd), @@ -165,7 +165,7 @@ static Class NSDateClass = Nil; printf(" "); printf("content: [%s %s]: %0.3fs\n", [[component name] cString], -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) sel_getName(_cmd), #else sel_get_name(_cmd), ============================================================ --- sope-appserver/NGObjWeb/DynamicElements/WOComponentReference.m ee75523fe44a4efe5be252f5bf8a950945587737 +++ sope-appserver/NGObjWeb/DynamicElements/WOComponentReference.m 75ab16b9fc8ba0482db38a770a35e6d32e76442e @@ -179,7 +179,7 @@ _updateComponent(WOComponentReference *s printf(" "); printf("[%s %s]: %0.3fs\n", [[child name] cString], -#if APPLE_RUNTIME || NeXT_RUNTIME +#if APPLE_RUNTIME || NeXT_RUNTIME || (__GNU_LIBOBJC__ >= 20100911) sel_getName(_cmd), #else sel_get_name(_cmd), ============================================================ --- sope-appserver/NGObjWeb/DynamicElements/WOCompoundElement.m d48af17bf652c81acd850ad9b1233f3d0beb18bb +++ sope-appserver/NGObjWeb/DynamicElements/WOCompoundElement.m 9b8dd5e24a25bf4b061ca1d97588896da02bec15 @@ -262,7 +262,7 @@ static int descriptiveIDs = -1; printf(" "); #endif printf(" Child of 0x%p: i[%i] %s <%s>: %0.3fs\n", -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) self, i, [[_ctx elementID] cString], class_getName([child class]), #else self, i, [[_ctx elementID] cString], [child class]->name, ============================================================ --- sope-appserver/NGObjWeb/NSObject+WO.m 789d7b5f193b93767a300bac82b35df83e2fd20c +++ sope-appserver/NGObjWeb/NSObject+WO.m fad2f5b5db9fff5441fe2e9ae7e075292ef9c549 @@ -131,7 +131,7 @@ static inline SEL _getSetSel(register co register unsigned _len) { char buf[259]; _getSetSelName((unsigned char *)buf, _key, _len); -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) return sel_getUid(buf); #else return sel_get_uid(buf); @@ -259,7 +259,7 @@ IMP WOGetKVCGetMethod(id object, NSStrin if (object == nil) return NULL; if (_key == nil) return NULL; -#if GNU_RUNTIME && !(defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) +#if GNU_RUNTIME && !(defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) { unsigned keyLen; char *buf; @@ -308,7 +308,7 @@ id WOGetKVCValueUsingMethod(id object, N char *buf; buf = malloc(keyLen + 1); [_key getCString:buf]; -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) getSel = sel_getUid(buf); #else getSel = sel_get_uid(buf); ============================================================ --- sope-appserver/NGObjWeb/SoObjects/SoObjCClass.m f59757c12ed63d52cdd36f7ecb4a4659456b2818 +++ sope-appserver/NGObjWeb/SoObjects/SoObjCClass.m 596e8c01916a4a93c6cd9ae92a6949ffcf7d4ba1 @@ -43,7 +43,7 @@ a = [NSMutableArray array]; -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) Method *p, *m; int count; ============================================================ --- sope-appserver/NGObjWeb/SoObjects/SoSelectorInvocation.m b3939614dee42b4e061b53e815b2716425b8c337 +++ sope-appserver/NGObjWeb/SoObjects/SoSelectorInvocation.m 55963870272ad54919b719d467dce0d88d09f8ac @@ -28,7 +28,7 @@ #include <DOM/EDOM.h> #include "common.h" -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # define sel_get_any_uid sel_getUid # define sel_register_name sel_registerName #endif ============================================================ --- sope-appserver/NGObjWeb/WOApplication.m 01ed97099e592b60adccb66f2bb27dce4a078309 +++ sope-appserver/NGObjWeb/WOApplication.m ab6b6620ac342dd7557db32ce2e4841002df9562 @@ -38,7 +38,7 @@ #include "common.h" #include <time.h> -#if GNU_RUNTIME && !defined(__GNUSTEP_RUNTIME__) +#if GNU_RUNTIME && !defined(__GNUSTEP_RUNTIME__) && !(__GNU_LIBOBJC__ >= 20110608) # include <objc/sarray.h> #endif ============================================================ --- sope-appserver/NGObjWeb/WOComponent+Sync.m 8289c302efc35c56ac2f94900d2416a10d0c96fa +++ sope-appserver/NGObjWeb/WOComponent+Sync.m 0ec059d57873a77846d61792bf5751de9ed69cae @@ -23,7 +23,7 @@ #include <NGObjWeb/WOAssociation.h> #include "common.h" -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # include <objc/objc.h> # define class_get_instance_method class_getInstanceMethod # define method_get_imp method_getImplementation ============================================================ --- sope-appserver/NGObjWeb/WODirectActionRequestHandler.m abcd4d153248d1f6bd45e102d8fa9f1510d51bcd +++ sope-appserver/NGObjWeb/WODirectActionRequestHandler.m 87a44474c3bfef008ae374c440d929da70ccaff1 @@ -70,7 +70,7 @@ static Class NSDateClass = Nil; - (BOOL)isComponentClass:(Class)_clazz { if (_clazz == Nil) return NO; -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) while ((_clazz = class_getSuperclass(_clazz)) != Nil) { #else while ((_clazz = _clazz->super_class) != Nil) { ============================================================ --- sope-appserver/NGObjWeb/WOSession.m 2838dafb7c9f02ee141033403c30d4f829abe7e6 +++ sope-appserver/NGObjWeb/WOSession.m b0d6df4a0c71d3c4293d7083c11f6e68c6f1a1b7 @@ -33,7 +33,7 @@ #include "common.h" #include <string.h> -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # define sel_get_name sel_getName #endif ============================================================ --- sope-appserver/NGObjWeb/common.h da608eeb9694956da84ee937d6c0c173d1dd4fae +++ sope-appserver/NGObjWeb/common.h 58229122fdf6292d149c90510ae7da9189e1945d @@ -51,7 +51,7 @@ #include <NGExtensions/NGLogging.h> #include <NGStreams/NGStreams.h> -#if NeXT_RUNTIME || APPLE_RUNTIME +#if NeXT_RUNTIME || APPLE_RUNTIME || (__GNU_LIBOBJC__ >= 20100911) # ifndef sel_get_name # define sel_get_name(__XXX__) sel_getName(__XXX__) # define sel_get_any_uid(__XXX__) sel_getUid(__XXX__) ============================================================ --- sope-core/EOControl/EOKeyValueCoding.m d767115c5d13fb624c1539a494784e306e50cabf +++ sope-core/EOControl/EOKeyValueCoding.m 05026433be504cab09fddc130b615e848745d940 @@ -25,7 +25,7 @@ #if GNU_RUNTIME -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # define sel_get_any_uid sel_getUid # include <objc/runtime.h> #else ============================================================ --- sope-core/EOControl/EOValidation.m ede5fb08ebc5632ee82f623db062870e065b9b80 +++ sope-core/EOControl/EOValidation.m f575e0bc45b4da79fdca5286cda96f0880582dbb @@ -24,7 +24,7 @@ #include "EONull.h" #include "common.h" -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # define sel_get_any_uid sel_getUid #endif ============================================================ --- sope-core/EOControl/common.h 9423a5c5505561fc183924bdb2c82d55fabaf061 +++ sope-core/EOControl/common.h b5d35a6e03c74d4b89c3fadeb4c11c8cd1f463e3 @@ -39,6 +39,12 @@ # endif #endif +#if __GNU_LIBOBJC__ >= 20100911 +# ifndef sel_eq +# define sel_eq(__A__,__B__) sel_isEqual(__A__,__B__) +# endif +#endif + #ifndef ASSIGN # define ASSIGN(object, value) \ ({id __object = (id)object; \ ============================================================ --- sope-core/NGExtensions/EOExt.subproj/EOQualifier+CtxEval.m 3e1ff61981b7b80fb4accdecfeaac668f32072d7 +++ sope-core/NGExtensions/EOExt.subproj/EOQualifier+CtxEval.m 6ac0c0db9c7e4448024ff260827e3e689eb6f8df @@ -29,7 +29,7 @@ # import <objc/objc.h> # import <extensions/objc-runtime.h> #elif GNUSTEP_BASE_LIBRARY -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # define sel_get_name sel_getName # import <objc/runtime.h> #else ============================================================ --- sope-core/NGExtensions/FdExt.subproj/NSNull+misc.m 53462c1d9ee5ecb4c97c13e24025a978deb77f78 +++ sope-core/NGExtensions/FdExt.subproj/NSNull+misc.m 1d6430c2ba315a51baa4319685843cd1f056552a @@ -23,7 +23,7 @@ #include "common.h" #if LIB_FOUNDATION_LIBRARY || GNUSTEP_BASE_LIBRARY -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # include <objc/runtime.h> #else # include <objc/objc-api.h> ============================================================ --- sope-core/NGExtensions/NGBundleManager.m afdb978b26102d2324760ad3249682c65e823172 +++ sope-core/NGExtensions/NGBundleManager.m 50ba07bbaf49fa4fe3a44639d91ad429b0509644 @@ -2005,7 +2005,7 @@ static BOOL debugLanguageLookup = NO; sprintf (buffer, "<%s %p fullPath: %s infoDictionary: %p loaded=%s>", -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) (char*)class_getName([self class]), #else (char*)object_get_class_name(self), ============================================================ --- sope-core/NGExtensions/NGExtensions/NGMemoryAllocation.h 8eb6eb8e3bc0fcce9b21576022c1d85887f6af3e +++ sope-core/NGExtensions/NGExtensions/NGMemoryAllocation.h f12ec337b0c922ed7d8c7e9c2df57d77c549d7c1 @@ -22,7 +22,7 @@ #ifndef __NGExtensions_NGMemoryAllocation_H__ #define __NGExtensions_NGMemoryAllocation_H__ -#if __GNU_LIBOBJC__ != 20100911 +#if !(__GNU_LIBOBJC__ >= 20100911) #include <objc/objc-api.h> #endif ============================================================ --- sope-core/NGExtensions/common.h 819ac09f20d4c77e1f9bdcf21e2bf9368d59a8ba +++ sope-core/NGExtensions/common.h 910ffba8b124c77068f3377db3b4809ce0912cc3 @@ -41,7 +41,7 @@ #endif #if GNU_RUNTIME -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # include <objc/runtime.h> #else # import <objc/objc-api.h> ============================================================ --- sope-core/NGStreams/common.h 6b3c6a2bb8aa5769aa7672be129daa8d958deed1 +++ sope-core/NGStreams/common.h 1c56c74d1481888e91d4540abb6c6af939e29760 @@ -40,7 +40,7 @@ #endif #ifdef GNU_RUNTIME -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # include <objc/runtime.h> #else # include <objc/objc-api.h> ============================================================ --- sope-gdl1/GDLAccess/EODatabaseFault.m 39a385b41e25a05b2c6de3db4812b695f0246db9 +++ sope-gdl1/GDLAccess/EODatabaseFault.m d43e06ab7a0dcede51cf94b5fe50d87481cb0b05 @@ -66,7 +66,7 @@ typedef struct { if (fault == nil) return nil; -#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) || (__GNU_LIBOBJC__ >= 20100911) if (class_getInstanceSize([fault class]) < class_getInstanceSize([self class])) { #else if ([fault class]->instance_size < ((Class)self)->instance_size) { @@ -77,7 +77,7 @@ typedef struct { @"Instances from class %@ must be at least %d in size " @"to fault", NSStringFromClass([fault class]), -#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) || (__GNU_LIBOBJC__ >= 20100911) class_getInstanceSize([self class])]; #else ((Class)self)->instance_size]; @@ -132,7 +132,7 @@ typedef struct { fault = [NSMutableArray allocWithZone:zone]; -#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) || (__GNU_LIBOBJC__ >= 20100911) if (class_getInstanceSize([fault class]) < class_getInstanceSize([self class])) { #else if ([fault class]->instance_size < ((Class)(self))->instance_size) { @@ -143,7 +143,7 @@ typedef struct { @"Instances from class %s must be at least %d " @"in size to fault", NSStringFromClass([fault class]), -#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) || (__GNU_LIBOBJC__ >= 20100911) class_getInstanceSize([self class])]; #else ((Class)self)->instance_size]; ============================================================ --- sope-gdl1/GDLAccess/EOFault.m 48205793ddd1c54063e556c73bfe296bb5e08ab4 +++ sope-gdl1/GDLAccess/EOFault.m fe711c2f7711ea6ab487eae9c5bfe744dee7a514 @@ -38,7 +38,7 @@ typedef struct { Class isa; } *my_objc_object; -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # warning TODO: implement for NeXT/Apple runtime! # define object_is_instance(object) (object!=nil?YES:NO) # define class_get_super_class class_getSuperclass @@ -51,7 +51,7 @@ typedef struct objc_method *Method_ ((object!=nil)&&CLS_ISCLASS(((my_objc_object)object)->isa)) #endif -#if __GNU_LIBOBJC__ == 20100911 +#if __GNU_LIBOBJC__ >= 20100911 # define METHOD_NULL NULL # define class_get_super_class class_getSuperclass # define object_is_instance(object) (object!=nil?YES:NO) @@ -111,7 +111,7 @@ typedef struct objc_method *Method_ if (fault == nil) return NO; if (EOFaultClass == Nil) EOFaultClass = [EOFault class]; -#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) || (__GNU_LIBOBJC__ >= 20100911) for (clazz = ((EOFault *)fault)->isa; clazz; clazz = class_getSuperclass(clazz)) { #else for (clazz = ((EOFault *)fault)->isa; clazz; clazz = clazz->super_class) { ============================================================ --- sope-gdl1/GDLAccess/EOFaultHandler.m 2e2b559fdca27b14229dbe71a0b27d7f49a2bec9 +++ sope-gdl1/GDLAccess/EOFaultHandler.m af382885f12b5524ac6af6fe6ebe83f1f71764a0 @@ -29,7 +29,7 @@ #include "EOFault.h" #include "common.h" -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # define METHOD_NULL NULL # define class_get_super_class class_getSuperclass # define object_is_instance(object) (object!=nil?YES:NO) @@ -47,6 +47,9 @@ typedef struct objc_method *Method_ # define class_get_instance_method class_getInstanceMethod #endif +#if !(__GNU_LIBOBJC__ >= 20100911) +# define sel_getTypeEncoding(selector) ((selector)->sel_types) +#endif @implementation EOFaultHandler @@ -114,7 +117,7 @@ typedef struct objc_method *Method_ - (BOOL)conformsToProtocol:(Protocol *)_protocol forFault:(EOFault *)_fault { Class class, sClass; -#if GNU_RUNTIME && !defined(__GNUSTEP_RUNTIME__) && __GNU_LIBOBJC__ != 20100911 +#if GNU_RUNTIME && !defined(__GNUSTEP_RUNTIME__) && !(__GNU_LIBOBJC__ >= 20100911) struct objc_protocol_list* protos; int i; @@ -181,7 +184,7 @@ typedef struct objc_method *Method_ /* first check for EOFault's own methods */ -#if __GNU_LIBOBJC__ != 20100911 +#if !(__GNU_LIBOBJC__ >= 20100911) if (types == NULL) { // lookup method for selector struct objc_method *mth; @@ -202,7 +205,7 @@ typedef struct objc_method *Method_ #if GNU_RUNTIME // GNU runtime selectors may be typed, a lookup may not be necessary if (types == NULL) - types = _selector->sel_types; + types = sel_getTypeEncoding(_selector); #endif if (types == NULL) return nil; ============================================================ --- sope-gdl1/GDLAccess/EOKeyComparisonQualifier+SQL.m be0a5114f5e53f3667f56ac464807f2501d229c5 +++ sope-gdl1/GDLAccess/EOKeyComparisonQualifier+SQL.m 6bd2a6d106a2975a76bc8faa6cb15a0301b7a9a2 @@ -28,12 +28,6 @@ #import "EOSQLQualifier.h" #include "common.h" -#if NeXT_RUNTIME || APPLE_RUNTIME -# ifndef SEL_EQ -# define SEL_EQ(__A__,__B__) (__A__==__B__?YES:NO) -# endif -#endif - @implementation EOKeyComparisonQualifier(SQLQualifier) /* SQL qualifier generation */ ============================================================ --- sope-gdl1/GDLAccess/EORecordDictionary.m e3f92f26a9a7773ef40d641b1de8623f911da1a1 +++ sope-gdl1/GDLAccess/EORecordDictionary.m 3b82ce2c21444a2db1eae92ab582b47b2ad85f78 @@ -39,7 +39,7 @@ # include <NGExtensions/NGObjectMacros.h> #endif -#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ == 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) +#if (defined(__GNU_LIBOBJC__) && (__GNU_LIBOBJC__ >= 20100911)) || defined(APPLE_RUNTIME) || defined(__GNUSTEP_RUNTIME__) # include <objc/runtime.h> # define method_get_imp method_getImplementation # define class_get_instance_method class_getInstanceMethod ============================================================ --- sope-gdl1/GDLAccess/common.h dc86e9e1d1625a95619642863250ad950ba74a51 +++ sope-gdl1/GDLAccess/common.h c9e30b6f0d38f32f695b4ceb3d56184ebff28c7f @@ -50,8 +50,18 @@ #if NeXT_RUNTIME || APPLE_RUNTIME # define sel_eq(sela,selb) (sela==selb?YES:NO) +# ifndef SEL_EQ +# define SEL_EQ(__A__,__B__) (__A__==__B__?YES:NO) +# endif #endif +#if __GNU_LIBOBJC__ >= 20100911 +# define sel_eq(__A__,__B__) sel_isEqual(__A__,__B__) +# ifndef SEL_EQ +# define SEL_EQ(__A__,__B__) sel_isEqual(__A__,__B__) +# endif +#endif + #if LIB_FOUNDATION_LIBRARY # import <extensions/objc-runtime.h> #else ============================================================ --- sope-ldap/NGLdap/EOQualifier+LDAP.m 8ec13c777164cced9931fa91c43830905676a25b +++ sope-ldap/NGLdap/EOQualifier+LDAP.m de0e7b85962429e229eb6e23f71d41f09443b80b @@ -26,6 +26,10 @@ #define sel_eq(sel1, sel2) ((sel1)) == ((sel2)) #endif +#if __GNU_LIBOBJC__ >= 20100911 +# define sel_eq(__A__,__B__) sel_isEqual(__A__,__B__) +#endif + @interface EOQualifier(LDAPPrivates) - (void)addToLDAPFilterString:(NSMutableString *)_s inContext:(id)_ctx; ============================================================ --- sope-mime/NGImap4/imCommon.h ff80057bc0474f1dd3bcfcff7a7fbb39117d18f9 +++ sope-mime/NGImap4/imCommon.h f8376f722d03b0812bc9b9aab263c1e75252811f @@ -43,6 +43,12 @@ # endif #endif +#if __GNU_LIBOBJC__ >= 20100911 +# ifndef sel_eq +# define sel_eq(__A__,__B__) sel_isEqual(__A__,__B__) +# endif +#endif + @interface NSObject(NGImap4_OSXHacks) - (void)subclassResponsibility:(SEL)_acmd; - (void)notImplemented:(SEL)_acmd; |
I can also confirm that the attached patch, "sope_gcc_4_7.diff", resolved the issue. Tested on ArchLinux which also recently switched to GCC 4.7.0. |
|
Patch pushed: http://mtn.inverse.ca/revision/diff/6f6c97530e1ca62307245ec25b6fab1b9399f99d/with/0681181778150eed5fe08a39588d7884861cdbf2 |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-04-09 16:18 | avoegele | New Issue | |
2012-04-09 16:18 | avoegele | File Added: sope_gcc_4_7.diff | |
2012-04-13 21:12 | kwirk | Note Added: 0003738 | |
2012-05-09 15:44 | ludovic | Target Version | => 1.3.15 |
2012-05-09 15:57 | ludovic | Note Added: 0003876 | |
2012-05-09 15:57 | ludovic | Status | new => resolved |
2012-05-09 15:57 | ludovic | Fixed in Version | => 1.3.15 |
2012-05-09 15:57 | ludovic | Resolution | open => fixed |
2012-05-09 15:57 | ludovic | Assigned To | => ludovic |
2012-05-09 15:57 | ludovic | Status | resolved => closed |