78 Commits (e1c10af1248da1a8c4ff3b9ab350e653b4ac8fa2)

Author SHA1 Message Date
Frederik Seiffert 61eee9e0a2 Pass on Android toolchain flags for CXX runtime check. 7 years ago
Jordan Schidlowsky f5f452bcb9 cmake fails when project is used in other cmake projects. CMAKE_CURRENT_LIST_DIR should be a more portable path 7 years ago
David Chisnall 52ca9b207b Make it easier to override the assembler on Windows.
This is necessary for building with Visual Studio (msbuild)
7 years ago
Niels Grewe e627c14b5f fix(libBlocksRuntime compatibility): Install proper compatibiltiy headers for libBlocksRuntime 7 years ago
David Chisnall c489cc909d Fix header symlink installation. 7 years ago
David Chisnall 455a4758f1 Make CMake install the dll on Windows. 7 years ago
David Chisnall f4be4d5696 Disable old ABI compat by default on Windows. 7 years ago
Marvin Scholz c498a65fe6 Add missing header file to CMakeLists 8 years ago
David Chisnall f7a21aaf4d Bump the CPack version to 2.0. 8 years ago
David Chisnall 2978cbb760 Don't try to symlink headers on Windows 8 years ago
David Chisnall bab334acd4 Fix cmake configuration for Windows builds. 8 years ago
David Chisnall 934cd13a7a Initial pass at Windows support.
All tests now pass with the new ABI on x86-64, with the new ABI.  Some
of the code is ugly and other platforms are probably broken.
8 years ago
David Chisnall c9e8743095 GC some dead code and move another legacy-compat file under the correct
option.
8 years ago
David Chisnall 2934a98503 Support building without support for old ABIs. 8 years ago
David Chisnall b81df02b91 Merge branch 'master' into newabi
Simplify the setSubclass dtable updating mechanism.
8 years ago
Jason Barmparesos 682717b08d Clang++ provides its own exception types on Linux. (#68)
Fix type of `__cxa_allocate_exception` with recent libsupc++.

Recent versions of GNU libsupc++ provide a definition of `__cxa_allocate_exception` that has a `noexcept` qualifier.  This is sensible (if allocating an exception throws an exception, then something is badly wrong) but it not what the ABI spec says.  We provide our own definition of this, which must match another if provided.

This wouldn't normally be a problem, but recent libstdc++ headers appear to leak libsupc++ headers into the namespace, so we're seeing these definitions even without explicitly including any C++ ABI-related headers.
8 years ago
David Chisnall 314a4167ca Remove low memory profile.
This hasn't been tested for a long time and probably doesn't work.
8 years ago
David Chisnall 14889c540f Bump cmake minimum version.
Fixes #51
8 years ago
David Chisnall f91fb2e745 Checkpoint more work on new ABI.
We're now using a new class and category structure and auto-upgrading the old ones.  Other changes:

- The Ivar structure now points to the ivar offset variable, so we can more easily find it.
- Categories can now add properties.
8 years ago
David Chisnall 76e7d4b07f Merge branch 'master' into newabi 8 years ago
David Chisnall 587cf3f27b Another try at making CMake work. 8 years ago
David Chisnall bb78abb662 Fix copy and paste type. 8 years ago
David Chisnall 7832765112 Improve detection of libsupc++ 8 years ago
David Chisnall dc9b8313a4 Rework C++ library detection.
macOS ships with libc++abi, which doesn't provide the hooks required
for interop, so this was causing all of the tests to fail to link in
the Travis macOS test.  We're now correctly detecting that it won't
work on macOS and disabling those tests.
8 years ago
David Chisnall fefb333b01 Remove the separate libobjcxx.
If we don't find a separate dynamically linkable C++ runtime, then
depend on the C++ standard library implementation.
8 years ago
David Chisnall a54272c1ab Merge origin/master into newabi (using imerge) 8 years ago
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
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 12d1ea62a4 Merge branch 'master' into newabi 9 years ago
David Chisnall d692a0ede4 Remove some definitions that hide non-standard libc functions that we use. 10 years ago
David Chisnall f55c158be8 First pass at new Objective-C ABI. 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 bd790df7e3 Disable building LLVM passes for now. It’s unlikely that anyone actually wants them at the moment, and we should probably remove them at some future date. 10 years ago
Niels Grewe 40b7f872e9 Also specify -march=i586 when compiling with gcc 10 years ago
Niels Grewe f1c58120b9 Remove bogus workaround for build system issue 10 years ago
Niels Grewe 8b5e85a95c Set the -pthread compiler flag when pthreads is used.
Apparently, setting -lpthread is not enough to convince gcc to actually
link a thread library, so if we are using pthreads, set the -pthread
flag as well. It fixes the gcc situation and doesn't have any adverse
effects for clang either.
10 years ago
David Chisnall 857edd9ef7 Fix the README name for CPack. 11 years ago
theraven 76a88312dd Work around GNUstep's inability to initialise NSAutoreleasePool without
performing recursive autoreleases (introduced in r37479).
Fixes crashing of C++ static constructors.
12 years ago
theraven 55bbcd8748 Only emit section directives on ELF platforms. 12 years ago
theraven c819b379da Fix the build with GC enabled, export the GC symbols in all build configurations. 13 years ago
theraven 4387d80fb1 Only use .type on ELF targets. 13 years ago
ericwa 317e951b0c libobjc2: some changes needed to build on OS X. CDECL macro to prefix symbol names in assembly code with an underscore, macros to omit the .type and .section derictives which are unsupported on OS X, and also a linker flag to make weak symbols work 13 years ago
theraven 71b6439091 Fix the build without gnustep-config by not relying on a variable that seems to
only be set on Ubuntu...
13 years ago
theraven f50bc6cf33 Added support for tracing message sends to the runtime.
Currently x86-64 only.
13 years ago
theraven 2f720fb30e Respect CMAKE_INSTALL_LIBDIR when determining library install paths.
Patch by Lubos Dolezel!
13 years ago
theraven 60a3605c6c Added a test that the C++ runtime is really useable (i.e. exports the symbols that we need). 13 years ago
theraven 55f40d8b58 Force finding of the shared lib version of the C++ runtime lib. 13 years ago
theraven c37fdd98ad Add CMake options for disabling ObjC++ entirely and for forcing the build of a separate libobjcxx.so. 13 years ago