[MDEV-20857] Multiple definitions for filename_hash Created: 2019-10-18  Updated: 2021-06-09  Resolved: 2021-02-24

Status: Closed
Project: MariaDB Server
Component/s: Compiling
Affects Version/s: 10.4.8
Fix Version/s: 10.4.19, 10.5.10

Type: Bug Priority: Major
Reporter: Sean McLinden Assignee: Daniel Black
Resolution: Fixed Votes: 0
Labels: tests
Environment:

Centos-7, devtoolset 8
cmake .. -DBUILD_CONFIG=mysql_release -DWITH_JEMALLOC=yes -DNOT_FOR_DISTRIBUTION=ON -Wno-dev



 Description   

[ 27%] Linking CXX executable explain_filename-t
../../storage/perfschema/libperfschema.a(pfs_instr.cc.o):(.bss+0x0): multiple definition of `filename_hash'
/apps/rh/devtoolset-8/root/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libiberty.a(filename_cmp.o):(.text+0x20): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [unittest/sql/CMakeFiles/explain_filename-t.dir/build.make:120: unittest/sql/explain_filename-t] Error 1
make[1]: *** [CMakeFiles/Makefile2:1842: unittest/sql/CMakeFiles/explain_filename-t.dir/all] Error 2
make: *** [Makefile:163: all] Error 2



 Comments   
Comment by Daniel Black [ 2021-02-04 ]

Also fc33 in 10.4 where perf schema enabled

~/repos/build-mariadb-server-10.4 
$ cmake --build .
[16/17] Linking CXX executable unittest/sql/explain_filename-t
FAILED: unittest/sql/explain_filename-t 
: && /usr/lib64/ccache/clang++ -fstack-protector --param=ssp-buffer-size=4 -O2 -g -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wextra -Wformat-security -Wno-init-self -Wno-null-conversion -Wno-unused-parameter -Wno-unused-private-field -Woverloaded-virtual -Wnon-virtual-dtor -Wvla -Wwrite-strings -Wl,-z,relro,-z,now unittest/sql/CMakeFiles/explain_filename-t.dir/explain_filename-t.cc.o -o unittest/sql/explain_filename-t  -lpthread  sql/libsql.a  unittest/mytap/libmytap.a  storage/csv/libcsv.a  storage/heap/libheap.a  storage/innobase/libinnobase.a  -llz4  -llzma  -lsnappy  -laio  storage/maria/libaria.a  storage/myisam/libmyisam.a  storage/myisammrg/libmyisammrg.a  storage/perfschema/libperfschema.a  storage/sequence/libsequence.a  plugin/auth_socket/libauth_socket.a  plugin/feedback/libfeedback.a  plugin/user_variables/libuser_variables.a  plugin/userstat/libuserstat.a  sql/libpartition.a  sql/libsql_sequence.a  mysys_ssl/libmysys_ssl.a  mysys/libmysys.a  dbug/libdbug.a  mysys/libmysys.a  dbug/libdbug.a  -lz  -lm  -lbfd  strings/libstrings.a  vio/libvio.a  -lpcre  -lcrypt  -lsystemd  -lsystemd  -lssl  -lcrypto  wsrep-lib/src/libwsrep-lib.a  -lpthread  -ldl  wsrep-lib/wsrep-API/libwsrep_api_v26.a  -lpthread && :
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/libiberty.a(filename_cmp.o): in function `filename_hash':
(.text+0x20): multiple definition of `filename_hash'; storage/perfschema/libperfschema.a(pfs_instr.cc.o):/home/dan/repos/mariadb-server-10.4/storage/perfschema/pfs_instr.cc:192: first defined here
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
[17/17] Linking CXX executable sql/mysqld
FAILED: sql/mysqld 
: && /usr/lib64/ccache/clang++ -fstack-protector --param=ssp-buffer-size=4 -O2 -g -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wextra -Wformat-security -Wno-init-self -Wno-null-conversion -Wno-unused-parameter -Wno-unused-private-field -Woverloaded-virtual -Wnon-virtual-dtor -Wvla -Wwrite-strings -Wl,-z,relro,-z,now   -Wl,--export-dynamic sql/CMakeFiles/mysqld.dir/main.cc.o -o sql/mysqld  -lpthread  sql/libsql.a  storage/csv/libcsv.a  storage/heap/libheap.a  storage/innobase/libinnobase.a  -llz4  -llzma  -lsnappy  -laio  storage/maria/libaria.a  storage/myisam/libmyisam.a  storage/myisammrg/libmyisammrg.a  storage/perfschema/libperfschema.a  storage/sequence/libsequence.a  plugin/auth_socket/libauth_socket.a  plugin/feedback/libfeedback.a  plugin/user_variables/libuser_variables.a  plugin/userstat/libuserstat.a  sql/libpartition.a  sql/libsql_sequence.a  mysys_ssl/libmysys_ssl.a  mysys/libmysys.a  dbug/libdbug.a  mysys/libmysys.a  dbug/libdbug.a  -lz  -lm  -lbfd  strings/libstrings.a  vio/libvio.a  -lpcre  -lcrypt  -lpthread  -lsystemd  -lsystemd  -lssl  -lcrypto  wsrep-lib/src/libwsrep-lib.a  -lpthread  -ldl  wsrep-lib/wsrep-API/libwsrep_api_v26.a && :
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/libiberty.a(filename_cmp.o): in function `filename_hash':
(.text+0x20): multiple definition of `filename_hash'; storage/perfschema/libperfschema.a(pfs_instr.cc.o):/home/dan/repos/mariadb-server-10.4/storage/perfschema/pfs_instr.cc:192: first defined here
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Comment by Daniel Black [ 2021-02-05 ]

reproduced by switching from PLUGIN_PERFSCHEMA=NO to PLUGIN_PERFSCHEMA=YES after a build. Couldn't reproduce on 10.3

$ cmake -DPLUGIN_PERFSCHEMA=NO .
-- Running cmake version 3.18.4
-- MariaDB 10.4.18
-- Updating submodules
cma-- Wsrep-lib version: 1.0.0
ke== Configuring MariaDB Connector/C
 --b-- -lcpprest
u-- Performance Schema is required by TokuDB
ild .CMake Warning at CMakeLists.txt:534 (MESSAGE):
  
 
  You have linked MariaDB with GPLv3 libraries! You may not distribute the
  resulting binary.  If you do, you will put yourself into a legal problem
  with the Free Software Foundation.
 
 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dan/repos/build-mariadb-server-10.4
 
 
~/repos/build-mariadb-server-10.4 
$ cmake --build . --target explain_filename-t
[727/727] Linking CXX executable unittest/sql/explain_filename-t
 
~/repos/build-mariadb-server-10.4 
$ cmake -DPLUGIN_PERFSCHEMA=YES .
-- Running cmake version 3.18.4
-- MariaDB 10.4.18
-- Updating submodules
-- Wsrep-lib version: 1.0.0
== Configuring MariaDB Connector/C
-- -lcpprest
CMake Warning at CMakeLists.txt:534 (MESSAGE):
  
 
  You have linked MariaDB with GPLv3 libraries! You may not distribute the
  resulting binary.  If you do, you will put yourself into a legal problem
  with the Free Software Foundation.
 
 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dan/repos/build-mariadb-server-10.4
 
~/repos/build-mariadb-server-10.4 
$ cmake --build . --target explain_filename-t
[802/802] Linking CXX executable unittest/sql/explain_filename-t
FAILED: unittest/sql/explain_filename-t 
: && /usr/lib64/ccache/clang++ -fstack-protector --param=ssp-buffer-size=4 -O2 -g -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wextra -Wformat-security -Wno-init-self -Wno-null-conversion -Wno-unused-parameter -Wno-unused-private-field -Woverloaded-virtual -Wnon-virtual-dtor -Wvla -Wwrite-strings -Wl,-z,relro,-z,now unittest/sql/CMakeFiles/explain_filename-t.dir/explain_filename-t.cc.o -o unittest/sql/explain_filename-t  -lpthread  sql/libsql.a  unittest/mytap/libmytap.a  storage/csv/libcsv.a  storage/heap/libheap.a  storage/innobase/libinnobase.a  -llz4  -llzma  -lsnappy  -laio  storage/maria/libaria.a  storage/myisam/libmyisam.a  storage/myisammrg/libmyisammrg.a  storage/perfschema/libperfschema.a  storage/sequence/libsequence.a  plugin/auth_socket/libauth_socket.a  plugin/feedback/libfeedback.a  plugin/user_variables/libuser_variables.a  plugin/userstat/libuserstat.a  sql/libpartition.a  sql/libsql_sequence.a  mysys_ssl/libmysys_ssl.a  mysys/libmysys.a  dbug/libdbug.a  mysys/libmysys.a  dbug/libdbug.a  -lz  -lm  -lbfd  strings/libstrings.a  vio/libvio.a  -lpcre  -lcrypt  -lsystemd  -lsystemd  -lssl  -lcrypto  wsrep-lib/src/libwsrep-lib.a  -lpthread  -ldl  wsrep-lib/wsrep-API/libwsrep_api_v26.a  -lpthread && :
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/libiberty.a(filename_cmp.o): in function `filename_hash':
(.text+0x20): multiple definition of `filename_hash'; storage/perfschema/libperfschema.a(pfs_instr.cc.o):/home/dan/repos/mariadb-server-10.4/storage/perfschema/pfs_instr.cc:192: first defined here
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Generated at Thu Feb 08 09:02:41 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.