bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#54915: [PATCH] Guile rejects empty vendor in GNU triplets, as used b


From: Taylor R Campbell
Subject: bug#54915: [PATCH] Guile rejects empty vendor in GNU triplets, as used by NetBSD
Date: Wed, 13 Apr 2022 11:26:44 +0000

NetBSD uses an empty vendor string in a GNU target triplet, like
`x86_64--netbsd' or `armv7--netbsdelf-eabihf'; it's been like this
since the mid-'90s.  (Before that, NetBSD omitted the vendor
altogether, so if x86_64 existed then it might have been
`x86_64-netbsd'.)

This runs afoul of a rule in guile's validate-target in
module/system/base/target.scm that requires all components to be
nonempty, so pkgsrc's guile build has been carrying around a
workaround -- just for guile, not for any other packages I know of --
for ages.  Without the workaround in pkgsrc:

>   BOOTSTRAP(stage0) GUILEC ice-9/eval.go
> Backtrace:
>            7 (apply-smob/1 #<boot-closure 736f6474ff80 (_ _)> #<exc?> ?)
>            6 (apply-smob/1 #<boot-closure 736f2e2fbd80 ()>)
>            5 (apply-smob/0 #<thunk 736f2e2fbe40>)
>            4 (primitive-eval ((@ (ice-9 control) %) (begin (# #) ?)))
>            3 (apply-smob/1 #<boot-closure 736f63786a80 ()>)
>            2 (apply-smob/1 #<boot-closure 736f265a9500 ()>)
>            1 (scm-error misc-error #f "~A ~S" ("invalid target" "?") #)
>            0 (apply-smob/1 #<boot-closure 736f6474ff40 (_ . _)> # #f ?)
> 
> ERROR: In procedure apply-smob/1:
> invalid target "x86_64--netbsd"

The attached patch relaxes validate-target so it accepts an empty
vendor string (but still requires all other components to be nonempty
as before).  With the patch and without the workaround in pkgsrc,
guile builds happily.

Attachment: emptyvendor.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]