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.