I started writing the macro that chooses between 'glibc/linux' and 'glibc/hurd' so I added #:export (glibc) at defined modules, renamed glibc to glibc/linux and then I added
(define (glibc-for-target target) "Return the glibc for TARGET, glibc/linux for a linux host or glibc/hurd for a hurd host" (match target ("i686-pc-gnu" glibc/hurd) (_ glibc/linux))) (define-syntax glibc (identifier-syntax (glibc-for-target (%current-target-system)))) Is my approach right? Because I am getting the error gnu/packages/base.scm:772:3: In procedure #<procedure 48307c0 ()>: gnu/packages/base.scm:772:3: In procedure struct-ref: Wrong type argument in position 1 (expecting struct): #<syntax-transformer glibc> when doing ./pre-inst-env guile -c '(use-modules (gnu packages base))' Will the recipes inside base.scm, that inherit from glibc, automatically inherit from the new one? Manolis
;;; compiled /home/manolis/.cache/guile/ccache/2.0-LE-8-2.0/home/manolis/git_repos/guix/gnu/packages/base.scm.go Backtrace: In unknown file: ?: 19 [apply-smob/1 #<catch-closure 26969c0>] In ice-9/boot-9.scm: 63: 18 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 17 [eval # #] In unknown file: ?: 16 [call-with-input-string "(use-modules (gnu packages base))" ...] In ice-9/command-line.scm: 180: 15 [#<procedure 26a94c0 at ice-9/command-line.scm:175:6 (port)> #<input: string 244b5b0>] In unknown file: ?: 14 [eval (use-modules (gnu packages base)) #<directory (guile-user) 2688c60>] In ice-9/eval.scm: 505: 13 [#<procedure 256a760 at ice-9/eval.scm:499:4 (exp)> (use-modules #)] In ice-9/psyntax.scm: 1091: 12 [expand-top-sequence ((use-modules (gnu packages base))) () ...] 976: 11 [scan ((use-modules (gnu packages base))) () ...] 270: 10 [scan ((# #) #(syntax-object *unspecified* # #)) () (()) ...] In ice-9/boot-9.scm: 3513: 9 [process-use-modules (((gnu packages base)))] 627: 8 [map #<procedure 26222e0 at ice-9/boot-9.scm:3513:25 (mif-args)> ((#))] 3514: 7 [#<procedure 26222e0 at ice-9/boot-9.scm:3513:25 (mif-args)> (#)] 2783: 6 [resolve-interface (gnu packages base) #:select ...] 2708: 5 [#<procedure 2619bc0 at ice-9/boot-9.scm:2696:4 (name #:optional autoload version #:key ensure)> # ...] 2981: 4 [try-module-autoload (gnu packages base) #f] 2320: 3 [save-module-excursion #<procedure 26c99f0 at ice-9/boot-9.scm:2982:17 ()>] 3001: 2 [#<procedure 26c99f0 at ice-9/boot-9.scm:2982:17 ()>] In unknown file: ?: 1 [primitive-load-path "gnu/packages/base" ...] In gnu/packages/base.scm: 772: 0 [#<procedure 48307c0 ()>] gnu/packages/base.scm:772:3: In procedure #<procedure 48307c0 ()>: gnu/packages/base.scm:772:3: In procedure struct-ref: Wrong type argument in position 1 (expecting struct): #<syntax-transformer glibc>