civodul pushed a commit to branch core-updates in repository guix. commit 96783ed6275cd2818ff56916274e6e4582f1dc9b Author: Ludovic Courtès <l...@gnu.org> Date: Fri Jul 19 00:52:36 2019 +0200
syscalls: 'define-as-needed' does not re-export local variables. Fixes <https://bugs.gnu.org/36723>. Reported by Timothy Sample <samp...@ngyro.com>. * guix/build/syscalls.scm (define-as-needed): Rewrite to use lower-level module primitives; define VARIABLE only if it's not already defined to avoid "re-exporting local variable" error. --- guix/build/syscalls.scm | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 3c84d38..f2fdb4d 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -396,17 +396,11 @@ the returned procedure is called." ((_ (proc args ...) body ...) (define-as-needed proc (lambda* (args ...) body ...))) ((_ variable value) - (begin - (when (module-defined? the-scm-module 'variable) - (re-export variable)) - - (define variable - (if (module-defined? the-scm-module 'variable) - (module-ref the-scm-module 'variable) - value)) - - (unless (module-defined? the-scm-module 'variable) - (export variable)))))) + (if (module-defined? the-scm-module 'variable) + (module-re-export! (current-module) '(variable)) + (begin + (module-define! (current-module) 'variable value) + (module-export! (current-module) '(variable))))))) ;;;