<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>
<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">
<div></div>
<h2 dir="auto">
<a id="user-content-description-of-problem" class="anchor" href="#description-of-problem" aria-hidden="true"></a>Description of problem:</h2>
<p dir="auto">One failed self test on Fedora 29, x86_64, fully patched. Running <code>make check</code> results in:</p>
<pre class="code highlight js-syntax-highlight plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">PASS: gendh</span>
<span id="LC2" class="line" lang="plaintext">PASS: test-ciphers.sh</span>
<span id="LC3" class="line" lang="plaintext">PASS: override-ciphers</span>
<span id="LC4" class="line" lang="plaintext">PASS: test-hash-large.sh</span>
<span id="LC5" class="line" lang="plaintext">PASS: crypto</span>
<span id="LC6" class="line" lang="plaintext">FAIL: test-ciphers-api.sh</span>
<span id="LC7" class="line" lang="plaintext">PASS: test-ciphers-openssl.sh</span></code></pre>
<h2 dir="auto">
<a id="user-content-version-of-gnutls-used" class="anchor" href="#version-of-gnutls-used" aria-hidden="true"></a>Version of gnutls used:</h2>
<p dir="auto">GnuTLS 3.6.8</p>
<h2 dir="auto">
<a id="user-content-distributor-of-gnutls-eg-ubuntu-fedora-rhel" class="anchor" href="#distributor-of-gnutls-eg-ubuntu-fedora-rhel" aria-hidden="true"></a>Distributor of gnutls (e.g., Ubuntu, Fedora, RHEL)</h2>
<p dir="auto">GnuTLS from 3.6.8 source tarball. Fetched from <a href="https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/" rel="nofollow noreferrer noopener" target="_blank">https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/</a>.</p>
<h2 dir="auto">
<a id="user-content-how-reproducible" class="anchor" href="#how-reproducible" aria-hidden="true"></a>How reproducible:</h2>
<p dir="auto">This is very reproducible. It has been nagging me for the last couple of years.</p>
<p dir="auto">Steps to Reproduce:</p>
<ul dir="auto">
<li>select an alternate location for GnuTLS and all dependencies. I select <code>prefix=/usr/local</code> and <code>libdir=/usr/local/lib64</code>
</li>
<li>select flags for GnuTLS and all dependencies. I select <code>CPPFLAGS = -I/usr/local/include -DNDEBUG</code>, <code>CFLAGS = -g2 -O2 -march=native -fPIC -pthread</code>, <code>CXXFLAGS = -g2 -O2 -march=native -fPIC -pthread</code> and <code>LDFLAGS = -L/usr/local/lib64 -Wl,-R,'$$ORIGIN/../lib64' -Wl,-R,/usr/local/lib64 -Wl,--enable-new-dtags</code>.</li>
<li>build all GnuTLS dependencies</li>
<li>build GnuTLS</li>
<li>run <code>make check</code> before install</li>
</ul>
<h2 dir="auto">
<a id="user-content-build-gnutls" class="anchor" href="#build-gnutls" aria-hidden="true"></a>Build GnuTLS</h2>
<p dir="auto">The previous step says "build GnuTLS". Here is the configure used. The various variables like <code>INSTX_PREFIX</code> and <code>BUILD_PKGCONFIG</code> are internal variables passed onto Autotools.</p>
<pre class="code highlight js-syntax-highlight plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext"> PKG_CONFIG_PATH="${BUILD_PKGCONFIG[*]}" \</span>
<span id="LC2" class="line" lang="plaintext"> CPPFLAGS="${BUILD_CPPFLAGS[*]}" \</span>
<span id="LC3" class="line" lang="plaintext"> CFLAGS="${BUILD_CFLAGS[*]}" \</span>
<span id="LC4" class="line" lang="plaintext"> CXXFLAGS="${BUILD_CXXFLAGS[*]}" \</span>
<span id="LC5" class="line" lang="plaintext"> LDFLAGS="${BUILD_LDFLAGS[*]}" \</span>
<span id="LC6" class="line" lang="plaintext"> LIBS="${BUILD_LIBS[*]}" \</span>
<span id="LC7" class="line" lang="plaintext">./configure --enable-shared \</span>
<span id="LC8" class="line" lang="plaintext"> --prefix="$INSTX_PREFIX" \</span>
<span id="LC9" class="line" lang="plaintext"> --libdir="$INSTX_LIBDIR" \</span>
<span id="LC10" class="line" lang="plaintext"> --enable-seccomp-tests \</span>
<span id="LC11" class="line" lang="plaintext"> --disable-guile \</span>
<span id="LC12" class="line" lang="plaintext"> --disable-ssl2-support \</span>
<span id="LC13" class="line" lang="plaintext"> --disable-ssl3-support \</span>
<span id="LC14" class="line" lang="plaintext"> --disable-gtk-doc \</span>
<span id="LC15" class="line" lang="plaintext"> --disable-gtk-doc-html \</span>
<span id="LC16" class="line" lang="plaintext"> --disable-gtk-doc-pdf \</span>
<span id="LC17" class="line" lang="plaintext"> --with-p11-kit \</span>
<span id="LC18" class="line" lang="plaintext"> --with-libregex \</span>
<span id="LC19" class="line" lang="plaintext"> --with-nettle-prefix="$INSTX_PREFIX" \</span>
<span id="LC20" class="line" lang="plaintext"> --with-libiconv-prefix="$INSTX_PREFIX" \</span>
<span id="LC21" class="line" lang="plaintext"> --with-libintl-prefix="$INSTX_PREFIX" \</span>
<span id="LC22" class="line" lang="plaintext"> --with-libseccomp-prefix="$INSTX_PREFIX" \</span>
<span id="LC23" class="line" lang="plaintext"> --with-unbound-root-key-file="$SH_UNBOUND_ROOTKEY_FILE"</span></code></pre>
<h2 dir="auto">
<a id="user-content-actual-results" class="anchor" href="#actual-results" aria-hidden="true"></a>Actual results:</h2>
<pre class="code highlight js-syntax-highlight plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">$ make check</span>
<span id="LC2" class="line" lang="plaintext">...</span>
<span id="LC3" class="line" lang="plaintext"></span>
<span id="LC4" class="line" lang="plaintext">PASS: gendh</span>
<span id="LC5" class="line" lang="plaintext">PASS: test-ciphers.sh</span>
<span id="LC6" class="line" lang="plaintext">PASS: override-ciphers</span>
<span id="LC7" class="line" lang="plaintext">PASS: test-hash-large.sh</span>
<span id="LC8" class="line" lang="plaintext">PASS: crypto</span>
<span id="LC9" class="line" lang="plaintext">FAIL: test-ciphers-api.sh</span>
<span id="LC10" class="line" lang="plaintext">PASS: test-ciphers-openssl.sh</span></code></pre>
<h2 dir="auto">
<a id="user-content-expected-results" class="anchor" href="#expected-results" aria-hidden="true"></a>Expected results:</h2>
<p dir="auto">All tests pass</p>
<h2 dir="auto">
<a id="user-content-files-of-interest" class="anchor" href="#files-of-interest" aria-hidden="true"></a>Files of interest</h2>
<p dir="auto"><a href="https://gitlab.com/gnutls/gnutls/uploads/870555967057aaeb286dc6e4a25fe5f3/config.log.zip">config.log.zip</a></p>
<p dir="auto"><a href="https://gitlab.com/gnutls/gnutls/uploads/417c58948084bd5e4b62e929da4474a1/test-suite.log.zip">test-suite.log.zip</a></p>
<h2 dir="auto">
<a id="user-content-runtime-paths" class="anchor" href="#runtime-paths" aria-hidden="true"></a>Runtime Paths</h2>
<p dir="auto">I think this looks OK.</p>
<pre class="code highlight js-syntax-highlight plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">$ objdump -p gnutls-3.6.8/tests/slow/cipher-api-test</span>
<span id="LC2" class="line" lang="plaintext"></span>
<span id="LC3" class="line" lang="plaintext">gnutls-3.6.8/tests/slow/cipher-api-test: file format elf64-x86-64</span>
<span id="LC4" class="line" lang="plaintext">...</span>
<span id="LC5" class="line" lang="plaintext"></span>
<span id="LC6" class="line" lang="plaintext">Dynamic Section:</span>
<span id="LC7" class="line" lang="plaintext"> NEEDED libgnutls.so.30</span>
<span id="LC8" class="line" lang="plaintext"> NEEDED libp11-kit.so.0</span>
<span id="LC9" class="line" lang="plaintext"> NEEDED libffi.so.6</span>
<span id="LC10" class="line" lang="plaintext"> NEEDED libidn2.so.0</span>
<span id="LC11" class="line" lang="plaintext"> NEEDED libunistring.so.2</span>
<span id="LC12" class="line" lang="plaintext"> NEEDED libiconv.so.2</span>
<span id="LC13" class="line" lang="plaintext"> NEEDED libtasn1.so.6</span>
<span id="LC14" class="line" lang="plaintext"> NEEDED libnettle.so.6</span>
<span id="LC15" class="line" lang="plaintext"> NEEDED libhogweed.so.4</span>
<span id="LC16" class="line" lang="plaintext"> NEEDED libgmp.so.10</span>
<span id="LC17" class="line" lang="plaintext"> NEEDED libdl.so.2</span>
<span id="LC18" class="line" lang="plaintext"> NEEDED libpthread.so.0</span>
<span id="LC19" class="line" lang="plaintext"> NEEDED libc.so.6</span>
<span id="LC20" class="line" lang="plaintext"> RUNPATH $ORIGIN/../lib64:/usr/local/lib64:/home/jwalton/Build-Scripts/gnutls-3.6.8/lib/.libs:/usr/local/lib64/../lib64</span>
<span id="LC21" class="line" lang="plaintext"> INIT 0x0000000000401000</span>
<span id="LC22" class="line" lang="plaintext"> FINI 0x0000000000402888</span>
<span id="LC23" class="line" lang="plaintext"> INIT_ARRAY 0x0000000000405d38</span>
<span id="LC24" class="line" lang="plaintext"> INIT_ARRAYSZ 0x0000000000000008</span>
<span id="LC25" class="line" lang="plaintext"> FINI_ARRAY 0x0000000000405d40</span>
<span id="LC26" class="line" lang="plaintext"> FINI_ARRAYSZ 0x0000000000000008</span>
<span id="LC27" class="line" lang="plaintext"> ...</span></code></pre>
<p dir="auto">It seems like <code>RUNPATH</code> should include the build directory first. Other than that, all the non-system dependencies are located at <code>/usr/local/lib64</code> and should be found.</p>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">
—
<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/issues/784">view it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.com.
If you'd like to receive fewer emails, you can
<a href="https://gitlab.com/sent_notifications/2e0445494961a15948ee3b6b61a3463f/unsubscribe">unsubscribe</a>
from this thread or
adjust your notification settings.
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.com/gnutls/gnutls/issues/784"}}</script>
</p>
</div>
</body>
</html>