Message ID | 20200922155341.17906-1-James.Bottomley@HansenPartnership.com (mailing list archive) |
---|---|
Headers | show |
Series | Add explicit error for missing CONFIG_ASN1 | expand |
On 9/22/20 8:53 AM, James Bottomley wrote: > I recently ran into this as an error from 0day. On x86 it's pretty > much impossible to build a configuration where CONFIG_ASN1 isn't set, > so you rarely notice a problem using the ASN.1 compiler because > something else has selected it. However, this compiler is never built > if CONFIG_ASN1 isn't set and the error you get from kbuild is > particularly unhelpful: > > make[4]: *** No rule to make target 'security/keys/trusted-keys/tpm2key.asn1.o', needed by 'security/keys/trusted-keys/built-in.a'. > make[4]: *** [scripts/Makefile.build:283: security/keys/trusted-keys/trusted_tpm2.o] Error 1 > make[4]: Target '__build' not remade because of errors. > > This patch changes the above error to the much easier to diagnose: > > scripts/Makefile.build:387: *** CONFIG_ASN1 must be defined for the asn1_compiler. Stop. > make[3]: *** [scripts/Makefile.build:505: security/keys/trusted-keys] Error 2 > > James > > --- > > James Bottomley (1): > Makefile.build: Add an explicit error for missing ASN.1 compiler > > scripts/Makefile.build | 5 +++++ > 1 file changed, 5 insertions(+) Is there a missing select ASN1 somewhere?
On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: > On 9/22/20 8:53 AM, James Bottomley wrote: > > I recently ran into this as an error from 0day. On x86 it's pretty > > much impossible to build a configuration where CONFIG_ASN1 isn't > > set, so you rarely notice a problem using the ASN.1 compiler > > because something else has selected it. However, this compiler is > > never built if CONFIG_ASN1 isn't set and the error you get from > > kbuild is particularly unhelpful: > > > > make[4]: *** No rule to make target 'security/keys/trusted- > > keys/tpm2key.asn1.o', needed by 'security/keys/trusted-keys/built- > > in.a'. > > make[4]: *** [scripts/Makefile.build:283: security/keys/trusted- > > keys/trusted_tpm2.o] Error 1 > > make[4]: Target '__build' not remade because of errors. > > > > This patch changes the above error to the much easier to diagnose: > > > > scripts/Makefile.build:387: *** CONFIG_ASN1 must be defined for > > the asn1_compiler. Stop. > > make[3]: *** [scripts/Makefile.build:505: security/keys/trusted- > > keys] Error 2 > > > > James > > > > --- > > > > James Bottomley (1): > > Makefile.build: Add an explicit error for missing ASN.1 compiler > > > > scripts/Makefile.build | 5 +++++ > > 1 file changed, 5 insertions(+) > > Is there a missing > select ASN1 > somewhere? You mean in the build used to produce the errors above? Yes, so the patch is to make the problem more explicit. James
On 9/22/20 12:19 PM, James Bottomley wrote: > On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: >> On 9/22/20 8:53 AM, James Bottomley wrote: >>> I recently ran into this as an error from 0day. On x86 it's pretty >>> much impossible to build a configuration where CONFIG_ASN1 isn't >>> set, so you rarely notice a problem using the ASN.1 compiler >>> because something else has selected it. However, this compiler is >>> never built if CONFIG_ASN1 isn't set and the error you get from >>> kbuild is particularly unhelpful: >>> >>> make[4]: *** No rule to make target 'security/keys/trusted- >>> keys/tpm2key.asn1.o', needed by 'security/keys/trusted-keys/built- >>> in.a'. >>> make[4]: *** [scripts/Makefile.build:283: security/keys/trusted- >>> keys/trusted_tpm2.o] Error 1 >>> make[4]: Target '__build' not remade because of errors. >>> >>> This patch changes the above error to the much easier to diagnose: >>> >>> scripts/Makefile.build:387: *** CONFIG_ASN1 must be defined for >>> the asn1_compiler. Stop. >>> make[3]: *** [scripts/Makefile.build:505: security/keys/trusted- >>> keys] Error 2 >>> >>> James >>> >>> --- >>> >>> James Bottomley (1): >>> Makefile.build: Add an explicit error for missing ASN.1 compiler >>> >>> scripts/Makefile.build | 5 +++++ >>> 1 file changed, 5 insertions(+) >> >> Is there a missing >> select ASN1 >> somewhere? > > You mean in the build used to produce the errors above? Yes, so the > patch is to make the problem more explicit. I appreciate that the message can be improved, but it seems possible that some Kconfig could also be improved.
On Tue, 2020-09-22 at 12:38 -0700, Randy Dunlap wrote: > On 9/22/20 12:19 PM, James Bottomley wrote: > > On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: > > > On 9/22/20 8:53 AM, James Bottomley wrote: > > > > I recently ran into this as an error from 0day. On x86 it's > > > > pretty > > > > much impossible to build a configuration where CONFIG_ASN1 > > > > isn't > > > > set, so you rarely notice a problem using the ASN.1 compiler > > > > because something else has selected it. However, this compiler > > > > is > > > > never built if CONFIG_ASN1 isn't set and the error you get from > > > > kbuild is particularly unhelpful: > > > > > > > > make[4]: *** No rule to make target 'security/keys/trusted- > > > > keys/tpm2key.asn1.o', needed by 'security/keys/trusted- > > > > keys/built- > > > > in.a'. > > > > make[4]: *** [scripts/Makefile.build:283: > > > > security/keys/trusted- > > > > keys/trusted_tpm2.o] Error 1 > > > > make[4]: Target '__build' not remade because of errors. > > > > > > > > This patch changes the above error to the much easier to > > > > diagnose: > > > > > > > > scripts/Makefile.build:387: *** CONFIG_ASN1 must be defined > > > > for > > > > the asn1_compiler. Stop. > > > > make[3]: *** [scripts/Makefile.build:505: > > > > security/keys/trusted- > > > > keys] Error 2 > > > > > > > > James > > > > > > > > --- > > > > > > > > James Bottomley (1): > > > > Makefile.build: Add an explicit error for missing ASN.1 > > > > compiler > > > > > > > > scripts/Makefile.build | 5 +++++ > > > > 1 file changed, 5 insertions(+) > > > > > > Is there a missing > > > select ASN1 > > > somewhere? > > > > You mean in the build used to produce the errors above? Yes, so > > the > > patch is to make the problem more explicit. > > I appreciate that the message can be improved, but it seems possible > that some Kconfig could also be improved. I don't really see how. To find the problem you have to identify a conditional build in the Makefile that requires the asn1 compiler but for which the config option doesn't have a select ASN1. We don't currently preserve the "what selected this symbol" information in kconfig, which is what we'd need. James
On 9/22/20 12:44 PM, James Bottomley wrote: > On Tue, 2020-09-22 at 12:38 -0700, Randy Dunlap wrote: >> On 9/22/20 12:19 PM, James Bottomley wrote: >>> On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: >>>> On 9/22/20 8:53 AM, James Bottomley wrote: >>>>> I recently ran into this as an error from 0day. On x86 it's >>>>> pretty >>>>> much impossible to build a configuration where CONFIG_ASN1 >>>>> isn't >>>>> set, so you rarely notice a problem using the ASN.1 compiler >>>>> because something else has selected it. However, this compiler >>>>> is >>>>> never built if CONFIG_ASN1 isn't set and the error you get from >>>>> kbuild is particularly unhelpful: >>>>> >>>>> make[4]: *** No rule to make target 'security/keys/trusted- >>>>> keys/tpm2key.asn1.o', needed by 'security/keys/trusted- >>>>> keys/built- >>>>> in.a'. >>>>> make[4]: *** [scripts/Makefile.build:283: >>>>> security/keys/trusted- >>>>> keys/trusted_tpm2.o] Error 1 >>>>> make[4]: Target '__build' not remade because of errors. >>>>> >>>>> This patch changes the above error to the much easier to >>>>> diagnose: >>>>> >>>>> scripts/Makefile.build:387: *** CONFIG_ASN1 must be defined >>>>> for >>>>> the asn1_compiler. Stop. >>>>> make[3]: *** [scripts/Makefile.build:505: >>>>> security/keys/trusted- >>>>> keys] Error 2 >>>>> >>>>> James >>>>> >>>>> --- >>>>> >>>>> James Bottomley (1): >>>>> Makefile.build: Add an explicit error for missing ASN.1 >>>>> compiler >>>>> >>>>> scripts/Makefile.build | 5 +++++ >>>>> 1 file changed, 5 insertions(+) >>>> >>>> Is there a missing >>>> select ASN1 >>>> somewhere? >>> >>> You mean in the build used to produce the errors above? Yes, so >>> the >>> patch is to make the problem more explicit. >> >> I appreciate that the message can be improved, but it seems possible >> that some Kconfig could also be improved. > > I don't really see how. To find the problem you have to identify a > conditional build in the Makefile that requires the asn1 compiler but > for which the config option doesn't have a select ASN1. We don't > currently preserve the "what selected this symbol" information in > kconfig, which is what we'd need. Well, if you have a failing .config file, I would be glad to take a look at it...
On Tue, 2020-09-22 at 12:46 -0700, Randy Dunlap wrote: > On 9/22/20 12:44 PM, James Bottomley wrote: > > On Tue, 2020-09-22 at 12:38 -0700, Randy Dunlap wrote: > > > On 9/22/20 12:19 PM, James Bottomley wrote: > > > > On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: > > > > > On 9/22/20 8:53 AM, James Bottomley wrote: > > > > > > I recently ran into this as an error from 0day. On x86 > > > > > > it's > > > > > > pretty > > > > > > much impossible to build a configuration where CONFIG_ASN1 > > > > > > isn't > > > > > > set, so you rarely notice a problem using the ASN.1 > > > > > > compiler > > > > > > because something else has selected it. However, this > > > > > > compiler > > > > > > is > > > > > > never built if CONFIG_ASN1 isn't set and the error you get > > > > > > from > > > > > > kbuild is particularly unhelpful: > > > > > > > > > > > > make[4]: *** No rule to make target > > > > > > 'security/keys/trusted- > > > > > > keys/tpm2key.asn1.o', needed by 'security/keys/trusted- > > > > > > keys/built- > > > > > > in.a'. > > > > > > make[4]: *** [scripts/Makefile.build:283: > > > > > > security/keys/trusted- > > > > > > keys/trusted_tpm2.o] Error 1 > > > > > > make[4]: Target '__build' not remade because of errors. > > > > > > > > > > > > This patch changes the above error to the much easier to > > > > > > diagnose: > > > > > > > > > > > > scripts/Makefile.build:387: *** CONFIG_ASN1 must be > > > > > > defined > > > > > > for > > > > > > the asn1_compiler. Stop. > > > > > > make[3]: *** [scripts/Makefile.build:505: > > > > > > security/keys/trusted- > > > > > > keys] Error 2 > > > > > > > > > > > > James > > > > > > > > > > > > --- > > > > > > > > > > > > James Bottomley (1): > > > > > > Makefile.build: Add an explicit error for missing ASN.1 > > > > > > compiler > > > > > > > > > > > > scripts/Makefile.build | 5 +++++ > > > > > > 1 file changed, 5 insertions(+) > > > > > > > > > > Is there a missing > > > > > select ASN1 > > > > > somewhere? > > > > > > > > You mean in the build used to produce the errors above? Yes, > > > > so the patch is to make the problem more explicit. > > > > > > I appreciate that the message can be improved, but it seems > > > possible that some Kconfig could also be improved. > > > > I don't really see how. To find the problem you have to identify a > > conditional build in the Makefile that requires the asn1 compiler > > but for which the config option doesn't have a select ASN1. We > > don't currently preserve the "what selected this symbol" > > information in kconfig, which is what we'd need. > > Well, if you have a failing .config file, I would be glad to take a > look at it... The original problem is already fixed. The point of this patch is to make 0day explicitly identify it if it ever occurs again. James
On 9/22/20 12:48 PM, James Bottomley wrote: > On Tue, 2020-09-22 at 12:46 -0700, Randy Dunlap wrote: >> On 9/22/20 12:44 PM, James Bottomley wrote: >>> On Tue, 2020-09-22 at 12:38 -0700, Randy Dunlap wrote: >>>> On 9/22/20 12:19 PM, James Bottomley wrote: >>>>> On Tue, 2020-09-22 at 11:54 -0700, Randy Dunlap wrote: >>>>>> On 9/22/20 8:53 AM, James Bottomley wrote: >>>>>>> I recently ran into this as an error from 0day. On x86 >>>>>>> it's >>>>>>> pretty >>>>>>> much impossible to build a configuration where CONFIG_ASN1 >>>>>>> isn't >>>>>>> set, so you rarely notice a problem using the ASN.1 >>>>>>> compiler >>>>>>> because something else has selected it. However, this >>>>>>> compiler >>>>>>> is >>>>>>> never built if CONFIG_ASN1 isn't set and the error you get >>>>>>> from >>>>>>> kbuild is particularly unhelpful: >>>>>>> >>>>>>> make[4]: *** No rule to make target >>>>>>> 'security/keys/trusted- >>>>>>> keys/tpm2key.asn1.o', needed by 'security/keys/trusted- >>>>>>> keys/built- >>>>>>> in.a'. >>>>>>> make[4]: *** [scripts/Makefile.build:283: >>>>>>> security/keys/trusted- >>>>>>> keys/trusted_tpm2.o] Error 1 >>>>>>> make[4]: Target '__build' not remade because of errors. >>>>>>> >>>>>>> This patch changes the above error to the much easier to >>>>>>> diagnose: >>>>>>> >>>>>>> scripts/Makefile.build:387: *** CONFIG_ASN1 must be >>>>>>> defined >>>>>>> for >>>>>>> the asn1_compiler. Stop. >>>>>>> make[3]: *** [scripts/Makefile.build:505: >>>>>>> security/keys/trusted- >>>>>>> keys] Error 2 >>>>>>> >>>>>>> James >>>>>>> >>>>>>> --- >>>>>>> >>>>>>> James Bottomley (1): >>>>>>> Makefile.build: Add an explicit error for missing ASN.1 >>>>>>> compiler >>>>>>> >>>>>>> scripts/Makefile.build | 5 +++++ >>>>>>> 1 file changed, 5 insertions(+) >>>>>> >>>>>> Is there a missing >>>>>> select ASN1 >>>>>> somewhere? >>>>> >>>>> You mean in the build used to produce the errors above? Yes, >>>>> so the patch is to make the problem more explicit. >>>> >>>> I appreciate that the message can be improved, but it seems >>>> possible that some Kconfig could also be improved. >>> >>> I don't really see how. To find the problem you have to identify a >>> conditional build in the Makefile that requires the asn1 compiler >>> but for which the config option doesn't have a select ASN1. We >>> don't currently preserve the "what selected this symbol" >>> information in kconfig, which is what we'd need. >> >> Well, if you have a failing .config file, I would be glad to take a >> look at it... > > The original problem is already fixed. The point of this patch is to > make 0day explicitly identify it if it ever occurs again. Got it. That's helpful info IMO. thanks.