Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1796383

Summary: tpm2-pkcs11 fails to build with gcc 10: multiple definition of `config'
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: tpm2-pkcs11Assignee: Jakub Jelen <jjelen>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: cstratak, jjelen, mhroncok, pbrobinson
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tpm2-pkcs11-1.0.1-3.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-10 14:46:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908, 1785415, 1792464    

Description Miro Hrončok 2020-01-30 10:05:43 UTC
tpm2-pkcs11 fails to build with gcc 10:


/bin/sh ./libtool  --tag=CC   --mode=link gcc -I./src -I./src/lib -Wall -Wextra -Werror -Wformat -Wformat-security -Wstack-protector -fstack-protector-all -Wstrict-overflow=5 -O2 -fPIC -fPIE       -pthread   -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,--version-script=./lib/tpm2-pkcs11.map -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o src/libtpm2_pkcs11.la -rpath /usr/lib64/pkcs11 src/pkcs11.lo  src/lib/attrs.lo src/lib/db.lo src/lib/digest.lo src/lib/emitter.lo src/lib/encrypt.lo src/lib/general.lo src/lib/key.lo src/lib/mutex.lo src/lib/object.lo src/lib/openssl_compat.lo src/lib/parser.lo src/lib/random.lo src/lib/session.lo src/lib/session_ctx.lo src/lib/session_table.lo src/lib/sign.lo src/lib/slot.lo src/lib/token.lo src/lib/tpm.lo src/lib/twist.lo src/lib/typed_memory.lo src/lib/utils.lo  -shared -pie -Wl,-z,relro -Wl,-z,now  -ltss2-esys  -ltss2-mu  -ltss2-tctildr  -ltss2-rc  -lsqlite3   -lcrypto  -lyaml  
libtool: link: gcc -shared  -fPIC -DPIC  src/.libs/pkcs11.o src/lib/.libs/attrs.o src/lib/.libs/db.o src/lib/.libs/digest.o src/lib/.libs/emitter.o src/lib/.libs/encrypt.o src/lib/.libs/general.o src/lib/.libs/key.o src/lib/.libs/mutex.o src/lib/.libs/object.o src/lib/.libs/openssl_compat.o src/lib/.libs/parser.o src/lib/.libs/random.o src/lib/.libs/session.o src/lib/.libs/session_ctx.o src/lib/.libs/session_table.o src/lib/.libs/sign.o src/lib/.libs/slot.o src/lib/.libs/token.o src/lib/.libs/tpm.o src/lib/.libs/twist.o src/lib/.libs/typed_memory.o src/lib/.libs/utils.o   -ltss2-esys -ltss2-mu -ltss2-tctildr -ltss2-rc -lsqlite3 -lcrypto -lyaml -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-all -O2 -pthread -O2 -g -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -Wl,--version-script=./lib/tpm2-pkcs11.map -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z -Wl,relro -Wl,-z -Wl,now   -pthread -Wl,-soname -Wl,libtpm2_pkcs11.so.0 -o src/.libs/libtpm2_pkcs11.so.0.0.0
/usr/bin/ld: src/lib/.libs/db.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/digest.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/encrypt.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/general.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/key.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/object.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/parser.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/random.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/session.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/session_ctx.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/session_table.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/sign.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/slot.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/token.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
/usr/bin/ld: src/lib/.libs/utils.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/src/lib/token.h:18: multiple definition of `config'; src/.libs/pkcs11.o:/builddir/build/BUILD/tpm2-pkcs11-1.0.1/./src/lib/token.h:18: first defined here
collect2: error: ld returned 1 exit status

This blocks the Python 3.9 rebuild of the package.

See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RYVPP45PMWPXYBBDKXO3CI7YGL7CDQG6/ and https://gcc.gnu.org/gcc-10/porting_to.html#common for more information about the failure.