913 Commits (1593ac04afd58b5434b0cb25be9c6761ad3dd60e)
 

Author SHA1 Message Date
Daniel Ferreira 1593ac04af Add objc-class.h to objc headers
Some applications still include the old objc-class.h header expecting
to obtain the declarations contained in objc/message.h and
objc/runtime.h nowadays. This commit adds this header to achieve
out-of-the-box compatibility with these applications.
9 years ago
davidchisnall e285ba83a9 Merge pull request #36 from theiostream/block-headers
build: add compatibility symlink for block headers

Fixes #34
9 years ago
davidchisnall 29f831b4aa Merge pull request #33 from theiostream/objc-runtime-header
Add objc-runtime.h to objc headers
9 years ago
Daniel Ferreira a9aba57e7c build: add compatibility symlink for block headers
On FreeBSD and OSX, the block runtime functions are defined on a Block.h
and a Block_private.h headers on the include path as opposed to
libobjc2's objc/blocks_runtime.h and objc/blocks_private.h respectively.

This commit amends libobjc2's install routine to create the
FreeBSD-style headers as symlinks to the ones provided by libobjc2 for
improved compatibility.
9 years ago
Daniel Ferreira a3e1a0d3ed Add objc-runtime.h to objc headers
Some applications still include the old objc-runtime.h header expecting
to obtain the declarations contained in objc/message.h and
objc/runtime.h nowadays. This commit adds this header to achieve
out-of-the-box compatibility with these applications.
9 years ago
David Chisnall 21efe9e259 Update dtables for metaclasses when exchanging methods.
Fixes #32
9 years ago
David Chisnall 0b5f66393a Add test for #32. 9 years ago
David Chisnall 2417ec5806 Remove another unused build-breaking header. 9 years ago
David Chisnall ece31319b5 Remove an unused header include that was breaking the test build if
libobjc is not already installed.
9 years ago
David Chisnall e87b5c1503 Remove an assertion that was useful in debugging, but not actually
correct.

Instance variables are not normally zero-sized, but some are.  Examples
include zero-length arrays at the end of a class, and bitfields.

Fixes #30
Fixes #31
9 years ago
David Chisnall d1eb9ad91e Ensure that asserts in the tests are still run, even in a release build.
Fixes #29
9 years ago
David Chisnall 4fd27a066f When moving ivars to increase their alignment, make sure later ivars are
also moved.

Fixes #27
9 years ago
David Chisnall 695282e5d7 Don't conditionally run some cheap code that becomes a no-ops in the
case when we weren't running it.
9 years ago
David Chisnall 5725aa74ec Fix the computation of the size when realigning ivars.
Fixes #25, #26
9 years ago
davidchisnall 25c7038ed4 Merge pull request #24 from ngrewe/ivar_layout
Test case for misaligned ivars.

This introduces a new failing test for the bug introduced when trying to correctly align vectors.
9 years ago
Niels Grewe 165f1e83bf Additional asserts
Assert that the offset of `isa` is 0 and the offset of `c_string` is
`sizeof(Class)`
9 years ago
Niels Grewe 8c79eb836c Test case for misaligned ivars. 9 years ago
davidchisnall 4afd2d4241 Merge pull request #21 from ngrewe/deadlock
Avoid deadlock in objc_send_initialize()
9 years ago
David Chisnall 6df23377a0 Forcibly realign instance variables to take into account the padding
from the reference count.
9 years ago
Niels Grewe 6b285936be Avoid a deadlock
As described in gnustep/libobjc2#20
9 years ago
David Chisnall 9a2f43ca7d Work around the fact that clang 3.4 and earlier emit broken metadata.
This is mostly important because Travis-CI uses an archaic version of
clang for the CI runs.
10 years ago
David Chisnall 2493137996 Treat the property encoding string as canonical.
This is more reliable than the bitfields (and is constructed from them if the compiler doesn’t fill in the string).
10 years ago
David Chisnall 8c35e72655 Add missing properties and don’t make a runtime-specific test conditional on OS. 10 years ago
David Chisnall 81ef7a9816 Don’t fail the test if we get more attributes than we expect.
Attribute lists are not null-terminated, so this would previously have gone off into memory that it was not meant to access.
10 years ago
David Chisnall d692a0ede4 Remove some definitions that hide non-standard libc functions that we use. 10 years ago
David Chisnall 46ce44bbf5 Enable Travis testing on OS X. 10 years ago
David Chisnall 79cade0a68 Trivial change to hopefully poke Travis into working. 10 years ago
David Chisnall 0d9deaa76f Add (hopefully) Travis CI badge to the README. 10 years ago
David Chisnall 6de70135e8 Don't abort if NSAutoreleasePool is not found.
Fixes #17
10 years ago
davidchisnall 2693c02626 Merge pull request #15 from ngrewe/ivars
Fix a segfault on (s|g)etting ivars.
10 years ago
Niels Grewe f264fd159d Fix a segfault on (s|g)etting ivars.
When we were trying to get or set an ivar on a class that had
no ivars defined, we'd dereference a NULL ivar list while
determining the ownership qualifier.
10 years ago
David Chisnall 4ab78aa49a Check for Thumb-2 more explicitly. 10 years ago
David Chisnall c8848614b5 Now that we’re not marking the block trampoline functions as functions, the start and end symbols will appear as normal data pointers with no Thumb mangling, so remove the code that unmangles them. 10 years ago
David Chisnall cbdc6c8786 Reorganise block_trampolines.S to have a lot less copy-and-pasting. 10 years ago
David Chisnall 3dcb70bf59 Don’t use a NEON instruction on ARM variants that don’t have NEON. 10 years ago
David Chisnall 77484cb3cb Add missing declaration to ARM unwind header. 10 years ago
David Chisnall 03141616ab Added notes to ANNOUNCE about the Thumb-2 work. 10 years ago
David Chisnall 9e51aabc98 Fix block trampolines to work when mixed with Thumb-2 code. 10 years ago
David Chisnall f5f60ecadd Use Thumb-2 for the objc_msgSend code where available. 10 years ago
David Chisnall 5d0b579931 Fix a missing pop that had become lost in the move to use predicated
instructions.
10 years ago
David Chisnall 8e2d730f95 Return 0 as a floating point value for ARM hardware FP.
Note that this code path is currently unused by Clang, which does the
nil check in the caller for fpret functions.
10 years ago
David Chisnall 66c4154b06 Use bx for calling methods so that thumb / ARM interop should work. 10 years ago
David Chisnall dfe485de34 Slightly simplify the fall-through to the slow path to avoid a branch. 10 years ago
David Chisnall 2ea11117a3 Remove the LLVM optimisation passes. They don’t work with a recent LLVM, can be recovered from git if required, and are better off being upstreamed into LLVM if they make sense. 10 years ago
David Chisnall c7c193e4c7 Use the correct compare instruction. 10 years ago
David Chisnall b952a21abe Add objc_msgSend for AArch64.
An interesting feature of the AArch64 ABI simplifies this code relative to other platforms.  AArch64 reserves an extra register (x8) for the address of struct returns, giving the
10 years ago
David Chisnall fecddec3f3 Implement AArch64 block trampolines. 10 years ago
davidchisnall c6dd7d13b7 Merge pull request #13 from ngrewe/ci
Fix the objc_msgSend testcase (typo) and add a .travis.yml for CI builds
10 years ago
Niels Grewe 16d563fc14 Run ctest directly for travis CI builds 10 years ago
Niels Grewe 2fbf85c06a Merge branch 'master' into ci 10 years ago