From f77619ab3c176c70c081da527c21630b8635942a Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Mon, 15 Feb 2010 09:35:20 +0000 Subject: [PATCH] Attempts to cope with new runtime's failure to link without base. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29636 72102866-910b-0410-8b05-ffd578937521 --- config/config.constant-string-class.m | 3 +-- config/config.forward.m | 4 ++-- config/config.forward2.m | 2 +- config/config.joinable.m | 3 +-- config/config.loadtest.m | 21 ++++------------- config/config.nextrt.m | 2 +- config/config.non-fragile-ivars.m | 2 ++ config/config.objc.m | 21 +---------------- config/config.set_unexpected.m | 3 ++- config/config.unexpected.m | 3 ++- config/objc-common.g | 34 +++++++++++++++++++++++++++ 11 files changed, 52 insertions(+), 46 deletions(-) create mode 100644 config/objc-common.g diff --git a/config/config.constant-string-class.m b/config/config.constant-string-class.m index fd9130df5..67c96bc01 100644 --- a/config/config.constant-string-class.m +++ b/config/config.constant-string-class.m @@ -16,8 +16,7 @@ as an option to gcc. If it doesn't work, it means your gcc doesn't support this option. */ -#include -#include +#include "objc-common.g" /* Define our custom constant string class */ @interface FooConstantString : Object diff --git a/config/config.forward.m b/config/config.forward.m index cd37cb0e4..5bb882e20 100644 --- a/config/config.forward.m +++ b/config/config.forward.m @@ -1,5 +1,5 @@ -#include -#include + +#include "objc-common.g" int main (void) { diff --git a/config/config.forward2.m b/config/config.forward2.m index becbf4f9b..09d296fc6 100644 --- a/config/config.forward2.m +++ b/config/config.forward2.m @@ -1,4 +1,4 @@ -#include +#include "objc-common.g" int main (void) { diff --git a/config/config.joinable.m b/config/config.joinable.m index 0f83f8d56..7f9221235 100644 --- a/config/config.joinable.m +++ b/config/config.joinable.m @@ -3,8 +3,7 @@ * joinable (which it shouldn't be) and this program returns 0. */ -#include -#include +#include "objc-common.g" #include int diff --git a/config/config.loadtest.m b/config/config.loadtest.m index bcba4322b..edc60e4bf 100644 --- a/config/config.loadtest.m +++ b/config/config.loadtest.m @@ -1,20 +1,7 @@ -/* Dummy NXConstantString impl for so libobjc that doesn't include it */ -/* - Copyright (C) 2005 Free Software Foundation - Copying and distribution of this file, with or without modification, - are permitted in any medium without royalty provided the copyright - notice and this notice are preserved. -*/ -#ifndef NeXT_RUNTIME -#include -@implementation NXConstantString -@end -#endif +#include "objc-common.g" -#include - -@interface Test : Object +@interface Test : NSObject +(void) load; +(int) test_result; @end @@ -25,4 +12,6 @@ static int test_result = 1; +(int) test_result {return test_result;} @end -int main (void) {return [Test test_result];} +int main (void) { +return [Test test_result]; +} diff --git a/config/config.nextrt.m b/config/config.nextrt.m index 215f26779..8034038ae 100644 --- a/config/config.nextrt.m +++ b/config/config.nextrt.m @@ -5,7 +5,7 @@ With the GNU runtime, this file does not link. */ -#include +#include "objc-common.g" int libobjects_nextrt_checker () { diff --git a/config/config.non-fragile-ivars.m b/config/config.non-fragile-ivars.m index 01b264e12..2c8177bf5 100644 --- a/config/config.non-fragile-ivars.m +++ b/config/config.non-fragile-ivars.m @@ -2,6 +2,8 @@ * Fails to build or returns 1 if the feature is not availale. */ +#include "objc-common.g" + int main() { diff --git a/config/config.objc.m b/config/config.objc.m index 79e856b76..b85545fb8 100644 --- a/config/config.objc.m +++ b/config/config.objc.m @@ -1,24 +1,5 @@ -/* Dummy NXConstantString impl for so libobjc that doesn't include it */ -/* - Copyright (C) 2005 Free Software Foundation - Copying and distribution of this file, with or without modification, - are permitted in any medium without royalty provided the copyright - notice and this notice are preserved. -*/ -#ifndef NeXT_RUNTIME -#include -@implementation NXConstantString -@end -#endif - -#include - -@interface NSObject : Object -@end - -@implementation NSObject -@end +#include "objc-common.g" @interface Test : Object +(int) testResult; diff --git a/config/config.set_unexpected.m b/config/config.set_unexpected.m index b8af4b2f9..2eea229bf 100644 --- a/config/config.set_unexpected.m +++ b/config/config.set_unexpected.m @@ -1,4 +1,5 @@ -#include + +#include "objc-common.g" int main (void) { diff --git a/config/config.unexpected.m b/config/config.unexpected.m index 26a5bac76..521ebc03a 100644 --- a/config/config.unexpected.m +++ b/config/config.unexpected.m @@ -1,4 +1,5 @@ -#include + +#include "objc-common.g" int main (void) { diff --git a/config/objc-common.g b/config/objc-common.g new file mode 100644 index 000000000..74dc0ce80 --- /dev/null +++ b/config/objc-common.g @@ -0,0 +1,34 @@ +/* Common information for all objc runtime tests. + */ +#include +#include + +#include + +#ifndef NeXT_RUNTIME +#include +@implementation NXConstantString +- (const char*) cString +{ + return 0; +} +- (unsigned int) length +{ + return 0; +} +@end +#endif + +/* Provide dummy implementations for NSObject and NSConstantString + * for runtime implementations which won't link without them. + */ + +@interface NSObject : Object +@end +@implementation NSObject +@end + +@interface NSConstantString : NSObject +@end +@implementation NSConstantString +@end