Hi David,
I checked
make messages=yes
and found that
gcc SRProxy.m -c -MMD -MP -DNeXT_Foundation_LIBRARY=1 -DNeXT_GUI_LIBRARY=1
-DNeXT_RUNTIME=1 -dynamic -fno-common -Wall -DGSWARN -DGSDIAGNOSE -Wno-import
-g -O2 -fno-strict-aliasing -fnext-runtime -m32 -Wno-deprecated-declarations
-Wno-deprecated -Wno-format-security -Wno-parentheses -Wno-import -I
/usr/local/ssl/include -I/Build/SRFoundation/derived_src -I.
-I/usr/local/include/ -F/Library/Frameworks/ -o
/Build/SRFoundation/obj/SRFoundation.obj/SRProxy.m.o
succeeds but
gcc SRProxy.m -c -MMD -MP -DNeXT_Foundation_LIBRARY=1 -DNeXT_GUI_LIBRARY=1
-DNeXT_RUNTIME=1 -dynamic -fno-common -Wall -DGSWARN -DGSDIAGNOSE -Wno-import
-g -O2 -fno-strict-aliasing -fnext-runtime -m64 -Wno-deprecated-declarations
-Wno-deprecated -Wno-format-security -Wno-parentheses -Wno-import -I
/usr/local/ssl/include -I/Build/SRFoundation/derived_src -I.
-I/usr/local/include/ -F/Library/Frameworks/ -o
/Build/SRFoundation/obj/SRFoundation.obj/SRProxy.m.o
produces the below reported error!? :-(
Andreas
>>>> - descriptionForInstanceMethod: is gone. Don't use it, use the runtime
>>>> functions instead.
>>>
>>> Thanks for the hint.
>>>
>>> Where would I find a list (the declaration) of these runtime functions on
>>> MacOSX and GNUstep? Are they even identically named? I guess no!?
>>>
>>
>> Here is the top hit for a DDG search for ‘Objective-C Runtime’:
>>
>> https://developer.apple.com/documentation/objectivec/objective-c_runtime?language=objc
>>
>> <https://developer.apple.com/documentation/objectivec/objective-c_runtime?language=objc>
>>
>> It provides you with the Objective-C Runtime API Reference. The GNUstep
>> runtime also implements this interface and is source compatible
>
> That’s great!
>
>> (it also implements some non-portable functions, which I would suggest that
>> you avoid). You can find these all in objc/runtime.h.
>>
>> The method that you are probably looking for is
>> protocol_getMethodDescription.
>
> I wonder why I haven’t found that. Thanks!
>
> struct objc_method_description methodDesc =
> protocol_getMethodDescription(_protocol, aSelector, YES, YES);
> types = methodDesc.types;
>
> This works great as long as I build with -m32. But as soon as I switch to
>
> ...
> ADDITIONAL_OBJCFLAGS += -m64 -Wno-deprecated-declarations -Wno-deprecated
> -Wno-format-security
> ADDITIONAL_CFLAGS += -m64
> ADDITIONAL_LDFLAGS += -m64
> …
>
> in GNUmakefile I get
>
> Compiling file SRProxy.m ...
> ~~ ^~~~~~~~~~~~~
> %lu
> (unsigned long)
> SRProxy.m:425:54: warning: implicit declaration of function
> 'protocol_getMethodDescription' is invalid in C99
> [-Wimplicit-function-declaration]
> struct objc_method_description methodDesc =
> protocol_getMethodDescription(_protocol, aSelector, YES, YES);
> ^
> SRProxy.m:425:41: error: variable has incomplete type 'struct
> objc_method_description'
> struct objc_method_description methodDesc =
> protocol_getMethodDescription(_protocol, aSelector, YES, YES);
> ^
> SRProxy.m:425:17: note: forward declaration of 'struct
> objc_method_description'
> struct objc_method_description methodDesc =
> protocol_getMethodDescription(_protocol, aSelector, YES, YES);
> ^
> Any idea why this works for 32bit code only. I am currently trying to build
> this on MacOSX 10.10. MacOSX 10.12 gave the same error!? :-(
>
> Thanks so much,
>
> Andreas
>
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep