* Source/Additions/GSObjCRuntime.m (GSSelectorFromNameAndTypes):

With gcc 4.6 libobjc, GSSelectorFromNameAndTypes was calling some
functions like sel_get_any_typed_uid that were not declared (they're
declared in objc/objc-api.h which cannot be imported). I had to copy
over these function declarations, otherwise incorrect function calls
are generated which corrupt selectors (at least on x86-64).



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32968 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Eric Wasylishen 2011-05-02 20:10:54 +00:00
parent 7858806cfa
commit 5bc5e9a64b
2 changed files with 19 additions and 0 deletions

View file

@ -1,3 +1,12 @@
2011-05-02 Eric Wasylishen <ewasylishen@gmail.com>
* Source/Additions/GSObjCRuntime.m (GSSelectorFromNameAndTypes):
With gcc 4.6 libobjc, GSSelectorFromNameAndTypes was calling some
functions like sel_get_any_typed_uid that were not declared (they're
declared in objc/objc-api.h which cannot be imported). I had to copy
over these function declarations, otherwise incorrect function calls
are generated which corrupt selectors (at least on x86-64).
2011-05-02 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSNumberFormatter.m: Fix broken copying of formatters,

View file

@ -138,6 +138,16 @@ GSSelectorFromName(const char *name)
return sel_getUid(name);
}
// FIXME: Hack - need to provide these function declarations
// for gcc 4.6 libobjc. They're called below, and they're declared
// in objc-api.h, but we're using runtime.h, so objc-api.h can't be imported.
#if defined (__GNU_LIBOBJC__)
SEL sel_get_any_typed_uid(const char *name);
SEL sel_get_typed_uid(const char *name, const char*);
SEL sel_register_name(const char *name);
SEL sel_register_typed_name(const char *name, const char*type);
#endif
SEL
GSSelectorFromNameAndTypes(const char *name, const char *types)
{