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>

Reply via email to