[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/03: syscalls: 'define-as-needed' does not re-export local variables.
From: |
guix-commits |
Subject: |
02/03: syscalls: 'define-as-needed' does not re-export local variables. |
Date: |
Sun, 29 Sep 2019 17:02:42 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 7089f98ef1c274f1607ec314f3a16bd3c3ac89a4
Author: Ludovic Courtès <address@hidden>
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 <address@hidden>.
* 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)))))))
;;;