[MDEV-11512] cmake insufficent dependency between perf schema and sql_yacc.h Created: 2016-12-09  Updated: 2017-03-03  Resolved: 2017-03-03

Status: Closed
Project: MariaDB Server
Component/s: Compiling
Affects Version/s: 10.2.3
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Daniel Black Assignee: Sergei Golubchik
Resolution: Cannot Reproduce Votes: 0
Labels: None


 Description   

 
+ cmake /source -DCMAKE_BUILD_TYPE=Release -DBUILD_CONFIG=mysql_release -DWITH_PROTOBUF=system -DWITH_NDB_JAVA=NO -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 '-DCMAKE_C_FLAGS_RELWITHDEBINFO=-m64 -O3 -g -mtune=native' '-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-m64 -O3 -g -mtune=native' '-DCMAKE_C_FLAGS=-m64 -O3 -g -mtune=native' '-DCMAKE_CXX_FLAGS=-m64 -O3 -g -mtune=native' -DWITH_SSL=system -DCMAKE_INSTALL_PREFIX=/mysql/mariadb-upstream-Release-10.1 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_FEDERATEDX_STORAGE_ENGINE=1 -DWITHOUT_TOKUDB_STORAGE_ENGINE=1
...
...
+ make -j48 --output-sync=target VERBOSE=1
....
...
[ 37%] Building CXX object storage/perfschema/CMakeFiles/perfschema_embedded.dir/pfs_digest.cc.o
cd /build/build/storage/perfschema && ccache /usr/bin/g++-6   -DHAVE_CONFIG_H -DHAVE_SYSTEMD -DMYSQL_SERVER -I/build/build/include -I/source -I/source/include -I/source/sql -I/build/build/sql -I/build/build/pcre -I/source/pcre -I/source/zlib  -m64 -O3 -g -mtune=native -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fno-exceptions -fno-rtti -O3 -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF   -fPIC -fvisibility=hidden -o CMakeFiles/perfschema_embedded.dir/pfs_digest.cc.o -c /source/storage/perfschema/pfs_digest.cc
In file included from /source/sql/sql_class.h:495:0,
                 from /source/sql/sql_acl.h:21,
                 from /source/storage/perfschema/pfs_engine_table.h:19,
                 from /source/storage/perfschema/table_helper.h:22,
                 from /source/storage/perfschema/pfs_digest.cc:32:
/source/sql/sql_lex.h:132:22: fatal error: sql_yacc.h: No such file or directory
 #include "sql_yacc.h"
                      ^
compilation terminated.
storage/perfschema/CMakeFiles/perfschema_embedded.dir/build.make:326: recipe for target 'storage/perfschema/CMakeFiles/perfschema_embedded.dir/pfs_digest.cc.o' failed
make[2]: *** [storage/perfschema/CMakeFiles/perfschema_embedded.dir/pfs_digest.cc.o] Error 1
make[2]: Leaving directory '/build/build'
make[2]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/build/build'
 
....
 
[  8%] Generating sql_yacc.cc, sql_yacc.h
cd /build/build/sql && /usr/bin/bison -y -p MYSQL --output=/build/build/sql/sql_yacc.cc --defines=/build/build/sql/sql_yacc.h /source/sql/sql_yacc.yy
/source/sql/sql_yacc.yy:1025.1-12: warning: deprecated directive, use '%pure-parser' [-Wdeprecated]
 %pure_parser                                    /* We have threads */
 ^^^^^^^^^^^^

The 37% build finished before the job started at 8%.



 Comments   
Comment by Sergey Vojtovich [ 2016-12-21 ]

Reassigning to serg, since he seem to know more about this issue:

commit 91dab5ddb6accbb256e7089aea8ba38e66a1b0cf
Author: Sergei Golubchik <serg@mariadb.org>
Date:   Tue Jun 2 18:09:53 2015 +0200
 
    fix cmake dependencies
 
    perfschema after 5.6 merge depends on sql_yacc.h

Comment by Daniel Black [ 2017-03-03 ]

Not sure if anything has changed however I tried to reproduce as follows in a 10.2 out of source build directory:

~/build$ rm ./storage/perfschema/CMakeFiles/perfschema.dir/pfs_digest.cc.o sql/sql_yacc.h
~/build$ make -j34 & until  killall -STOP bison ; do  sleep 0.1; done
....
[ 69%] Built target ma_pagecache_consist_64k-t
[ 69%] Built target ma_test_loghandler_multithread-t
[ 70%] Built target ma_pagecache_single_64k-t
[ 71%] Built target ma_pagecache_consist_1k-t
[ 71%] Built target ma_test_loghandler_multigroup-t
[ 72%] Built target ma_test_loghandler_nologs-t
[ 81%] Built target innobase
 
 
pause for long while
 
~/build$ killall -CONT bison
~/build$ [ 81%] Built target GenServerSource
Scanning dependencies of target gen_lex_token
[ 81%] Building CXX object sql/CMakeFiles/gen_lex_token.dir/gen_lex_token.cc.o
Scanning dependencies of target perfschema
[ 81%] Linking CXX executable gen_lex_token
[ 81%] Built target gen_lex_token
[ 81%] Generating lex_token.h
[ 81%] Built target GenDigestServerSource
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/cursor_by_account.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/pfs.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/cursor_by_host.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/pfs_digest.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esgs_by_account_by_event_name.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/ha_perfschema.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esms_by_host_by_event_name.cc.o
[ 81%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esms_by_thread_by_event_name.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/cursor_by_thread.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esgs_by_host_by_event_name.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/cursor_by_user.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esgs_by_user_by_event_name.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/table_esms_global_by_event_name.cc.o
[ 82%] Building CXX object storage/perfschema/CMakeFiles/perfschema.dir/pfs_autosize.cc.o

So the perfschema build is correctly dependent on the bison process completing and producing sql_yacc.h

Only by unsuspending the bison process does the build continue to the perfschema

Comment by Sergei Golubchik [ 2017-03-03 ]

Thanks for confirming!

Generated at Thu Feb 08 07:50:31 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.