Skip to content

Commit 7e98df8

Browse files
vchuravyKristofferC
authored andcommitted
Export offsets necessary for external codegen (#49548)
(cherry picked from commit faced27)
1 parent aefc51f commit 7e98df8

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

src/init.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,11 @@ JL_DLLEXPORT void julia_init(JL_IMAGE_SEARCH rel)
733733
jl_init_intrinsic_properties();
734734

735735
jl_page_size = jl_getpagesize();
736+
737+
// Important offset for external codegen.
738+
jl_task_gcstack_offset = offsetof(jl_task_t, gcstack);
739+
jl_task_ptls_offset = offsetof(jl_task_t, ptls);
740+
736741
jl_prep_sanitizers();
737742
void *stack_lo, *stack_hi;
738743
jl_init_stack_limits(1, &stack_lo, &stack_hi);

src/jl_exported_data.inc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,7 @@
133133
XX(jl_n_threadpools, int) \
134134
XX(jl_n_threads, _Atomic(int)) \
135135
XX(jl_options, jl_options_t) \
136+
XX(jl_task_gcstack_offset, int) \
137+
XX(jl_task_ptls_offset, int) \
136138

137139
// end of file

src/julia.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1970,6 +1970,9 @@ JL_DLLEXPORT void JL_NORETURN jl_no_exc_handler(jl_value_t *e, jl_task_t *ct);
19701970
JL_DLLEXPORT JL_CONST_FUNC jl_gcframe_t **(jl_get_pgcstack)(void) JL_GLOBALLY_ROOTED JL_NOTSAFEPOINT;
19711971
#define jl_current_task (container_of(jl_get_pgcstack(), jl_task_t, gcstack))
19721972

1973+
extern JL_DLLIMPORT int jl_task_gcstack_offset;
1974+
extern JL_DLLIMPORT int jl_task_ptls_offset;
1975+
19731976
#include "julia_locks.h" // requires jl_task_t definition
19741977

19751978
JL_DLLEXPORT void jl_enter_handler(jl_handler_t *eh);

0 commit comments

Comments
 (0)