View Issue Details

IDProjectCategoryView StatusLast Update
0006506GNUnetgnunet-setuppublic2020-09-04 21:21
Reportermateusz Assigned Toschanzen  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionGit master 
Target Version0.13.3Fixed in Version0.13.3 
Summary0006506: making gnunet fails: undefined reference to `crypto_scalarmult_ed25519_base_noclamp'
DescriptionI git cloned the master branch of gnunet today and tried to build it. 'bootstrap.sh' and configure executed fine, but then my attempt to create actual executables failed:

/usr/bin/ld: .libs/crypto_ecc.o: in function `GNUNET_CRYPTO_ecdsa_key_get_public':
/home/mateusz/svn/gnunet/gnunet/src/util/crypto_ecc.c:181: undefined reference to `crypto_scalarmult_ed25519_base_noclamp'
/usr/bin/ld: /home/mateusz/svn/gnunet/gnunet/src/util/crypto_ecc.c:181: undefined reference to `crypto_scalarmult_ed25519_base_noclamp'
clang-9.0: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [Makefile:1735: libgnunetutil.la] Error 1

I have libsodium installed, in version 1.0.16 (stock version as shipped by OpenSUSE 15.1). Looking for 'crypto_scalarmult_ed25519' in my local headers yelds no result for 'crypto_scalarmult_ed25519_base_noclamp':

mateusz@mateusz:/usr/include/sodium> grep 'crypto_scalarmult_ed25519' *.h
crypto_scalarmult_ed25519.h:#ifndef crypto_scalarmult_ed25519_H
crypto_scalarmult_ed25519.h:#define crypto_scalarmult_ed25519_H
crypto_scalarmult_ed25519.h:#define crypto_scalarmult_ed25519_BYTES 32U
crypto_scalarmult_ed25519.h:size_t crypto_scalarmult_ed25519_bytes(void);
crypto_scalarmult_ed25519.h:#define crypto_scalarmult_ed25519_SCALARBYTES 32U
crypto_scalarmult_ed25519.h:size_t crypto_scalarmult_ed25519_scalarbytes(void);
crypto_scalarmult_ed25519.h:int crypto_scalarmult_ed25519(unsigned char *q, const unsigned char *n,
crypto_scalarmult_ed25519.h:int crypto_scalarmult_ed25519_base(unsigned char *q, const unsigned char *n);

Is libsodium expected to be in some specific version? If so, the configure script did not tell anything about it.
Steps To ReproducePerformed on OpenSUSE 15.1 using the latest gnunet's git master:

./bootstrap.sh
./configure
make
Additional InformationThe exact same problem occurs also with the gnunet 0.13.2 branch (as downloaded today from the gnunet project's website).
TagsNo tags attached.

Activities

mateusz

2020-08-21 19:36

reporter   ~0016693

I pulled libsodium 1.0.18 from a third-party repo and here is the function that was missing:

mateusz@mateusz:/usr/include/sodium> grep 'crypto_scalarmult_ed25519_base' *
crypto_scalarmult_ed25519.h:int crypto_scalarmult_ed25519_base(unsigned char *q, const unsigned char *n)
crypto_scalarmult_ed25519.h:int crypto_scalarmult_ed25519_base_noclamp(unsigned char *q, const unsigned char *n)

Having libsodium v1.0.18, gnunet builds fine. It appears that the crypto_scalarmult_ed25519_base_noclamp() function appeared either in libsodium 1.0.17 or 1.0.18. Perhaps gnunet's configure script could check for this?
libsodium 1.0.16 is the one shipped even with openSUSE 15.2 (that is, the latest stable release, published last month).

schanzen

2020-09-04 20:19

manager   ~0016860

Fixed in 538277ed8..35d7c1f88

Issue History

Date Modified Username Field Change
2020-08-21 19:01 mateusz New Issue
2020-08-21 19:36 mateusz Note Added: 0016693
2020-09-04 20:19 schanzen Assigned To => schanzen
2020-09-04 20:19 schanzen Status new => resolved
2020-09-04 20:19 schanzen Resolution open => fixed
2020-09-04 20:19 schanzen Fixed in Version => 0.13.3
2020-09-04 20:19 schanzen Note Added: 0016860
2020-09-04 21:21 schanzen Target Version => 0.13.3