Bug 488702

Summary: libgcrypt-1.4.4-3.fc11 has broken build for apps using gcrypt/gnutls
Product: [Fedora] Fedora Reporter: Daniel BerrangĂ© <berrange>
Component: libgcryptAssignee: Tomas Mraz <tmraz>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: jorton, nalin, rdieter, tmraz
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libgcrypt-1.4.4-4.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-05 10:52:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Daniel Berrangé 2009-03-05 10:05:57 UTC
Description of problem:
We use gnutls (and thus libgcrypt) in libvirt. After updating to libgcrypt-1.4.4-3.fc11 we fail to link when doing builds 

http://koji.fedoraproject.org/koji/getfile?taskID=1223146&name=build.log

configure:46109: checking for gnutls_handshake in -lgnutls
configure:46144: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables   conftest.c -lgnutls -lgcrypt -lpthread  >&5
/usr/lib/gcc/i586-redhat-linux/4.4.0/../../../libgcrypt.so: undefined reference to `dlsym'
/usr/lib/gcc/i586-redhat-linux/4.4.0/../../../libgcrypt.so: undefined reference to `dladdr'
/usr/lib/gcc/i586-redhat-linux/4.4.0/../../../libgcrypt.so: undefined reference to `dlopen'
/usr/lib/gcc/i586-redhat-linux/4.4.0/../../../libgcrypt.so: undefined reference to `dlclose'
collect2: ld returned 1 exit status
configure:46150: $? = 1


It appears 1.4.4-3.fc11 has added some new link time library dependencies which is really not good because it breaks any app using libgcrypt which dos not happen to already use libdl.so

Version-Release number of selected component (if applicable):
1.4.4-3.fc11

How reproducible:
Always

Steps to Reproduce:
1. cat > gdemo.c <<EOF
extern int gcry_error_from_errno(int);

int main(void) {
  return gcry_error_from_errno(0);
}
EOF

2. gcc -o gdemo -lgcrypt gdemo.c
3.
  
Actual results:
/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/libgcrypt.so: undefined reference to `dlsym'
/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/libgcrypt.so: undefined reference to `dladdr'
/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/libgcrypt.so: undefined reference to `dlopen'
/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/libgcrypt.so: undefined reference to `dlclose'
collect2: ld returned 1 exit status


Expected results:
gdemo binary is created

Additional info:
This is blocking libvirt builds in rawhide required for beta release

Downgrading to 1.4.4-2.fc11 makes everything work fine again.

Comment 1 Tomas Mraz 2009-03-05 10:52:46 UTC
It was missing DT_NEEDED on libdl. Fixed.