|
From: | Nicola Pero |
Subject: | Re: PATCH: suppress deprecation warnings on OS X Leopard |
Date: | Sat, 29 Mar 2008 11:05:21 +0000 |
which should access the runtime internals directly ? :-) Something like the following (added to the GNUmakefile) should do it ifneq ($(OBJC_RUNTIME_LIB), gnu) GSObjCRuntime.m_FILE_FLAGS = -Wno-deprecated-declarations endif Does it work for you ?Of course, it would also be worth updating GSObjCRuntime.m so that it works with the new Apple runtime stuff. ;-)
Thanks On 24 Mar 2008, at 14:13, Blake Nicholson wrote:
Nicola,Thanks for your reply. I've pasted in a small snippet of the make output below. These are deprecation warnings related to ObjC 2.0. The vast majority of the deprecated items are in runtime.h, but there are a few other declarations in other headers that are deprecated as well. The items are marked with the macro OBJC2_UNAVAILABLE, which has the underlying definition of "__attribute__((deprecated))".An alternative is to execute make as 'make OBJCFLAGS="-Wno- deprecated-declarations"', but my hope was that this could be incorporated into target.make since I can't think of a reason someone would want these warnings enabled.Below the make output snippet, I pasted in the corresponding snippet of runtime.h that generates these warnings. I hope this is enough information to be helpful, but let me know if you need something else.Thanks, Blake *** snippet of make output ***GSObjCRuntime.m:448: warning: ‘objc_class’ is deprecated (declared at <built-in>:0) GSObjCRuntime.m:449: warning: ‘objc_class’ is deprecated (declared at <built-in>:0) GSObjCRuntime.m:451: warning: ‘super_class’ is deprecated (declared at /usr/include/objc/runtime.h:47) GSObjCRuntime.m:452: warning: ‘name’ is deprecated (declared at / usr/include/objc/runtime.h:48) GSObjCRuntime.m:453: warning: ‘version’ is deprecated (declared at / usr/include/objc/runtime.h:49) GSObjCRuntime.m:454: warning: ‘info’ is deprecated (declared at / usr/include/objc/runtime.h:50) GSObjCRuntime.m:457: warning: ‘instance_size’ is deprecated (declared at /usr/include/objc/runtime.h:51) GSObjCRuntime.m:461: warning: ‘objc_ivar’ is deprecated (declared at /usr/include/objc/runtime.h:39) GSObjCRuntime.m:468: warning: ‘objc_ivar_list’ is deprecated (declared at /usr/include/objc/runtime.h:52)*** snippet of runtime.h header definition that causes the warnings ***struct objc_class { Class isa; #if !__OBJC2__Class super_class OBJC2_UNAVAILABLE; const char *name OBJC2_UNAVAILABLE; long version OBJC2_UNAVAILABLE; long info OBJC2_UNAVAILABLE; long instance_size OBJC2_UNAVAILABLE; struct objc_ivar_list *ivars OBJC2_UNAVAILABLE; struct objc_method_list **methodLists OBJC2_UNAVAILABLE; struct objc_cache *cache OBJC2_UNAVAILABLE; struct objc_protocol_list *protocols OBJC2_UNAVAILABLE;#endif } OBJC2_UNAVAILABLE; /* Use `Class` instead of `struct objc_class *` */ On Mar 24, 2008, at 7:47 AM, Nicola Pero wrote:Hi BlakeSorry for not answering before - I don't have Leopard, so I don't really know what warnings you are trying to suppress. ;-)Can you send us the output of 'make messages=yes' on Mac OS X that shows the warnings you are wanting to suppress ?Thanks On 22 Mar 2008, at 14:45, Blake Nicholson wrote:I sent this a few days back and haven't heard anything so I thought I'd try again. I'm not sure if I haven't heard anything because few people are running Leopard, this isn't a patch people think should be applied, or if everyone is simply busy with other things.Whatever the case may be, if anyone can spare a few minutes to consider this patch, I'd appreciate it. Two specific questions I have are:1) Is target.make an okay place to put this or should individual GNUstep sub-projects make their own decision on whether to add this to their relevant makefiles? 2) Is INTERNAL_OBJCFLAGS the correct variable to which this compiler setting should be added?Thanks, Blake Begin forwarded message:From: Blake Nicholson <address@hidden> Date: March 18, 2008 4:00:28 PM GMT-04:00 To: address@hidden Subject: PATCH: suppress deprecation warnings on OS X LeopardThe following patch modifies target.make so that it adds the compiler option -Wno-deprecated-declarations when compiling GNUstep on Mac OS X 10.5 (Leopard) using Apple's GCC. Is this kind of wholesale disabling of warnings okay, or should this be done on an individual GNUmakefile level?Thanks, Blake Index: target.make =================================================================== --- target.make (revision 26339) +++ target.make (working copy) @@ -343,6 +343,10 @@ ifeq ($(findstring darwin7, $(GNUSTEP_TARGET_OS)), darwin7) DYLIB_EXTRA_FLAGS += -Wl,-single_module endif +# suppress deprecation warnings on OS X 10.5 (Leopard) +ifeq ($(findstring darwin9, $(GNUSTEP_TARGET_OS)), darwin9) + INTERNAL_OBJCFLAGS += -Wno-deprecated-declarations +endif SHARED_LIB_LINK_CMD = \ $(CC) $(SHARED_LD_PREFLAGS) \ _______________________________________________ Gnustep-dev mailing list address@hidden http://lists.gnu.org/mailman/listinfo/gnustep-dev_______________________________________________ Gnustep-dev mailing list address@hidden http://lists.gnu.org/mailman/listinfo/gnustep-dev
[Prev in Thread] | Current Thread | [Next in Thread] |