Ariadne Conill
e07c8d0ac5
loongarch64: fix return values from getcontext/swapcontext
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 20:28:53 -07:00
Ariadne Conill
ed663cf0e5
loongarch64: fix assembly warnings
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 20:25:18 -07:00
Ariadne Conill
f593205e95
build: disable ARM hard float support by default
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
It appears to be broken.
2024-08-07 20:06:26 -07:00
Ariadne Conill
a65049c8d4
arm: disable use of .end directive in assembly
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
Fixes build failure on GCC 14.
2024-08-07 20:00:15 -07:00
Ariadne Conill
828fc9e950
common-defs: allow override of END assembly macro
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
GCC 14 on ARM does not recognize the `.end` directive anymore,
it seems.
2024-08-07 19:58:30 -07:00
Ariadne Conill
3e5059e8a1
libucontext 1.3
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/tag/woodpecker Pipeline was successful
Details
2024-08-07 19:41:46 -07:00
Ariadne Conill
570c0c8b32
README: mention that x86-32 does not use the C trampoline anymore
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 19:41:17 -07:00
Ariadne Conill
998ae99d61
or1k: fix getcontext/swapcontext return values
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 19:28:43 -07:00
Ariadne Conill
c2a8b0a9d5
riscv32: fix getcontext/swapcontext return value
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 19:19:29 -07:00
Ariadne Conill
e603fd7239
riscv64: fix getcontext/swapcontext return values
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 19:15:42 -07:00
Ariadne Conill
c468c50b7b
s390x: fix clobbering of return values in swapcontext
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 19:04:45 -07:00
Ariadne Conill
c1ecb0ea59
x86: switch back to using x86-specific trampoline
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
Jumping into the generic trampoline causes the stack pointer to get
clobbered.
Fixes #61
2024-08-07 18:34:53 -07:00
Ariadne Conill
5445f70157
tests: libucontext_posix: quiet compiler warning on glibc
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 17:57:16 -07:00
Ariadne Conill
1a2dff93e7
build: migrate to _DEFAULT_SOURCE
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 17:54:35 -07:00
L. Pereira
7badd2d5b2
Set _XOPEN_SOURCE when building on Darwin
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
On non-freestanding builds, including <ucontext.h> on an ARM Darwin
system will produce the following error:
In file included from include/libucontext/bits.h:6:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/
usr/include/ucontext.h:51:2: error: The deprecated
ucontext routines require _XOPEN_SOURCE to be defined
Defining this macro on Darwin systems will make the building pass.
2024-08-07 17:49:36 -07:00
Jim Hauxwell
4975ba9051
fix file copy
ci/woodpecker/push/woodpecker Pipeline was successful
Details
2024-08-07 17:48:29 -07:00
Jim Hauxwell
b3cbfd9c1a
fix parallel build for makefile
...
The copy for bits.h ran in parallel with the initial CC. sometimes on
CI the build would fail as the file had not arrived by the time
needed. Fix matches meson build process.
2024-08-07 17:48:29 -07:00
Sören Tempel
d0b03541bf
common-trampoline: Ensure omission of frame-pointer
...
ci/woodpecker/push/woodpecker Pipeline was successful
Details
Some architecture-specific implementations of the FETCH_LINKPTR
(e.g. the one for x86) attempt to find the linkptr relative to the
stack pointer. Therefore, they make assumption about the value of
the SP at the point where the FETCH_LINKPTR code is executed. This
means that we don't want the C compiler to mess with our SP.
For this purpose, local variables in this function are currently
declared using the register storage specifier. Additionally, we
need to make sure that a frame pointer is /always/ omitted for
this function. On x86 Alpine, the frame pointer is presently not
omitted with GCC 13 when using -Os, therefore the tests segfault
with -Os on Alpine presently.
Fixes #52
2024-08-07 17:46:50 -07:00
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