Skip to content

Commit

Permalink
A few native stack detection fixes for macOS/arm64 (bytecodealliance#…
Browse files Browse the repository at this point in the history
  • Loading branch information
yamt authored Apr 26, 2024
1 parent 410ee58 commit 120b965
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/compilation_on_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -380,9 +380,7 @@ jobs:
./iwasm wasm-apps/trap.aot | grep "#" > call_stack_aot.txt
bash -x ../symbolicate.sh
# skip on arm64 (macos-14) for now
- name: Build Sample [native-stack-overflow]
if: matrix.os != 'macos-14'
run: |
cd samples/native-stack-overflow
./build.sh
Expand Down
5 changes: 5 additions & 0 deletions core/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -523,8 +523,13 @@

/* Guard page count for stack overflow check with hardware trap */
#ifndef STACK_OVERFLOW_CHECK_GUARD_PAGE_COUNT
#if defined(__APPLE__) && defined(__aarch64__)
/* Note: on macOS/iOS arm64, the user page size is 16KB */
#define STACK_OVERFLOW_CHECK_GUARD_PAGE_COUNT 1
#else
#define STACK_OVERFLOW_CHECK_GUARD_PAGE_COUNT 3
#endif
#endif

/* Default wasm block address cache size and conflict list size */
#ifndef BLOCK_ADDR_CACHE_SIZE
Expand Down
3 changes: 2 additions & 1 deletion samples/native-stack-overflow/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,11 @@ main(int argc, char **argv)
printf("-------------------------------------------------------------------"
"--------\n");

uint32_t page_size = os_getpagesize();
unsigned int stack;
unsigned int prevstack = 0; /* appease GCC -Wmaybe-uninitialized */
unsigned int stack_range_start = 0;
unsigned int stack_range_end = 4096 * 6;
unsigned int stack_range_end = page_size * 6;
unsigned int step = 16;
struct record rec0;
struct record rec1;
Expand Down

0 comments on commit 120b965

Please sign in to comment.