[gnutls-devel] GnuTLS | GnuTLS 3.6.8 and one failed self test on Fedora 29, x86_64 (#784)
Development of GNU's TLS library
gnutls-devel at lists.gnutls.org
Fri Jun 7 14:00:19 CEST 2019
New Issue was created.
Issue 784: https://gitlab.com/gnutls/gnutls/issues/784
Author: Jeffrey Walton
Assignees:
## Description of problem:
One failed self test on Fedora 29, x86_64, fully patched. Running `make check` results in:
```
PASS: gendh
PASS: test-ciphers.sh
PASS: override-ciphers
PASS: test-hash-large.sh
PASS: crypto
FAIL: test-ciphers-api.sh
PASS: test-ciphers-openssl.sh
```
## Version of gnutls used:
GnuTLS 3.6.8
## Distributor of gnutls (e.g., Ubuntu, Fedora, RHEL)
GnuTLS from 3.6.8 source tarball. Fetched from https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/.
## How reproducible:
This is very reproducible. It has been nagging me for the last couple of years.
Steps to Reproduce:
* select an alternate location for GnuTLS and all dependencies. I select `prefix=/usr/local` and `libdir=/usr/local/lib64`
* select flags for GnuTLS and all dependencies. I select `CPPFLAGS = -I/usr/local/include -DNDEBUG`, `CFLAGS = -g2 -O2 -march=native -fPIC -pthread`, `CXXFLAGS = -g2 -O2 -march=native -fPIC -pthread` and `LDFLAGS = -L/usr/local/lib64 -Wl,-R,'$$ORIGIN/../lib64' -Wl,-R,/usr/local/lib64 -Wl,--enable-new-dtags`.
* build all GnuTLS dependencies
* build GnuTLS
* run `make check` before install
## Build GnuTLS
The previous step says "build GnuTLS". Here is the configure used. The various variables like `INSTX_PREFIX` and `BUILD_PKGCONFIG` are internal variables passed onto Autotools.
```
PKG_CONFIG_PATH="${BUILD_PKGCONFIG[*]}" \
CPPFLAGS="${BUILD_CPPFLAGS[*]}" \
CFLAGS="${BUILD_CFLAGS[*]}" \
CXXFLAGS="${BUILD_CXXFLAGS[*]}" \
LDFLAGS="${BUILD_LDFLAGS[*]}" \
LIBS="${BUILD_LIBS[*]}" \
./configure --enable-shared \
--prefix="$INSTX_PREFIX" \
--libdir="$INSTX_LIBDIR" \
--enable-seccomp-tests \
--disable-guile \
--disable-ssl2-support \
--disable-ssl3-support \
--disable-gtk-doc \
--disable-gtk-doc-html \
--disable-gtk-doc-pdf \
--with-p11-kit \
--with-libregex \
--with-nettle-prefix="$INSTX_PREFIX" \
--with-libiconv-prefix="$INSTX_PREFIX" \
--with-libintl-prefix="$INSTX_PREFIX" \
--with-libseccomp-prefix="$INSTX_PREFIX" \
--with-unbound-root-key-file="$SH_UNBOUND_ROOTKEY_FILE"
```
## Actual results:
```
$ make check
...
PASS: gendh
PASS: test-ciphers.sh
PASS: override-ciphers
PASS: test-hash-large.sh
PASS: crypto
FAIL: test-ciphers-api.sh
PASS: test-ciphers-openssl.sh
```
## Expected results:
All tests pass
## Files of interest
[config.log.zip](/uploads/870555967057aaeb286dc6e4a25fe5f3/config.log.zip)
[test-suite.log.zip](/uploads/417c58948084bd5e4b62e929da4474a1/test-suite.log.zip)
## Runtime Paths
I think this looks OK.
```
$ objdump -p gnutls-3.6.8/tests/slow/cipher-api-test
gnutls-3.6.8/tests/slow/cipher-api-test: file format elf64-x86-64
...
Dynamic Section:
NEEDED libgnutls.so.30
NEEDED libp11-kit.so.0
NEEDED libffi.so.6
NEEDED libidn2.so.0
NEEDED libunistring.so.2
NEEDED libiconv.so.2
NEEDED libtasn1.so.6
NEEDED libnettle.so.6
NEEDED libhogweed.so.4
NEEDED libgmp.so.10
NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libc.so.6
RUNPATH $ORIGIN/../lib64:/usr/local/lib64:/home/jwalton/Build-Scripts/gnutls-3.6.8/lib/.libs:/usr/local/lib64/../lib64
INIT 0x0000000000401000
FINI 0x0000000000402888
INIT_ARRAY 0x0000000000405d38
INIT_ARRAYSZ 0x0000000000000008
FINI_ARRAY 0x0000000000405d40
FINI_ARRAYSZ 0x0000000000000008
...
```
It seems like `RUNPATH` should include the build directory first. Other than that, all the non-system dependencies are located at `/usr/local/lib64` and should be found.
--
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/issues/784
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnutls-devel/attachments/20190607/0576e8ab/attachment-0001.html>
More information about the Gnutls-devel
mailing list