Hi! Attached is a signed off version of your patch, which appears quite useful to me. Thanks, Alexey!
cheers, felix
From acba11870a698872ff08a4de2c906dacaa4d8e82 Mon Sep 17 00:00:00 2001 From: felix <[email protected]> Date: Tue, 30 Dec 2025 14:28:24 +0100 Subject: [PATCH] Allow specifying a hardcoded repository path (Patch by Alexey Egorov) Signed-off-by: felix <[email protected]> --- chicken.h | 6 ++++-- csc.scm | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/chicken.h b/chicken.h index f6403c40..765f7763 100644 --- a/chicken.h +++ b/chicken.h @@ -1591,8 +1591,10 @@ typedef void (C_ccall *C_proc)(C_word, C_word *) C_noret; #define C_ub_i_pointer_f32_set(p, n) (*((float *)(p)) = (n)) #define C_ub_i_pointer_f64_set(p, n) (*((double *)(p)) = (n)) -#ifdef C_PRIVATE_REPOSITORY -# define C_private_repository() C_use_private_repository(C_executable_dirname()) +#ifdef C_PRIVATE_REPOSITORY_PATH +# define C_private_repository() C_use_private_repository(C_text(C_PRIVATE_REPOSITORY_PATH)) +#elif defined(C_PRIVATE_REPOSITORY) +# define C_private_repository() C_use_private_repository(C_executable_dirname()) #else # define C_private_repository() #endif diff --git a/csc.scm b/csc.scm index 90f95d4f..65a84b0c 100644 --- a/csc.scm +++ b/csc.scm @@ -502,7 +502,9 @@ Usage: #{csc} [OPTION ...] [FILENAME ...] -keep-shadowed-macros do not remove shadowed macro -host compile for host when configured for cross-compiling - -private-repository load extensions from executable path + -private-repository load extensions at run-timefrom path where + executable is located + -private-repository-path PATH load extensions at run-time from hardcoded PATH -deployed link support file to be used from a deployed executable (sets `rpath' accordingly, if supported on this platform) @@ -549,6 +551,10 @@ EOF (define (use-private-repository) (set! compile-options (cons "-DC_PRIVATE_REPOSITORY" compile-options))) + (define (use-private-repository-path path) + (set! compile-options + (cons (sprintf "-DC_PRIVATE_REPOSITORY_PATH=\"~A\"" path) compile-options))) + (define (generate-target-filename source-filename) (pathname-replace-extension source-filename @@ -678,6 +684,10 @@ EOF (set! rest (cdr rest)) ] ((-private-repository) (use-private-repository)) + ((-private-repository-path) + (check s rest) + (use-private-repository-path (car rest)) + (set! rest (cdr rest))) ((-ignore-repository) (set! ignore-repository #t) (t-options arg)) -- 2.50.1
