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