|
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}
|
@@ -867,6 +872,7 @@ mkdir release
|
867 | 872 | (
|
868 | 873 | cd release
|
869 | 874 | %{cmake3} ../%{src_dir} \
|
| 875 | + %{?pgo:-DFPROFILE_GENERATE=1} \ |
870 | 876 | -DBUILD_CONFIG=mysql_release \
|
871 | 877 | -DINSTALL_LAYOUT=RPM \
|
872 | 878 | -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
@@ -916,6 +922,74 @@ mkdir release
|
916 | 922 | make %{?_smp_mflags} VERBOSE=1
|
917 | 923 | )
|
918 | 924 |
|
| 925 | +%if 0%{?pgo} |
| 926 | +( |
| 927 | + # Run some MTR load to generate profile data |
| 928 | + [ -d profile-data ] && rm -rf profile-data |
| 929 | + pushd release/mysql-test |
| 930 | + ./mtr \ |
| 931 | + --mem --parallel=auto --force --retry=0 \ |
| 932 | + --mysqld=--binlog-format=row \ |
| 933 | + --clean-vardir --suite=main || true |
| 934 | + rm -r $(readlink var) |
| 935 | + popd |
| 936 | + |
| 937 | + # Build again with profile data present |
| 938 | + rm -rf release |
| 939 | + mkdir release && pushd release |
| 940 | + cmake3 ../%{src_dir} \ |
| 941 | + -DFPROFILE_USE=1 \ |
| 942 | + -DBUILD_CONFIG=mysql_release \ |
| 943 | + -DINSTALL_LAYOUT=RPM \ |
| 944 | + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |
| 945 | + -DWITH_BOOST=.. \ |
| 946 | + -DCMAKE_C_FLAGS="%{optflags}" \ |
| 947 | + -DCMAKE_CXX_FLAGS="%{optflags}" \ |
| 948 | + -DUSE_LD_LLD=0 \ |
| 949 | +%if 0%{?ssl_default} |
| 950 | +%else |
| 951 | + -DWITH_AUTHENTICATION_CLIENT_PLUGINS=0 \ |
| 952 | + -DWITH_AUTHENTICATION_FIDO=0 \ |
| 953 | + -DWITH_AUTHENTICATION_KERBEROS=0 \ |
| 954 | + -DWITH_AUTHENTICATION_LDAP=0 \ |
| 955 | + -DWITH_AUTHENTICATION_OCI=0 \ |
| 956 | + -DWITH_COMPONENT_KEYRING_OCI=0 \ |
| 957 | + -DWITH_CURL=0 \ |
| 958 | + -DWITH_KEYRING_HASHICORP=0 \ |
| 959 | + -DWITH_KEYRING_OCI=0 \ |
| 960 | +%endif # ssl_default |
| 961 | + -DWITH_CURL=system \ |
| 962 | +%if 0%{?systemd} |
| 963 | + -DWITH_SYSTEMD=1 \ |
| 964 | +%endif |
| 965 | + -DWITH_ROUTER=%{with_router} \ |
| 966 | +%if 0%{?cluster} |
| 967 | + -DWITH_NDB=1 \ |
| 968 | +%endif |
| 969 | +%if 0%{?ndb_nodejs_path:1} |
| 970 | + -DNDB_NODEJS_PATH=%{ndb_nodejs_path} \ |
| 971 | +%endif |
| 972 | +%if 0%{?ndb_nodejs_extras_path:1} |
| 973 | + -DNDB_NODEJS_EXTRAS_PATH=%{ndb_nodejs_extras_path} \ |
| 974 | +%endif |
| 975 | +%if 0%{?commercial} |
| 976 | + -DWITH_MEB=%{with_meb} \ |
| 977 | + %{?aws_sdk_option} \ |
| 978 | +%endif |
| 979 | + %{?ssl_option} \ |
| 980 | + %{?mini_debug_option} \ |
| 981 | + -DWITH_INNODB_MEMCACHED=1 \ |
| 982 | + -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \ |
| 983 | + -DMYSQLX_UNIX_ADDR="/var/run/mysqld/mysqlx.sock" \ |
| 984 | + -DWITH_NUMA=1 \ |
| 985 | + %{?mecab_option} \ |
| 986 | + -DCOMPILATION_COMMENT="%{compilation_comment_release}" \ |
| 987 | + -DCOMPILATION_COMMENT_SERVER="%{compilation_comment_server_release}" \ |
| 988 | + -DMYSQL_SERVER_SUFFIX="%{?server_suffix}" |
| 989 | + make %{?_smp_mflags} VERBOSE=1 |
| 990 | +) |
| 991 | +%endif # pgo |
| 992 | + |
919 | 993 | %install
|
920 | 994 |
|
921 | 995 | %if 0%{?compatlib}
|
|
0 commit comments