2016-04-01 14:59:10

by Fengguang Wu

[permalink] [raw]
Subject: gcm.c:undefined reference to `crypto_aead_setauthsize'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6ddf37da05cd71bf9e43349d607e810b43c9008a
commit: c09440f7dcb304002dfced8c0fea289eb25f2da0 macsec: introduce IEEE 802.1AE driver
date: 3 weeks ago
config: x86_64-randconfig-s3-04012139 (attached as .config)
reproduce:
git checkout c09440f7dcb304002dfced8c0fea289eb25f2da0
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

crypto/built-in.o: In function `gcm_enc_copy_hash':
>> gcm.c:(.text+0x278): undefined reference to `crypto_xor'
>> gcm.c:(.text+0x294): undefined reference to `scatterwalk_map_and_copy'
crypto/built-in.o: In function `crypto_gcm_verify':
gcm.c:(.text+0x2f7): undefined reference to `crypto_xor'
gcm.c:(.text+0x313): undefined reference to `scatterwalk_map_and_copy'
>> gcm.c:(.text+0x321): undefined reference to `__crypto_memneq'
crypto/built-in.o: In function `crypto_gcm_init_common':
>> gcm.c:(.text+0x58d): undefined reference to `scatterwalk_ffwd'
gcm.c:(.text+0x6d7): undefined reference to `scatterwalk_ffwd'
crypto/built-in.o: In function `crypto_rfc4106_crypt':
gcm.c:(.text+0x7c9): undefined reference to `scatterwalk_map_and_copy'
gcm.c:(.text+0x910): undefined reference to `scatterwalk_ffwd'
gcm.c:(.text+0xa83): undefined reference to `scatterwalk_ffwd'
crypto/built-in.o: In function `crypto_gcm_exit_tfm':
>> gcm.c:(.text+0xc46): undefined reference to `crypto_destroy_tfm'
gcm.c:(.text+0xc52): undefined reference to `crypto_destroy_tfm'
crypto/built-in.o: In function `crypto_rfc4106_exit_tfm':
gcm.c:(.text+0xc72): undefined reference to `crypto_destroy_tfm'
crypto/built-in.o: In function `crypto_rfc4106_init_tfm':
>> gcm.c:(.text+0xc9b): undefined reference to `crypto_spawn_tfm2'
crypto/built-in.o: In function `crypto_gcm_init_tfm':
gcm.c:(.text+0xd1e): undefined reference to `crypto_spawn_tfm2'
>> gcm.c:(.text+0xd5d): undefined reference to `crypto_spawn_tfm'
gcm.c:(.text+0xdcc): undefined reference to `crypto_destroy_tfm'
crypto/built-in.o: In function `crypto_gcm_setkey':
>> gcm.c:(.text+0xf3a): undefined reference to `crypto_ahash_setkey'
crypto/built-in.o: In function `crypto_gcm_free':
>> gcm.c:(.text+0xf85): undefined reference to `crypto_drop_spawn'
gcm.c:(.text+0xf91): undefined reference to `crypto_drop_spawn'
crypto/built-in.o: In function `crypto_rfc4543_free':
gcm.c:(.text+0xfb5): undefined reference to `crypto_drop_spawn'
crypto/built-in.o: In function `crypto_gcm_create_common':
>> gcm.c:(.text+0x1007): undefined reference to `crypto_get_attr_type'
>> gcm.c:(.text+0x1057): undefined reference to `crypto_ahash_type'
>> gcm.c:(.text+0x105c): undefined reference to `crypto_find_alg'
>> gcm.c:(.text+0x10f3): undefined reference to `crypto_init_ahash_spawn'
gcm.c:(.text+0x1114): undefined reference to `crypto_drop_spawn'
>> gcm.c:(.text+0x1134): undefined reference to `crypto_mod_put'
>> gcm.c:(.text+0x1169): undefined reference to `crypto_grab_skcipher'
gcm.c:(.text+0x119e): undefined reference to `crypto_drop_spawn'
>> gcm.c:(.text+0x1287): undefined reference to `aead_register_instance'
crypto/built-in.o: In function `crypto_gcm_base_create':
>> gcm.c:(.text+0x12bf): undefined reference to `crypto_attr_alg_name'
gcm.c:(.text+0x12f1): undefined reference to `crypto_attr_alg_name'
crypto/built-in.o: In function `crypto_gcm_create':
gcm.c:(.text+0x139d): undefined reference to `crypto_attr_alg_name'
crypto/built-in.o: In function `crypto_rfc4106_create':
gcm.c:(.text+0x1460): undefined reference to `crypto_get_attr_type'
gcm.c:(.text+0x14a3): undefined reference to `crypto_attr_alg_name'
>> gcm.c:(.text+0x1531): undefined reference to `crypto_grab_aead'
gcm.c:(.text+0x155b): undefined reference to `crypto_drop_spawn'
gcm.c:(.text+0x164d): undefined reference to `aead_register_instance'
crypto/built-in.o: In function `crypto_rfc4543_create':
gcm.c:(.text+0x1690): undefined reference to `crypto_get_attr_type'
gcm.c:(.text+0x16d3): undefined reference to `crypto_attr_alg_name'
gcm.c:(.text+0x1761): undefined reference to `crypto_grab_aead'
gcm.c:(.text+0x178b): undefined reference to `crypto_drop_spawn'
gcm.c:(.text+0x187d): undefined reference to `aead_register_instance'
crypto/built-in.o: In function `crypto_rfc4106_setauthsize':
>> gcm.c:(.text+0x18cd): undefined reference to `crypto_aead_setauthsize'
crypto/built-in.o: In function `crypto_rfc4543_setauthsize':
gcm.c:(.text+0x18f3): undefined reference to `crypto_aead_setauthsize'
crypto/built-in.o: In function `crypto_rfc4106_setkey':
>> gcm.c:(.text+0x194c): undefined reference to `crypto_aead_setkey'
crypto/built-in.o: In function `crypto_rfc4543_setkey':
gcm.c:(.text+0x19bc): undefined reference to `crypto_aead_setkey'
crypto/built-in.o: In function `crypto_rfc4543_exit_tfm':
gcm.c:(.text+0x19f2): undefined reference to `crypto_destroy_tfm'

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (5.07 kB)
.config.gz (26.42 kB)
Download all attachments

2016-04-04 14:00:37

by Herbert Xu

[permalink] [raw]
Subject: Re: gcm.c:undefined reference to `crypto_aead_setauthsize'

On Fri, Apr 01, 2016 at 03:02:30PM +0000, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 6ddf37da05cd71bf9e43349d607e810b43c9008a
> commit: c09440f7dcb304002dfced8c0fea289eb25f2da0 macsec: introduce IEEE 802.1AE driver
> date: 3 weeks ago
> config: x86_64-randconfig-s3-04012139 (attached as .config)
> reproduce:
> git checkout c09440f7dcb304002dfced8c0fea289eb25f2da0
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All errors (new ones prefixed by >>):
>
> crypto/built-in.o: In function `gcm_enc_copy_hash':
> >> gcm.c:(.text+0x278): undefined reference to `crypto_xor'

GCM is y but AEAD is only m, yet GCM selects AEAD. Perhaps a kbuild
bug?

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-04-05 07:15:32

by Philip Li

[permalink] [raw]
Subject: RE: gcm.c:undefined reference to `crypto_aead_setauthsize'



> -----Original Message-----
> From: Herbert Xu [mailto:[email protected]]
> Sent: Monday, April 4, 2016 10:00 PM
> To: Wu, Fengguang <[email protected]>
> Cc: Sabrina Dubroca <[email protected]>; [email protected];
> [email protected]; Hannes Frederic Sowa
> <[email protected]>; Linux Crypto Mailing List
> <[email protected]>
> Subject: Re: gcm.c:undefined reference to `crypto_aead_setauthsize'
>
> On Fri, Apr 01, 2016 at 03:02:30PM +0000, kbuild test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> master
> > head: 6ddf37da05cd71bf9e43349d607e810b43c9008a
> > commit: c09440f7dcb304002dfced8c0fea289eb25f2da0 macsec: introduce
> IEEE 802.1AE driver
> > date: 3 weeks ago
> > config: x86_64-randconfig-s3-04012139 (attached as .config)
> > reproduce:
> > git checkout c09440f7dcb304002dfced8c0fea289eb25f2da0
> > # save the attached .config to linux build tree
> > make ARCH=x86_64
> >
> > All errors (new ones prefixed by >>):
> >
> > crypto/built-in.o: In function `gcm_enc_copy_hash':
> > >> gcm.c:(.text+0x278): undefined reference to `crypto_xor'
>
> GCM is y but AEAD is only m, yet GCM selects AEAD. Perhaps a kbuild bug?
Thanks Herbert, currently we use make randconfig to generate this kconfig file, is it possible this is still a valid settings?

>
> Cheers,
> --
> Email: Herbert Xu <[email protected]> Home Page:
> http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-04-05 07:19:50

by Herbert Xu

[permalink] [raw]
Subject: Re: gcm.c:undefined reference to `crypto_aead_setauthsize'

On Tue, Apr 05, 2016 at 07:15:21AM +0000, Li, Philip wrote:
>
>
> > -----Original Message-----
> > From: Herbert Xu [mailto:[email protected]]
> > Sent: Monday, April 4, 2016 10:00 PM
> > To: Wu, Fengguang <[email protected]>
> > Cc: Sabrina Dubroca <[email protected]>; [email protected];
> > [email protected]; Hannes Frederic Sowa
> > <[email protected]>; Linux Crypto Mailing List
> > <[email protected]>
> > Subject: Re: gcm.c:undefined reference to `crypto_aead_setauthsize'
> >
> > On Fri, Apr 01, 2016 at 03:02:30PM +0000, kbuild test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > master
> > > head: 6ddf37da05cd71bf9e43349d607e810b43c9008a
> > > commit: c09440f7dcb304002dfced8c0fea289eb25f2da0 macsec: introduce
> > IEEE 802.1AE driver
> > > date: 3 weeks ago
> > > config: x86_64-randconfig-s3-04012139 (attached as .config)
> > > reproduce:
> > > git checkout c09440f7dcb304002dfced8c0fea289eb25f2da0
> > > # save the attached .config to linux build tree
> > > make ARCH=x86_64
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > crypto/built-in.o: In function `gcm_enc_copy_hash':
> > > >> gcm.c:(.text+0x278): undefined reference to `crypto_xor'
> >
> > GCM is y but AEAD is only m, yet GCM selects AEAD. Perhaps a kbuild bug?
> Thanks Herbert, currently we use make randconfig to generate this kconfig file, is it possible this is still a valid settings?

Sorry I didn't mean kbuild as in your build system, but kbuild as in
the kernel kbuild subsystem.

AFAICS, the Kconfig rules should forbid the situation in your
config file where GCM=y but AEAD=m because GCM selects AEAD. So
the fact that it happened either means that there is something
that I am missing or that the kbuild subsystem is buggy.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt