gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PATCH: suppress deprecation warnings on OS X Leopard


From: Nicola Pero
Subject: Re: PATCH: suppress deprecation warnings on OS X Leopard
Date: Sat, 29 Mar 2008 11:05:21 +0000

Maybe we could add the flag only when compiling GSObjCRuntime.m ? After all, that file is the only file
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 Blake

Sorry 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 Leopard

The 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









reply via email to

[Prev in Thread] Current Thread [Next in Thread]