|
41 | 41 | %global with_router 1
|
42 | 42 | %endif
|
43 | 43 |
|
| 44 | +# PGO option, currently only for el7 |
| 45 | +%if 0%{?rhel} == 7 |
| 46 | +%{?with_pgo: %global pgo 1} |
| 47 | +%endif # rhel7 |
| 48 | + |
44 | 49 | # Pass path to mecab lib
|
45 | 50 | %{?with_mecab: %global mecab_option -DWITH_MECAB=%{with_mecab}}
|
46 | 51 | %{?with_mecab: %global mecab 1}
|
@@ -920,6 +925,7 @@ mkdir release
|
920 | 925 | (
|
921 | 926 | cd release
|
922 | 927 | %{cmake3} ../%{src_dir} \
|
| 928 | + %{?pgo:-DFPROFILE_GENERATE=1} \ |
923 | 929 | -DBUILD_CONFIG=mysql_release \
|
924 | 930 | -DINSTALL_LAYOUT=RPM \
|
925 | 931 | -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
@@ -972,6 +978,74 @@ mkdir release
|
972 | 978 | make %{?_smp_mflags} VERBOSE=1
|
973 | 979 | )
|
974 | 980 |
|
| 981 | +%if 0%{?pgo} |
| 982 | +( |
| 983 | + # Run some MTR load to generate profile data |
| 984 | + [ -d profile-data ] && rm -rf profile-data |
| 985 | + pushd release/mysql-test |
| 986 | + ./mtr \ |
| 987 | + --mem --parallel=auto --force --retry=0 \ |
| 988 | + --mysqld=--binlog-format=row \ |
| 989 | + --clean-vardir --suite=main || true |
| 990 | + rm -r $(readlink var) |
| 991 | + popd |
| 992 | + |
| 993 | + # Build again with profile data present |
| 994 | + rm -rf release |
| 995 | + mkdir release && pushd release |
| 996 | + cmake3 ../%{src_dir} \ |
| 997 | + -DFPROFILE_USE=1 \ |
| 998 | + -DBUILD_CONFIG=mysql_release \ |
| 999 | + -DINSTALL_LAYOUT=RPM \ |
| 1000 | + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |
| 1001 | + -DWITH_BOOST=.. \ |
| 1002 | + -DCMAKE_C_FLAGS="%{optflags}" \ |
| 1003 | + -DCMAKE_CXX_FLAGS="%{optflags}" \ |
| 1004 | + -DUSE_LD_LLD=0 \ |
| 1005 | +%if 0%{?ssl_default} |
| 1006 | +%else |
| 1007 | + -DWITH_AUTHENTICATION_CLIENT_PLUGINS=0 \ |
| 1008 | + -DWITH_AUTHENTICATION_FIDO=0 \ |
| 1009 | + -DWITH_AUTHENTICATION_KERBEROS=0 \ |
| 1010 | + -DWITH_AUTHENTICATION_LDAP=0 \ |
| 1011 | + -DWITH_AUTHENTICATION_OCI=0 \ |
| 1012 | + -DWITH_COMPONENT_KEYRING_OCI=0 \ |
| 1013 | + -DWITH_CURL=0 \ |
| 1014 | + -DWITH_KEYRING_HASHICORP=0 \ |
| 1015 | + -DWITH_KEYRING_OCI=0 \ |
| 1016 | +%endif # ssl_default |
| 1017 | + -DWITH_CURL=system \ |
| 1018 | +%if 0%{?systemd} |
| 1019 | + -DWITH_SYSTEMD=1 \ |
| 1020 | +%endif |
| 1021 | + -DWITH_ROUTER=%{with_router} \ |
| 1022 | +%if 0%{?cluster} |
| 1023 | + -DWITH_NDB=1 \ |
| 1024 | +%endif |
| 1025 | +%if 0%{?ndb_nodejs_path:1} |
| 1026 | + -DNDB_NODEJS_PATH=%{ndb_nodejs_path} \ |
| 1027 | +%endif |
| 1028 | +%if 0%{?ndb_nodejs_extras_path:1} |
| 1029 | + -DNDB_NODEJS_EXTRAS_PATH=%{ndb_nodejs_extras_path} \ |
| 1030 | +%endif |
| 1031 | +%if 0%{?commercial} |
| 1032 | + -DWITH_MEB=%{with_meb} \ |
| 1033 | + %{?aws_sdk_option} \ |
| 1034 | +%endif |
| 1035 | + %{?ssl_option} \ |
| 1036 | + %{?mini_debug_option} \ |
| 1037 | + -DWITH_INNODB_MEMCACHED=1 \ |
| 1038 | + -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \ |
| 1039 | + -DMYSQLX_UNIX_ADDR="/var/run/mysqld/mysqlx.sock" \ |
| 1040 | + -DWITH_NUMA=1 \ |
| 1041 | + %{?mecab_option} \ |
| 1042 | + -DCOMPILATION_COMMENT="%{compilation_comment_release}" \ |
| 1043 | + -DCOMPILATION_COMMENT_SERVER="%{compilation_comment_server_release}" \ |
| 1044 | + -DMYSQL_SERVER_SUFFIX="%{?server_suffix}" |
| 1045 | + make %{?_smp_mflags} VERBOSE=1 |
| 1046 | +) |
| 1047 | +%endif # pgo |
| 1048 | + |
975 | 1049 | %install
|
976 | 1050 | # /usr/bin/strip is too old on el6
|
977 | 1051 | %if 0%{?rhel} == 6
|
|
0 commit comments