|
From: | Blake Nicholson |
Subject: | Re: PATCH: suppress deprecation warnings on OS X Leopard |
Date: | Sun, 30 Mar 2008 09:55:18 -0400 |
Nicola,Unfortunately, I think the sample output I sent was not a good representation. Sorry about that. I went ahead and built base under apple-apple-apple and redirected stderr to a file. I've attached the file so you can see all the error messages (many, many duplicates). Most of the error messages are from things in objc-gnu2next.h and GSObjCRuntime.h.
Note that this attached stderr output is with the modification you suggested for the Additions GNUmakefile in place. The warnings when compiling GSObjCRuntime.m are suppressed.
Thanks, Blake
out.log
Description: Binary data
On Mar 29, 2008, at 7:05 AM, Nicola Pero wrote:
Maybe we could add the flag only when compiling GSObjCRuntime.m ? After all, that file is the only filewhich 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] |