David Chisnall
d8844095f9
Set up CI with Azure Pipelines
...
Update Azure pipelines to new syntax.
7 years ago
David Chisnall
351b0cac0a
Set up CI with Azure Pipelines
...
Fix indentation in CI config.
7 years ago
David Chisnall
2398372459
Initial attempt at Azure Pipelines build.
7 years ago
Frederik Seiffert
f4b381febb
Replace valloc() with posix_memalign().
...
valloc() no longer exists in some toolchains like Android arm64.
7 years ago
Dustin Howett
f392ff1870
Fix dtable rebase and add a test for a missing case
...
The dtable rebasing rework in b81df02b broke the inheritance of
superclass methods from a superclass that had already been initialized.
7 years ago
Dustin Howett
33cdcd709d
Actually emit storage for the objc_weak_load hook
7 years ago
David Chisnall
6c6c3e13aa
Fix Windows build.
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
David Chisnall
d2255cb8d4
Add Windows build instructions.
7 years ago
David Chisnall
fa35aaf5ee
[windows] Handle changes to clang's EH mangling
...
For compatibility with a Facebook internal project, clang now mangles
Objective-C types and C structures in the same way. This is a terrible
idea, but it apparently doesn't break anything.
7 years ago
David Chisnall
e4f4cf095f
Remove unused header include.
7 years ago
David Chisnall
2edfe64739
Fix incorrect strcmp usage.
7 years ago
David Chisnall
d015f0160c
Rename PUBLIC to OBJC_PUBLIC to avoid some namespace pollution.
7 years ago
David Chisnall
70a12d3612
Apparently PUBLIC doesn't mean what I think it means.
...
It probably should be renamed OBJC_PUBLIC anyway, because it's a bit
rude to leak an identifier like that into the global namespace.
7 years ago
David Chisnall
4a8d125b3f
Fix linkage type for objc_method_cache_version.
...
This was accidentally common linkage, so ended up with copy relocations.
7 years ago
David Chisnall
0db500addc
Fix missing type encoding case for long double.
...
This was triggered when upgrading ivars from the pre-2.0 ABI that used
long double - their alignment could not be calculated correctly and we
hit an assertion.
Fixes : #82
7 years ago
David Chisnall
effdd15042
Work around a clang bug.
7 years ago
David Chisnall
8db0450dcc
Fix bug in ivar align computation.
...
__builtin_clz takes an unsigned int, it isn't overloaded for different
types. This meant that we were computing log2 by counting the
leading bits in a 32-bit value and using that result as if it were the
number of bits in a 64-bit value. This meant that our alignment values
were 2^32 times as big as they should be. This mostly didn't matter,
because we then truncated the result to 32 bits and the wrapping gave
the correct answer.
Unfortunately, this was undefined behaviour and, at sufficiently high
optimisation levels, this resulted in the value being optimised away,
leading to odd results.
7 years ago
David Chisnall
5585a44574
Remove work around for old glibc.
7 years ago
David Chisnall
da5e411d24
Add two Apple-compatible block introspection functions.
7 years ago
Niels Grewe
e627c14b5f
fix(libBlocksRuntime compatibility): Install proper compatibiltiy headers for libBlocksRuntime
7 years ago
David Chisnall
abf629b1f7
Make some private symbols private.
7 years ago
David Chisnall
cace3a4062
Add some more debug logging.
7 years ago
David Chisnall
c489cc909d
Fix header symlink installation.
7 years ago
David Chisnall
e811e6ce32
Fix build failure in test.
7 years ago
David Chisnall
93248d581b
Allow double indirection for superclass pointers.
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
David Chisnall
0da21d5064
Add some more Windows build tweaks.
...
This enables building on Windows with Ninja.
7 years ago
David Chisnall
d0c3fe5323
Remove a broken assertion.
...
This was checking that a variable that was never assigned to was a
non-zero value.
7 years ago
David Chisnall
262cea96f5
Fix test for clang 8.
...
Clang 8 now rejects the thing that this is testing (which is good,
because it's a terrible idea).
7 years ago
David Chisnall
c99476cc7d
Merge pull request #75 from ePirat/fix-missing-header
...
Add missing header file to CMakeLists
8 years ago
Marvin Scholz
c498a65fe6
Add missing header file to CMakeLists
8 years ago
David Chisnall
782b1ec3b3
Update some docs.
8 years ago
David Chisnall
f0884dda76
Add some release notes.
8 years ago
David Chisnall
6c2a61de9b
Improve protocol reference loading.
...
Now all @protocol references will refer to precisely the same instance,
even across shared libraries.
8 years ago
David Chisnall
bc726e7564
Improve protocol table locking.
...
Remove the protocol table from the global lock and make sure that we do
acquire it when accessing the table.
8 years ago
David Chisnall
b9b6198520
Improve the forward-declared protocol test.
8 years ago
David Chisnall
6ab3df0892
Improve the forward declare protocols test.
...
Make it not fail to build with older compilers and make it test the
thing that should be true with the new ABI.
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
a8e5f6ced0
Fix another bug in the hash table.
...
Clearing the secondMaps was incorrect for cases where the secondMaps
included a wrap around to the start of the table.
8 years ago
David Chisnall
00c631c58e
Fix a bug in a test.
8 years ago
David Chisnall
a9acb9c5b6
Add missing file.
8 years ago
David Chisnall
1bc7ac26f8
Improve block-to-IMP code on Windows.
...
This version will work with Windows Store apps.
Patch by Dustin Howett!
8 years ago
David Chisnall
e67d09648d
The stuff that said 'DO NOT COMMIT THIS'?
...
It turns out, I didn't mean to commit it! Dead code that was just there
to simplify compiler bringup.
8 years ago
David Chisnall
65d5adc9f7
Add some extra test cases to the exception test.
...
We were testing this in the ObjC++ interop test, but it makes sense to
run the test even when not building ObjC++.
8 years ago
David Chisnall
537c409722
Tweak objc_msgSend to work correctly on win32.
8 years ago
David Chisnall
8e825a8416
Make Win32 block trampolines SEH compatible.
...
This change is effectively a no-op (it's impossible to throw an
exception through these trampolines, because they tail call the real
block), but it does prevent the linker from complaining that we're
linking SEH-aware and SEH-unaware code.
8 years ago
David Chisnall
1d164676a5
Rework ivar offset calculation again.
...
It's now simpler, and the tests pass on several different targets, so
it's probably even correct!
8 years ago