Merge pull request #2706 from MehdiChinoune/pacman-lto-static

pacman: Fix LTO-ing staticlibs
This commit is contained in:
Christoph Reiter 2021-11-20 08:38:10 +01:00 committed by GitHub
commit b68cff56c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 4 deletions

View File

@ -0,0 +1,29 @@
From f578b472aa42851f8a142de20cd8c70664c60248 Mon Sep 17 00:00:00 2001
From: Mehdi Chinoune <mehdi.chinoune@hotmail.com>
Date: Sat, 13 Nov 2021 08:27:49 +0100
Subject: [PATCH] Fix building staticlibs with LTO
Unless `-ffat-lto-objects` get passed to the compiler, It will only generate LTO bytecode.
see:
https://wiki.ubuntu.com/ToolChain/LTO : Implementation
https://fedoraproject.org/wiki/Changes/LTOBuildImprovements
---
scripts/libmakepkg/buildenv/lto.sh.in | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in
index 8e7be66a5..c216a24fa 100644
--- a/scripts/libmakepkg/buildenv/lto.sh.in
+++ b/scripts/libmakepkg/buildenv/lto.sh.in
@@ -33,5 +33,10 @@ buildenv_lto() {
if check_option "lto" "y"; then
CFLAGS+=" -flto"
CXXFLAGS+=" -flto"
+ LDFLAGS+=" -flto"
+ if check_option "staticlibs" "y"; then
+ CFLAGS+=" -ffat-lto-objects"
+ CXXFLAGS+=" -ffat-lto-objects"
+ fi
fi
}

View File

@ -4,7 +4,7 @@
pkgname=pacman
pkgver=6.0.1
pkgrel=6
pkgrel=7
pkgdesc="A library-based package manager with dependency support (MSYS2 port)"
arch=('i686' 'x86_64')
url="https://www.archlinux.org/pacman/"
@ -61,7 +61,8 @@ source=(pacman-${pkgver}::git+https://gitlab.archlinux.org/pacman/pacman.git#com
0017-Export-CC-and-CXX-variables-explicitly.patch
0018-pacman.c-handle-cr-on-stdin-as-well.patch
0019-Add-a-CI-job.patch
0020-Strip-static-libraries-as-well.patch)
0020-Strip-static-libraries-as-well.patch
0021-fix-lto-staticlibs.patch)
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
sha256sums=('SKIP'
@ -88,7 +89,8 @@ sha256sums=('SKIP'
'5029415842e9c51dd8aa6e380636316cf3f8f2b3ef0ae3f9430658213cb56a2a'
'0ac2184c8419041f2948517a1c8b66ed740cf0bb1ac5856b384008495317e87b'
'17604e359cbc1666b678359a5f46b5f822ca0d3a62c6c672b74d45399d78ab5e'
'7e1b6df6806a62e69ec072188bb5fdc6575d030e7ac140cee191d0fdf78454a5')
'7e1b6df6806a62e69ec072188bb5fdc6575d030e7ac140cee191d0fdf78454a5'
'45dadd786e1dd64fda7cff3efcf2f5e0b873b2a80b42a41a21448686b4db0fe6')
apply_git_am_with_msg() {
for _patch in "$@"
@ -124,7 +126,8 @@ prepare() {
0017-Export-CC-and-CXX-variables-explicitly.patch \
0018-pacman.c-handle-cr-on-stdin-as-well.patch \
0019-Add-a-CI-job.patch \
0020-Strip-static-libraries-as-well.patch
0020-Strip-static-libraries-as-well.patch \
0021-fix-lto-staticlibs.patch
}
build() {