diff options
author | CoprDistGit <infra@openeuler.org> | 2024-08-29 11:09:34 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-08-29 11:09:34 +0000 |
commit | c22cb56acddf5bc4147f60908d5ebd770a079070 (patch) | |
tree | 302eb716e7d6c4b9c514cf5cd9575b5a347fe220 /0001-Enable-LTO-By-Default.patch | |
parent | b28db8b7389e86a8b2a424f4851ecf7714373516 (diff) |
automatic import of openEuler-rpm-config
Diffstat (limited to '0001-Enable-LTO-By-Default.patch')
-rw-r--r-- | 0001-Enable-LTO-By-Default.patch | 625 |
1 files changed, 625 insertions, 0 deletions
diff --git a/0001-Enable-LTO-By-Default.patch b/0001-Enable-LTO-By-Default.patch new file mode 100644 index 0000000..bac5897 --- /dev/null +++ b/0001-Enable-LTO-By-Default.patch @@ -0,0 +1,625 @@ +From 2a24fbc1bb28764c3577f3a9e108614cd2e108b2 Mon Sep 17 00:00:00 2001 +From: wangchunyang <wangchunyang15@huawei.com> +Date: Fri, 26 Jul 2024 12:54:56 +0800 +Subject: [PATCH] Enable LTO By Default + +--- + brp-strip-lto | 17 ++ + lto_flag | 5 + + lto_white_list | 536 +++++++++++++++++++++++++++++++++++++++++++++++++ + macros | 6 +- + 4 files changed, 563 insertions(+), 1 deletion(-) + create mode 100644 brp-strip-lto + create mode 100755 lto_flag + create mode 100644 lto_white_list + +diff --git a/brp-strip-lto b/brp-strip-lto +new file mode 100644 +index 0000000..3df672a +--- /dev/null ++++ b/brp-strip-lto +@@ -0,0 +1,17 @@ ++#!/usr/bin/sh ++# If using normal root, avoid changing anything. ++if [ -z "$RPM_BUILD_ROOT" ] || [ "$RPM_BUILD_ROOT" = "/" ]; then ++ exit 0 ++fi ++ ++STRIP=${1:-strip} ++NCPUS=${RPM_BUILD_NCPUS:-1} ++ ++case `uname -a` in ++Darwin*) exit 0 ;; ++*) ;; ++esac ++ ++# Strip ELF binaries ++find "$RPM_BUILD_ROOT" -type f -name '*.[ao]' \! -regex "$RPM_BUILD_ROOT/*usr/lib/debug.*" -print0 | \ ++ eu-elfclassify --not-program --not-library --not-linux-kernel-module --stdin0 --print0 | xargs -0 -r -P$NCPUS -n32 sh -c "$STRIP -p -R .gnu.lto_* -R .gnu.debuglto_* -N __gnu_lto_v1 \"\$@\"" ARG0 +diff --git a/lto_flag b/lto_flag +new file mode 100755 +index 0000000..53e3adb +--- /dev/null ++++ b/lto_flag +@@ -0,0 +1,5 @@ ++#!/bin/sh ++current_spec=`cat /.build.command` ++if grep -Fxq "$current_spec" "/lib/rpm/openEuler/lto_white_list"; then ++ echo "-flto -ffat-lto-objects" ++fi +diff --git a/lto_white_list b/lto_white_list +new file mode 100644 +index 0000000..780be19 +--- /dev/null ++++ b/lto_white_list +@@ -0,0 +1,536 @@ ++adcli.spec ++aide.spec ++amanda.spec ++annobin.spec ++apr.spec ++argon2.spec ++at.spec ++atf.spec ++attr.spec ++audit.spec ++augeas.spec ++authselect.spec ++autogen.spec ++avahi.spec ++babeltrace.spec ++bind.spec ++bison.spec ++bolt.spec ++booth.spec ++brotli.spec ++byacc.spec ++bzip2.spec ++cairomm.spec ++certmonger.spec ++cfitsio.spec ++CharLS.spec ++check.spec ++chkconfig.spec ++chrony.spec ++chrpath.spec ++ck.spec ++clamav.spec ++clevis.spec ++clucene.spec ++cmake.spec ++cockpit.spec ++courier-unicode.spec ++cppcheck.spec ++cpp-httplib.spec ++cracklib.spec ++createrepo_c.spec ++cronie.spec ++cryptsetup.spec ++cups.spec ++cups-filters.spec ++curl.spec ++dav1d.spec ++dbus-broker.spec ++dbus-glib.spec ++dbxtool.spec ++dhcp.spec ++dialog.spec ++ding-libs.spec ++discount.spec ++dos2unix.spec ++dosfstools.spec ++double-conversion.spec ++dovecot.spec ++doxygen.spec ++dropwatch.spec ++drpm.spec ++d-spy.spec ++dwz.spec ++e2fsprogs.spec ++enca.spec ++entr.spec ++environment-modules.spec ++erlang-sd_notify.spec ++espeak-ng.spec ++ethtool.spec ++exempi.spec ++exiv2.spec ++expat.spec ++findutils.spec ++flac.spec ++flatbuffers.spec ++flex.spec ++fmt.spec ++fping.spec ++freetype.spec ++freexl.spec ++fribidi.spec ++gawk.spec ++gc.spec ++gdb.spec ++gdbm.spec ++gdisk.spec ++GeoIP.spec ++geos.spec ++gettext.spec ++ghostscript.spec ++git.spec ++gjs.spec ++glade.spec ++glib-networking.spec ++glm.spec ++glslang.spec ++glusterfs.spec ++gmp.spec ++gnome-autoar.spec ++gnupg2.spec ++gobject-introspection.spec ++gperftools.spec ++GraphicsMagick.spec ++graphite2.spec ++graphviz.spec ++greatsql.spec ++grep.spec ++groff.spec ++grubby.spec ++gsl.spec ++gsm.spec ++gtest.spec ++gzip.spec ++harfbuzz.spec ++hdf.spec ++hdf5.spec ++httpd.spec ++http-parser.spec ++hwloc.spec ++ibus-libpinyin.spec ++icu.spec ++ilmbase.spec ++Imath.spec ++iniparser.spec ++ipcalc.spec ++iproute.spec ++iptables.spec ++isomd5sum.spec ++jansson.spec ++jbig2dec.spec ++jbigkit.spec ++jemalloc.spec ++jimtcl.spec ++jose.spec ++jq.spec ++json-c.spec ++jsoncpp.spec ++Judy.spec ++kbd.spec ++krb5.spec ++kyua.spec ++lame.spec ++lcms2.spec ++libabigail.spec ++libadwaita.spec ++libaec.spec ++libarchive.spec ++libart_lgpl.spec ++libass.spec ++libatomic_ops.spec ++libb2.spec ++libbsd.spec ++libcap.spec ++libcap-ng.spec ++libcdio.spec ++libcdio-paranoia.spec ++libcomps.spec ++libconfuse.spec ++libcue.spec ++libdatrie.spec ++libdbi.spec ++libdnf.spec ++libdrm.spec ++libdwarf.spec ++libEMF.spec ++libev.spec ++libevent.spec ++libffado.spec ++libfprint.spec ++libgexiv2.spec ++libgit2.spec ++libglvnd.spec ++libgta.spec ++libhandy.spec ++libidn.spec ++libidn2.spec ++libiscsi.spec ++libisoburn.spec ++libjpeg-turbo.spec ++libkcapi.spec ++libkeepalive.spec ++libldb.spec ++liblouis.spec ++libmaxminddb.spec ++libmbim.spec ++libmd.spec ++libmemcached.spec ++libmetalink.spec ++libmodplug.spec ++libmodulemd.spec ++libnftnl.spec ++libnma.spec ++libnvme.spec ++libogg.spec ++libopenraw.spec ++libpinyin.spec ++libpipeline.spec ++libplist.spec ++libpwquality.spec ++libqb.spec ++libquvi.spec ++librabbitmq.spec ++libraqm.spec ++librdkafka.spec ++librepo.spec ++libreswan.spec ++librevenge.spec ++libsamplerate.spec ++libseccomp.spec ++libsemanage.spec ++libserf.spec ++libsexy.spec ++libshumate.spec ++libsndfile.spec ++libsodium.spec ++libsolv.spec ++libspectre.spec ++libspiro.spec ++libssh.spec ++libssh2.spec ++libtalloc.spec ++libtasn1.spec ++libtdb.spec ++libtevent.spec ++libtiff.spec ++libunwind.spec ++libusb.spec ++libusbmuxd.spec ++libuser.spec ++libutempter.spec ++libuv.spec ++libvirt.spec ++libvirt-python.spec ++libvorbis.spec ++libwacom.spec ++libwbxml.spec ++libx86emu.spec ++libyaml.spec ++libyubikey.spec ++libzip.spec ++lilv.spec ++lldb.spec ++lmdb.spec ++logrotate.spec ++lshw.spec ++lsof.spec ++lua-expat.spec ++lua-filesystem.spec ++lua-lpeg.spec ++luksmeta.spec ++lzip.spec ++lzo.spec ++m2crypto.spec ++m4.spec ++malcontent.spec ++man-db.spec ++mcpp.spec ++mdadm.spec ++mecab.spec ++metis.spec ++mksh.spec ++mod_auth_openidc.spec ++mod_http2.spec ++mokutil.spec ++mongo-c-driver.spec ++mozjs102.spec ++mpfr.spec ++mpich.spec ++mysql.spec ++nasm.spec ++netcf.spec ++nethogs.spec ++netpbm.spec ++net-snmp.spec ++newt.spec ++nfs-utils.spec ++nftables.spec ++nghttp2.spec ++ninja-build.spec ++nodejs.spec ++npth.spec ++nspr.spec ++nss_wrapper.spec ++nss-mdns.spec ++nss-pam-ldapd.spec ++nss-pem.spec ++ntp.spec ++numpy.spec ++ocl-icd.spec ++oddjob.spec ++oniguruma.spec ++opencc.spec ++OpenEXR.spec ++openhpi.spec ++open-isns.spec ++openmpi.spec ++openscap.spec ++opensp.spec ++openssh.spec ++openvpn.spec ++openvswitch.spec ++p11-kit.spec ++pacemaker.spec ++pam_krb5.spec ++pam_wrapper.spec ++pango.spec ++passwd.spec ++patchelf.spec ++patchutils.spec ++pavucontrol.spec ++pcre2.spec ++perl-autovivification.spec ++perl-B-COW.spec ++perl-BSD-Resource.spec ++perl-Class-XSAccessor.spec ++perl-Clone.spec ++perl-Compress-Bzip2.spec ++perl-Compress-Raw-Bzip2.spec ++perl-Compress-Raw-Zlib.spec ++perl-Crypt-DES.spec ++perl-Crypt-IDEA.spec ++perl-Curses.spec ++perl-Data-Dumper.spec ++perl-Data-UUID.spec ++perl-DateTime.spec ++perl-DB_File.spec ++perl-DBD-MariaDB.spec ++perl-DBD-MySQL.spec ++perl-DBD-Pg.spec ++perl-DBD-SQLite.spec ++perl-Devel-CallChecker.spec ++perl-Devel-Caller.spec ++perl-Devel-LexAlias.spec ++perl-Digest-MD5.spec ++perl-Digest-SHA.spec ++perl-Digest-SHA1.spec ++perl-Digest-SHA3.spec ++perl-Encode-EUCJPASCII.spec ++perl-Encode-JIS2K.spec ++perl-FCGI.spec ++perl-Filter.spec ++perl-GD.spec ++perl-Glib.spec ++perl-GSSAPI.spec ++perl-HTML-Parser.spec ++perl-IO-Tty.spec ++perl-IPC-SysV.spec ++perl-libintl-perl.spec ++perl-List-MoreUtils-XS.spec ++perl-Math-BigInt-FastCalc.spec ++perl-MIME-Base64.spec ++perl-NetAddr-IP.spec ++perl-Package-Stash-XS.spec ++perl-PerlIO-utf8_strict.spec ++perl-PkgConfig-LibPkgConf.spec ++perl-Scalar-List-Utils.spec ++perl-Socket.spec ++perl-Socket6.spec ++perl-Storable.spec ++perl-Sub-Identify.spec ++perl-Sub-Name.spec ++perl-Syntax-Keyword-Try.spec ++perl-Sys-CPU.spec ++perl-Sys-MemInfo.spec ++perl-Sys-Syslog.spec ++perl-TermReadKey.spec ++perl-Test-LeakTrace.spec ++perl-Text-Soundex.spec ++perl-threads-shared.spec ++perl-Time-HiRes.spec ++perl-Unicode-Collate.spec ++perl-Unicode-LineBreak.spec ++perl-Unicode-Normalize.spec ++perl-XML-LibXSLT.spec ++perl-YAML-LibYAML.spec ++phonon.spec ++pigz.spec ++pipewire.spec ++pkgconf.spec ++pngquant.spec ++poco.spec ++polkit-pkla-compat.spec ++poppler.spec ++popt.spec ++postgresql.spec ++postgresql-odbc.spec ++procenv.spec ++proj.spec ++protobuf2.spec ++protobuf-c.spec ++pulseaudio.spec ++pycairo.spec ++pyparted.spec ++PyQt4.spec ++python3.spec ++python-argon2-cffi-bindings.spec ++python-bcrypt.spec ++python-cffi.spec ++python-cheetah.spec ++python-ethtool.spec ++python-greenlet.spec ++python-kiwisolver.spec ++python-lazy-object-proxy.spec ++python-markupsafe.spec ++python-netifaces.spec ++python-pillow.spec ++python-psycopg2.spec ++python-pycryptodomex.spec ++python-pycurl.spec ++python-pymongo.spec ++python-pynacl.spec ++python-pyrsistent.spec ++python-simplejson.spec ++python-systemd.spec ++python-urwid.spec ++python-zope-interface.spec ++python-zstandard.spec ++pyxattr.spec ++qpid-proton.spec ++qrencode.spec ++qscintilla.spec ++qt6-qttools.spec ++quota.spec ++raptor2.spec ++rcs.spec ++realmd.spec ++recode.spec ++rhash.spec ++rpm.spec ++rrdtool.spec ++rsync.spec ++rsyslog.spec ++ruby.spec ++ruby-augeas.spec ++rubygem-bcrypt.spec ++rubygem-bindex.spec ++rubygem-bootsnap.spec ++rubygem-ffi.spec ++rubygem-hiredis.spec ++rubygem-idn.spec ++rubygem-msgpack.spec ++rubygem-nio4r.spec ++rubygem-nokogiri.spec ++rubygem-pg.spec ++rubygem-racc.spec ++rubygem-rdiscount.spec ++rubygem-redcarpet.spec ++rubygem-RedCloth.spec ++rubygem-regexp_property_values.spec ++rubygem-ruby-shadow.spec ++rubygem-sqlite3.spec ++rubygem-thin.spec ++rubygem-unf_ext.spec ++rubygem-websocket-driver.spec ++rust.spec ++satyr.spec ++sbc.spec ++sendmail.spec ++setools.spec ++sg3_utils.spec ++slang.spec ++snappy.spec ++socat.spec ++socket_wrapper.spec ++softhsm.spec ++sox.spec ++soxr.spec ++squid.spec ++sratom.spec ++srt.spec ++sscg.spec ++strace.spec ++subunit.spec ++swtpm.spec ++symlinks.spec ++sysbench.spec ++sysfsutils.spec ++sysprof.spec ++sysstat.spec ++systemd.spec ++taglib.spec ++tang.spec ++tar.spec ++tcl.spec ++tclx.spec ++tcp_wrappers.spec ++tcsh.spec ++teckit.spec ++telepathy-glib.spec ++tigervnc.spec ++time.spec ++timedatex.spec ++tipcutils.spec ++tokyocabinet.spec ++tpm2-tools.spec ++ttembed.spec ++ub-dhcp.spec ++uchardet.spec ++uid_wrapper.spec ++unbound.spec ++units.spec ++unrtf.spec ++unzip.spec ++uriparser.spec ++usbguard.spec ++userspace-rcu.spec ++ustr.spec ++utf8proc.spec ++util-linux.spec ++uuid.spec ++varnish.spec ++vid.stab.spec ++vino.spec ++virt-what.spec ++volume_key.spec ++wget.spec ++wxGTK3.spec ++xcb-util.spec ++xcb-util-image.spec ++xcb-util-keysyms.spec ++xcb-util-wm.spec ++xcb-util-xrm.spec ++xdelta.spec ++xmlstarlet.spec ++xmlto.spec ++xorg-x11-server.spec ++xorg-x11-xauth.spec ++xxhash.spec ++yajl.spec ++yelp.spec ++ykpers.spec ++zenity.spec ++zeromq.spec ++zstd.spec ++ +diff --git a/macros b/macros +index 3cd2655..b3fcdb5 100644 +--- a/macros ++++ b/macros +@@ -173,6 +173,7 @@ + %__brp_ldconfig /usr/lib/rpm/brp-ldconfig + %__brp_compress /usr/lib/rpm/brp-compress + %__brp_strip /usr/lib/rpm/brp-strip %{__strip} ++%__brp_strip_lto /usr/lib/rpm/brp-strip-lto %{__strip} + %__brp_strip_comment_note /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} + %__brp_strip_static_archive /usr/lib/rpm/brp-strip-static-archive %{__strip} + %__brp_python_bytecompile /usr/lib/rpm/brp-python-bytecompile "%{__python}" "%{?_python_bytecompile_errors_terminate_build}" "%{?_python_bytecompile_extra}" +@@ -185,6 +186,7 @@ + %{?__brp_strip} \ + %{?__brp_strip_comment_note} \ + } \ ++ [ "%{_lto_cflags}"x != x ] && %{?__brp_strip_lto} \ + %{?__brp_strip_static_archive} \ + %{?py_auto_byte_compile:%{?__brp_python_bytecompile}} \ + %{?__brp_python_hardlink} \ +@@ -261,7 +263,9 @@ + %_ld_as_needed 1 + %_ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed} + +-%_general_options -O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong %[ "%{toolchain}" == "clang" ? "-fgcc-compatible" : "" ] ++%_get_lto_cflags %(/lib/rpm/openEuler/lto_flag) ++%_lto_cflags %{_get_lto_cflags} ++%_general_options -O2 %{_lto_cflags} -g -grecord-gcc-switches -pipe -fstack-protector-strong %[ "%{toolchain}" == "clang" ? "-fgcc-compatible" : "" ] + %_warning_options -Wall -Werror=format-security + %_preprocessor_defines -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS + +-- +2.43.0 + |