Volker Christian
124a962b39
aarch64: fix return value if getcontext was used to acquire the current context.
...
x0 hast to be 0 in case setcontext is called with a context acquired by getcontext.
Thus x0=0 must be stored in getcontext.
2024-08-07 17:45:47 -07:00
Volker Christian
9e5de65076
libucontext: Add patch fixing return values of get/set/swapcontext
...
The arm ABI defines that the value in register r0 is used as the return
value of a function. To indicate success for get/set/swapcontext (return
value of 0) the register r0 must contain zero at the end of the function
call. Thus set r0 to zero and store it in the context. This context
is restored later and indicate successful execution, because r0 is 0.
The order registers are stored has changed so that only one additional
instruction (mov r0, #0 ) needs to be added to fix the return value
bug for get/set/swapcontext.
Signed-off-by: Volker Christian <me@vchrist.at>
2024-08-07 17:44:43 -07:00
Volker Christian
076e69c9c1
libucontext: Add error checking
...
Add error checking test_libucontext and test_libucontext_posix
to test return values of get/set/swapcontext.
Modifications are inspired by the example program source in the
linux man page of swapcontext
Signed-off-by: Volker Christian <me@vchrist.at>
2024-08-07 17:43:55 -07:00
matoro
be80075e95
meson: support building docs
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
Toggleable with -Ddocs=(true|false), defaults to false.
Requires bumping minimum meson version to 0.59.0, or 0.61.0 to also
include symlinks.
2023-05-18 18:12:55 -07:00
Ariadne Conill
4c2cfc54ac
libucontext.h: add C++ externs
2023-05-18 18:11:50 -07:00
L. Pereira
0f625a86ee
Fix FREESTANDING install target
...
When installing a FREESTANDING build, the check for an empty variable
was not being honored because the empty string would evaluate to
nothing. Put the variable expansion in quotes so that we have an empty
string instead.
2023-05-18 18:10:01 -07:00
Ismael Luceno
8e1397f5a2
Makefile: Make variables Automake-compatible
...
Also split libdir into shared and static variants to enable installing to
different locations.
Signed-off-by: Ismael Luceno <ismael@iodev.co.uk>
2023-05-18 18:08:07 -07:00
Ariadne Conill
33ff253d52
Merge pull request 'Fixed empty TYPE(__proc) causing linker issues on 32-bit arm' ( #36 ) from rlcamp/libucontext:arm_linker_fix into master
...
Reviewed-on: #36
2022-03-24 08:57:53 +00:00
Richard Campbell
3044c2b908
Fixed empty TYPE(__proc) causing linker issues on 32-bit arm
2022-03-23 15:18:39 -07:00
Ariadne Conill
128e4fdc4b
Merge pull request 'arm_hard_float' ( #35 ) from rlcamp/libucontext:arm_hard_float into master
...
Reviewed-on: #35
2022-03-23 20:15:32 +00:00
Richard Campbell
5244775fb9
Added note to readme about floating point WIP
2022-03-04 10:41:54 -08:00
Richard Campbell
9abcd8afe0
Added passthrough of FORCE_SOFT_FLOAT and FORCE_HARD_FLOAT Makefile options
2022-03-04 10:40:30 -08:00
Richard Campbell
7bc3e90984
Added arm conditional vfp save/restore
2022-03-04 10:35:25 -08:00
Ariadne Conill
4dde3417b4
libucontext 1.2
continuous-integration/woodpecker the build was successful
Details
2022-02-13 09:17:12 +00:00
Ariadne Conill
6ec3e63877
NEWS: mention or1k port
continuous-integration/woodpecker the build was successful
Details
2022-02-13 09:08:46 +00:00
Ariadne Conill
69ebc5e51b
README: add or1k
continuous-integration/woodpecker the build was successful
Details
2022-02-13 09:07:36 +00:00
Ariadne Conill
0a72eff002
or1k: add freestanding bits
2022-02-13 09:06:58 +00:00
Ariadne Conill
973e61441a
or1k: add getcontext/setcontext/swapcontext
2022-02-13 08:58:38 +00:00
Ariadne Conill
00128f7575
or1k: add makecontext and trampoline
2022-02-13 08:58:03 +00:00
Ariadne Conill
7fc08a6dc6
or1k: add definitions
2022-02-13 08:57:36 +00:00
Ariadne Conill
e26a93806e
build: allow check_libucontext program to be run on its own like the other check steps
continuous-integration/woodpecker the build was successful
Details
2022-02-13 08:54:34 +00:00
Ariadne Conill
5d2f30f96a
build: check_libucontext_posix must depend on ${LIBUCONTEXT_SONAME}
2022-02-13 08:53:45 +00:00
Ariadne Conill
a51dce6e2c
common-trampoline: initialize link pointer to NULL
continuous-integration/woodpecker the build was successful
Details
2022-02-13 07:35:23 +00:00
Ariadne Conill
a5ed584aa8
build: ensure libucontext_posix.so.1 is cleaned up
continuous-integration/woodpecker the build was successful
Details
2022-02-13 07:18:19 +00:00
Ariadne Conill
9943d4f5fc
NEWS: prepare for 1.2
continuous-integration/woodpecker the build was successful
Details
2022-02-13 06:38:00 +00:00
Ariadne Conill
9403b481bc
build: use CPPFLAGS instead of CFLAGS for FREESTANDING/EXPORT_UNPREFIXED
2022-02-13 06:25:47 +00:00
Ariadne Conill
2c0c0e5d29
build: only set default CFLAGS if there are none already set
2022-02-13 06:25:11 +00:00
Ariadne Conill
c8fe721e69
build: fix linking of libucontext_posix against libucontext
2022-02-13 06:19:47 +00:00
Ariadne Conill
c50182d98c
build: disable executable stacks
2022-02-13 06:11:37 +00:00
Ariadne Conill
55c91428ba
build: use -shared correctly instead of as linker flag
continuous-integration/woodpecker the build was successful
Details
2021-12-18 16:54:17 +00:00
Ariadne Conill
18aa732212
CI: also build armv7
continuous-integration/woodpecker the build was successful
Details
2021-12-01 09:36:20 -06:00
Ariadne Conill
8215aedb56
add woodpecker pipeline
2021-12-01 09:33:12 -06:00
Ariadne Conill
8efa9e8b85
Merge pull request #34 from Torrekie/master
...
Allow building on Darwin/arm64
2021-11-14 21:27:26 -06:00
Torrekie Gen
6ddefbbbb4
Allow building on Darwin/arm64
...
Changes:
1. `-soname` should be `-install_name` on Darwin
2. Version suffix should placed before extension suffix (libucontext.so.1 -> libucontext.1.dylib)
3. Check for architecture specific include directory, and include it while building
4. `EXPORT_UNPREFIXED` macro shouldn't be set since Darwin don't support aliases
5. Choose correct subdir for arm64
6. Use `-dynamiclib` instead of `-shared` on Darwin for adding version info (`-current_version` and `-compatibility_version`)
2021-11-13 19:10:25 +08:00
Ariadne Conill
b1b4fe9665
Merge pull request #32 from rlcamp/master
...
Adjusted location within ucontext of saved/restored FP regs for compat
2021-07-31 13:38:54 -05:00
Richard Campbell
1e37bf30f9
Adjusted location within ucontext of saved/restored FP regs for compatibility
2021-07-30 12:45:12 -07:00
Ariadne Conill
14d9859c00
Merge pull request #31 from rlcamp/master
...
Added saving/restoring of bottom 64 bits of d8-d15 per AAPCS64
2021-07-29 20:49:13 -05:00
Richard Campbell
06303df1cd
Added saving/restoring of bottom 64 bits of d8-d15 per AAPCS64
2021-07-29 18:45:48 -07:00
Ariadne Conill
ae058b1f38
add loongarch64 to the supported arch list
2021-06-04 09:07:38 -06:00
Peng Fan
a182fee66a
Add support for Loongarch64
...
Signed-off-by: Peng Fan <fanpeng@loongson.cn>
2021-06-04 09:07:38 -06:00
Ariadne Conill
0108623531
Merge pull request #28 from kraj/master
...
meson: Add option to pass cpu
2021-05-30 11:00:18 -05:00
Khem Raj
a530eed9e7
meson: Add option to pass cpu
...
This helps with cross compile setups, where host_cpu != target_cpu
therefore detecting it on the fly will end up with wrong cpu to build
for
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-30 08:38:54 -07:00
Ariadne Conill
335ee864ef
libucontext 1.1.
2021-03-09 00:46:31 -07:00
Ariadne Conill
4d8abf9b3b
update README a bit
2021-03-09 00:42:26 -07:00
Ariadne Conill
7b8f3f6d04
NEWS for 1.1.
2021-03-09 00:33:41 -07:00
Ariadne Conill
fb1d203677
everywhere: drop _GNU_SOURCE requirement
2021-03-09 00:25:13 -07:00
Ariadne Conill
1ad20e03e5
add riscv32 port
2021-03-09 00:00:26 -07:00
Ariadne Conill
464f98a01b
Merge pull request #27 from utmapp/qemu-support-v2
...
Remaining fixes for Apple Silicon and QEMU
2021-03-08 20:48:30 -06:00
osy
9b1d8f01a6
aarch64: remove usage of FUNC macro for clang
...
Clang's arm64 assembler does not support multiple directives on a single
line. C macros ALWAYS expand to a single line.
2021-03-08 15:13:34 -08:00
osy
5d66c194a7
x86_64: define reg names if not defined
...
_GNU_SOURCE can be defined without defining REG_X macros so it is not a
good indicator. (QEMU for example defines it in the build system.) x86
and x86_64 should have consistant looking defs.h so ifndef guards are
added to each REG_X definition.
2021-03-08 14:02:58 -08:00