708 Commits (c73b7a2f0b9315ceb90a2d1ab0f6f343478d191c)
 

Author SHA1 Message Date
theraven c73b7a2f0b Mark all libobjc2 headers as system headers when not compiling the runtime
itself.  This makes clang hide warnings.
13 years ago
theraven 7218882f7e Apparently clang 3.2 had the same bug as 3.1... 13 years ago
theraven 3fbdbe4d02 Work around a bug in clang 3.1 that declares objc_msgSend_stret as a builtin
with the wrong signature.
13 years ago
theraven 197dbaba7c Add building / installation instructions for libobjc2. 13 years ago
theraven 9e93a413d1 Print some memory usage statistics on exit if LIBOBJC_MEMORY_PROFILE is
defined.
13 years ago
theraven 0e90d9645d Tweak the ManyManySelectors test case so that it doesn't hit a pathological
case in the selector hashing function and use insane amounts of memory.
13 years ago
theraven 1b7a492ab2 Fix a small memory leak of selector names when registering selectors with the
same name but different types.
13 years ago
theraven d7df8c415b Move the selector table to being protected by a mutex for reads so that we can
recover memory from the smaller ones.  Selector lookups are not on the critical
path for message sends, so the cost of the extra memory is likely to be larger
than the cost of acquiring a lock in sel_getName().
13 years ago
theraven eb234ea26a Fix the case where the number of selectors grows to more than 2^16 and we need
to fall back to 3-level dtables.  

Added a test case that registers far more selectors than a sane program
contains and tries to use them.
13 years ago
theraven 1a386c9efd Fix the GOT-relative addressing in 32-bit message sends.
Thanks to Banlu for helping track this down.
13 years ago
theraven 8ee95e805a Install the message.h header. 13 years ago
theraven ffa7dbad8d Cleaner version of the last fix. 13 years ago
theraven fb2e6756f6 Fix (and add test case for) a bug where objc_allocateClassPair() failed if the
superclass had not yet been loaded.
13 years ago
theraven ae3b44ac78 Fix clang's stupid warning to work around a bug in OS X headers... 13 years ago
theraven 63bdbc9440 Add another missing file... 13 years ago
theraven 0b883f2cc2 Add missing test. 13 years ago
theraven ca25388b37 Fix a lock-order reversal where one thread calls some dtable-manipulating
function while another is initializing.
13 years ago
theraven 65e3dc736c Added test of forwarding mechanisms. 13 years ago
theraven b757ea9ffb Tidied up tests, made them work with make as well as ninja generators for
CMake.
13 years ago
theraven 6317b79a10 Implemented the new exception ABI, and a load of tests for it. This is used by
clang trunk if -fobjc-runtime-1.7 is specified and provides significantly
better interoperability with foreign exceptions.

Note: Most of the exception tests will not pass with gcc or clang < 3.3.  They
test things that are impossible to implement quite correctly with the
GCC-compatible exception ABI.

Also updated the release notes to reflect recent improvements.
13 years ago
qmathe 7e5d437065 Restored r35794 changes (that were removed in r35893) but applied them to the
GNUMakefile rather than the Makefile.

This fixes segfaults in programs compiled with Clang using -fobjc-nonfragile-abi 
on Linux x86-32, for a GNUmakefile-based build with GNUstep Make active.
13 years ago
theraven 0dcb0885bf Update opts to work with LLVM trunk (3.3). 13 years ago
theraven aeb0c913b9 Enabled property attribute test, fixed failure. 13 years ago
theraven ef5f8b744d Added more test cases. 13 years ago
theraven bcf6e32311 Make it possible to disable building the tests. 13 years ago
theraven d1336543d8 Build with exceptions (fixes the issue with crashes where +initialize throws)
Start adding the tests to CMake.
13 years ago
theraven d1f3463ac7 Make sure that there is always a comma between T and V in property attributes. 13 years ago
theraven 95aef24803 Fix crash in ARC assignment.
Reported by Banlu Name-of-the-week!
13 years ago
theraven c6614a218c Install libobjcxx if we're building it. 13 years ago
theraven 86d07fa024 Install libobjcxx, if it's built. 13 years ago
theraven ee927d20a5 Remove definitions that don't appear to be needed anymore. 13 years ago
theraven c98014b667 Actually commit the disabling of the llvm opts, and not the output from cmake
help...
13 years ago
theraven be2ee54190 Default building the LLVM optimisations to off if the LLVM CMake module is not
found.
13 years ago
theraven 150aa4ef19 Fix linkage in libobjc. 13 years ago
theraven db3cbec65a Make sure that the asm files are built. Add a configuration option for the include headers so OpenBSD can put them in include/gnustep/objc/ 13 years ago
theraven a5cc173310 Correctly handle the case of GNUstep config not existing. 13 years ago
theraven 651962702a Add uninstall target to CMake. 13 years ago
theraven 5cd0a37e27 Change how we do GOT-relative relocations in objc_msgSend on i386 to make gas
happier.
13 years ago
theraven bfc1a2ed11 Add a flag for setting the library name. 13 years ago
theraven 501d5b9828 Set the C++ runtime to nothing if it is not found. 13 years ago
theraven 2841400e0c Add CPack configuration to CMakeLists.txt. RPMs, DEBs and tarballs can now be built directly from the build system. 13 years ago
theraven 080107e2db Correctly pass the LLVM version in to the LLVM passes as they are built. 13 years ago
theraven a5b4ab9937 Specify the current runtime version to target if the compiler supports this
flag.  This means that the .m files in the runtime will take advantage of
features of this runtime when compiled with a recent clang.
13 years ago
theraven d0562d2127 Added helper function for C++ non-POD type atomic properties.
Fixed prototypes of specialised property functions.
13 years ago
theraven a9be008911 Add optimised special-case property function. 13 years ago
theraven 3c7d6f8fd9 Fix merging CFLAGS. 13 years ago
theraven 77591f9956 Handle the case where the compiler generates the exception table entries in the wrong order. 13 years ago
theraven 7bff0ba7e6 Revert r35794, which broke the Makefile by introducing GNUisms. 13 years ago
theraven 01bf761766 Target i586 on i686 with clang. 13 years ago
theraven 7afed09286 Change how installation location is detected, as per Quentin's suggestion. 13 years ago