Commit graph

62 commits

Author SHA1 Message Date
David Chisnall
7a80adeb9b A huge blob of changes to make -base build with libobjc2, without using the old libobjc2 headers.
Most of these changes involve simply removing direct manipulation of any runtime structures and replacing them with runtime function calls.  For example class->name becomes class_getName(class) and so on.

libobjc2, like the Apple runtime, the NeXT runtime, and every version of the Objective-C spec, calls the class pointer in id isa.  A few files now have #define class_pointer isa at the top.  This line replaces class_pointer in the old GNU libobjc headers with isa so either class_pointer or isa can be used for accessing the class of an object.  Note: object_getClass() should be used in most cases because, in some future version of the runtime, this will skip things like lock classes and other hidden classes (e.g. KVO classes).

All of the old forwarding stuff has been removed.  Most of this stuff followed convoluted code paths that ended with an exception.  A few simply broke in exciting ways.  Hopefully no one has used them for the last ten years or so, but we can bring them back with some #ifndef stuff if they're really needed by anyone.

There is currently a bug in configure, which prevents dladdr() from being detected, so you need to manually tweak config.h to build - I have not fixed the fall-back code in objc-load.m to work with libobjc2, I just added a new version that uses the loader's functionality directly.  

Although -base now builds, it builds with a lot of warnings.  <string.h> is missing from a lot of files, so memcpy() and strlen() generate implicit function declaration warnings.  

Additionally, libobjc2 does still provide the sel_{get,register}_*() functions, but they're wrappers around the newer API ones.  These are deprecated and are not exposed in the headers.  Although they work, we should be replacing them with the libobjc2 versions as soon as possible.

This incorporates a patch by Eric.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31265 72102866-910b-0410-8b05-ffd578937521
2010-09-09 15:06:09 +00:00
Richard Frith-MacDonald
f784646663 generalize define from __MINGW32__ to __MINGW__
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30001 72102866-910b-0410-8b05-ffd578937521
2010-03-19 12:10:11 +00:00
Richard Frith-MacDonald
7cc69dfaae Simplify header inclusion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29669 72102866-910b-0410-8b05-ffd578937521
2010-02-19 08:12:46 +00:00
Richard Frith-MacDonald
85760d2563 move a bit more stuff into additions
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29666 72102866-910b-0410-8b05-ffd578937521
2010-02-18 16:18:54 +00:00
Richard Frith-MacDonald
c8a6832349 cosmetic tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29657 72102866-910b-0410-8b05-ffd578937521
2010-02-17 11:47:06 +00:00
Richard Frith-MacDonald
3cfdb02718 try using sigsetjmp
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28111 72102866-910b-0410-8b05-ffd578937521
2009-03-21 15:31:52 +00:00
Richard Frith-MacDonald
24d43481a8 Updates for 10.5 API changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27962 72102866-910b-0410-8b05-ffd578937521
2009-02-23 20:42:32 +00:00
Richard Frith-MacDonald
1ccdbc638c Portability fixes for 64bit intel.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27930 72102866-910b-0410-8b05-ffd578937521
2009-02-20 17:44:58 +00:00
Richard Frith-MacDonald
952af9c197 garbage collection fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27578 72102866-910b-0410-8b05-ffd578937521
2009-01-12 12:48:46 +00:00
Richard Frith-MacDonald
c4a2f62ad0 Applied patch #6677
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27080 72102866-910b-0410-8b05-ffd578937521
2008-11-17 13:45:32 +00:00
Richard Frith-MacDonald
5218659e48 consistency tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26989 72102866-910b-0410-8b05-ffd578937521
2008-10-29 06:47:46 +00:00
Richard Frith-MacDonald
b2b14398d2 allow developers more time to adapt to LGPLv3
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26606 72102866-910b-0410-8b05-ffd578937521
2008-06-08 10:38:33 +00:00
Richard Frith-MacDonald
6eb2dd77a7 mingw fixup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26346 72102866-910b-0410-8b05-ffd578937521
2008-03-18 15:53:45 +00:00
Richard Frith-MacDonald
4c90ec5088 hould be fix for bug #22514
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26315 72102866-910b-0410-8b05-ffd578937521
2008-03-16 18:17:49 +00:00
Richard Frith-MacDonald
bd4c02376c More stacktrace tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25689 72102866-910b-0410-8b05-ffd578937521
2007-12-06 13:39:03 +00:00
Richard Frith-MacDonald
a92018afe3 Minor stack trace improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25688 72102866-910b-0410-8b05-ffd578937521
2007-12-06 11:40:17 +00:00
Richard Frith-MacDonald
9c36ec10dd Improved stacktrace/debug handling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25667 72102866-910b-0410-8b05-ffd578937521
2007-12-03 14:13:57 +00:00
Richard Frith-MacDonald
d6cfc0e91c Improve MacOS-X compatibility of headers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25638 72102866-910b-0410-8b05-ffd578937521
2007-11-29 20:53:26 +00:00
Richard Frith-MacDonald
62559023b9 Update to GPL3 and LGPL3
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25482 72102866-910b-0410-8b05-ffd578937521
2007-09-14 11:36:11 +00:00
Richard Frith-MacDonald
9b51f2a184 mingw fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24464 72102866-910b-0410-8b05-ffd578937521
2007-02-04 12:53:43 +00:00
Richard Frith-MacDonald
c33d2fd0e0 Stack trace fixups.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24461 72102866-910b-0410-8b05-ffd578937521
2007-02-04 08:43:16 +00:00
Richard Frith-MacDonald
57a828c7c7 Header tidyups, particularly updating of version compatibility macros.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24000 72102866-910b-0410-8b05-ffd578937521
2006-10-31 07:05:46 +00:00
Richard Frith-MacDonald
0ebe68ae48 More code tidyups and NSError updates.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23921 72102866-910b-0410-8b05-ffd578937521
2006-10-20 10:56:27 +00:00
Richard Frith-MacDonald
0d0ae9d9a8 More tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23914 72102866-910b-0410-8b05-ffd578937521
2006-10-19 13:51:19 +00:00
Richard Frith-MacDonald
eae859d1c7 Updates to reduce global namespace pollution. Plenty more remaining.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23795 72102866-910b-0410-8b05-ffd578937521
2006-10-09 14:00:01 +00:00
Richard Frith-Macdonald
c9c6734169 Spelling fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21962 72102866-910b-0410-8b05-ffd578937521
2005-11-06 13:53:40 +00:00
Richard Frith-Macdonald
b418f0eb9b Fixes from Jeremy Bettis
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21535 72102866-910b-0410-8b05-ffd578937521
2005-07-25 16:00:52 +00:00
Adam Fedor
fcc13ccd0f * Update FSF Address.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21245 72102866-910b-0410-8b05-ffd578937521
2005-05-22 03:32:16 +00:00
Richard Frith-Macdonald
2defc1af93 Minor enhancement to improve debugging
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20775 72102866-910b-0410-8b05-ffd578937521
2005-02-22 14:06:28 +00:00
Richard Frith-Macdonald
db7b22a4fb Tidy up use of white space so we have it after if/for/while and not after (
or before ) or padding at end of line.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20773 72102866-910b-0410-8b05-ffd578937521
2005-02-22 11:22:44 +00:00
Richard Frith-Macdonald
d5460c236d Tidied a little, removing redundant code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20154 72102866-910b-0410-8b05-ffd578937521
2004-09-27 06:58:23 +00:00
Richard Frith-Macdonald
5ffc526cbc More simplification by using lazy locking
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18559 72102866-910b-0410-8b05-ffd578937521
2004-02-08 09:42:38 +00:00
Richard Frith-Macdonald
7600946e41 Tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17804 72102866-910b-0410-8b05-ffd578937521
2003-10-08 16:26:59 +00:00
Richard Frith-Macdonald
7a9e11fdbf Memory leak fixes and a little new debug functionality
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17803 72102866-910b-0410-8b05-ffd578937521
2003-10-08 15:03:58 +00:00
Richard Frith-Macdonald
a4d2e5438a Minor tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17335 72102866-910b-0410-8b05-ffd578937521
2003-07-25 05:31:52 +00:00
Richard Frith-Macdonald
a378cd76e8 Documentation and port name server fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17291 72102866-910b-0410-8b05-ffd578937521
2003-07-22 08:52:37 +00:00
Adam Fedor
d228cba99b Change syntax of includes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16874 72102866-910b-0410-8b05-ffd578937521
2003-06-07 01:24:41 +00:00
Richard Frith-Macdonald
9e7fe6bf12 Tidied for gcc-3.4
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@15476 72102866-910b-0410-8b05-ffd578937521
2003-01-03 20:14:47 +00:00
Richard Frith-Macdonald
8355371659 Trivial tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14959 72102866-910b-0410-8b05-ffd578937521
2002-11-09 06:45:31 +00:00
Richard Frith-Macdonald
963fedd907 Documentation updates.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14914 72102866-910b-0410-8b05-ffd578937521
2002-11-04 08:06:48 +00:00
Richard Frith-Macdonald
1f586871a9 Fix error in escape processing for gsm
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14787 72102866-910b-0410-8b05-ffd578937521
2002-10-15 13:37:21 +00:00
Richard Frith-Macdonald
2f547de506 Documentation and debug logging updates
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14682 72102866-910b-0410-8b05-ffd578937521
2002-10-09 06:07:38 +00:00
Richard Frith-Macdonald
fddaa462bc Documentation tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14298 72102866-910b-0410-8b05-ffd578937521
2002-08-20 10:22:05 +00:00
Richard Frith-Macdonald
a38c844fd9 Lots of tidying up.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@13608 72102866-910b-0410-8b05-ffd578937521
2002-05-08 05:43:15 +00:00
Richard Frith-Macdonald
c21ef3f265 Fix some argument names for autogsdoc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@12538 72102866-910b-0410-8b05-ffd578937521
2002-02-13 22:25:38 +00:00
Richard Frith-Macdonald
a0a6f5f346 Added date version and title
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11814 72102866-910b-0410-8b05-ffd578937521
2001-12-18 16:54:15 +00:00
Richard Frith-Macdonald
5be36e089c Many minor fixes for autogsdoc.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11787 72102866-910b-0410-8b05-ffd578937521
2001-12-17 14:31:42 +00:00
Adam Fedor
b45f9f3970 New strerror-like function
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10043 72102866-910b-0410-8b05-ffd578937521
2001-05-31 22:39:16 +00:00
Adam Fedor
3e68ec5016 Headers and funcs for NeXT_RUNTIME
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10028 72102866-910b-0410-8b05-ffd578937521
2001-05-29 02:38:22 +00:00
Mirko Viviani
aebbf39616 * Source/NSDebug.m (_NSPrintForDebugger): new function to support print
object (po) cmd of gdb.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10025 72102866-910b-0410-8b05-ffd578937521
2001-05-26 16:02:56 +00:00