www-client/chromium: sync with upstream
This commit is contained in:
parent
1f98be9023
commit
062bc60d3d
5 changed files with 139 additions and 25 deletions
|
@ -6,14 +6,14 @@ DIST chromium-133.0.6943.27-linux-testdata.tar.xz 299232560 BLAKE2B 88cd384d378b
|
||||||
DIST chromium-133.0.6943.27-linux.tar.xz 2300194124 BLAKE2B 7219cc54f799cc5ab4d64c90454f47495028ff291d4b96a5c504efdffc993e75d60b906b59211e681263276e1292f0fdcbb46c32c409f9d5dd72aa6d726b66fe SHA512 e7c0fd65782de14b3f9a2be5f2bb5a8ac8cf26216b3924026d0257d94bd82558ea349bfa6f34cff9768a39d7670dcb9144873a4d46ef63b9d4c93c4056a6f728
|
DIST chromium-133.0.6943.27-linux.tar.xz 2300194124 BLAKE2B 7219cc54f799cc5ab4d64c90454f47495028ff291d4b96a5c504efdffc993e75d60b906b59211e681263276e1292f0fdcbb46c32c409f9d5dd72aa6d726b66fe SHA512 e7c0fd65782de14b3f9a2be5f2bb5a8ac8cf26216b3924026d0257d94bd82558ea349bfa6f34cff9768a39d7670dcb9144873a4d46ef63b9d4c93c4056a6f728
|
||||||
DIST chromium-133.0.6943.53-linux-testdata.tar.xz 299288504 BLAKE2B 4ad9c3115b9e1b37ee49aef22d91af3df26b28f771b1aa217a1d7bdb3023608b3483bd98c0e77f9f2a22f7edd12fb6e63515225957555b93fabf0d0739439ec8 SHA512 517a1635baf033a00df5fff8aea22c1150b4ca97b6f9aebecfb0681c81f2708700a536a837c13bbd5ffa9938c7f32a0cc65ac648474df2613f15bedbffafaa11
|
DIST chromium-133.0.6943.53-linux-testdata.tar.xz 299288504 BLAKE2B 4ad9c3115b9e1b37ee49aef22d91af3df26b28f771b1aa217a1d7bdb3023608b3483bd98c0e77f9f2a22f7edd12fb6e63515225957555b93fabf0d0739439ec8 SHA512 517a1635baf033a00df5fff8aea22c1150b4ca97b6f9aebecfb0681c81f2708700a536a837c13bbd5ffa9938c7f32a0cc65ac648474df2613f15bedbffafaa11
|
||||||
DIST chromium-133.0.6943.53-linux.tar.xz 2300503052 BLAKE2B 567e1e7f1722bc4ff118ac292ecfd59cf8d9380612ec8a36a65b8df84802d75042128f4b9b0366e4682e5d5c98981470df204fba8fc26a4d53d2d379d73421d1 SHA512 d7d0a7433190f15516950fbd4ccb5f13ab3f543388748d6c48f3d4b24a745c263b12ec56225259d93a697774ebc75b18cb4bc17cfd9e98e4c0f66df7a2eff4f8
|
DIST chromium-133.0.6943.53-linux.tar.xz 2300503052 BLAKE2B 567e1e7f1722bc4ff118ac292ecfd59cf8d9380612ec8a36a65b8df84802d75042128f4b9b0366e4682e5d5c98981470df204fba8fc26a4d53d2d379d73421d1 SHA512 d7d0a7433190f15516950fbd4ccb5f13ab3f543388748d6c48f3d4b24a745c263b12ec56225259d93a697774ebc75b18cb4bc17cfd9e98e4c0f66df7a2eff4f8
|
||||||
DIST chromium-134-clang.tar.xz 54177680 BLAKE2B ebe3e42ba0950f067b0febec65e575ec510f64a056e0a1a9dfffebde02809429c98461638784149dc31423ade29f1dbe4b060af06d8371c0ca8d10d83c7d8617 SHA512 4cf26e6f895ca1b268afcde296f2e7c761f99584170e1f3deecb1c5501be2121f173934a4598124bed69d0bd266f799bf03adfdb2190cb9f23c1212072a8bace
|
DIST chromium-134.0.6998.3-linux-testdata.tar.xz 299961832 BLAKE2B 1e6891cc56684fdfbedb5080b7ffe781519dece6eb087dd03667d889163776349c869c6d873f8c99ab479ac02248bec51685c56f117c2ede17f9616ab37f4fd6 SHA512 4fdeb80d43d6da74b5776253fed18b38d77f5ee6205e5ce459d8b57d2ef2c4690f15226ea2efdee925dc1ffdaa80648ff816afdf7fa7b0cc792cb5ccecbcbf13
|
||||||
DIST chromium-134-rust.tar.xz 124591376 BLAKE2B c062e7283994ef15055a37f66a1c01dfcbcf03d16b7de48e7d017cec479f306999112dcd0f016157cfd0334349b55ae29512be3063dc6c3de90311520e90a5c1 SHA512 09be07ff0adfcc2928b28f5763a7e18bb7ef1f0cbf4a2475e3e6ae19a0a310a4a8f323375b947a48247853412119781bc9fa1422e24b96423c071f68337d6766
|
DIST chromium-134.0.6998.3-linux.tar.xz 2335399444 BLAKE2B b2fafc534e07ae48a3dcdd581e00a375626fffdbbb9e426eba507c922187f0b9ce167bc126d760eea14590134df2e583907214aeaa264f53061f64d7d5ff4007 SHA512 8bbcfac480a5325885129ea5c40187e174d65809234b307b0f83ec88cb59571709920917157128e7d02ea09c578819270fb0980438c1c989236d5edc9cba284f
|
||||||
DIST chromium-134.0.6988.2-linux-testdata.tar.xz 299844124 BLAKE2B df40b1a459525bc23abbc3fe40ed9b6e532f18afc4c918995919bd66591a22599bd09dbb327679e51d997b9e4600bacafeaf9721d75891f55c57c7efbc90c7d3 SHA512 4c310193f2d244a8633a9c03c3ac1231d888094cfb6abe93af188bdf6a81961218b801ec596b4dee9f2454473c54d7e26f78ec0be29ee4a2b67ae75ba6deab43
|
DIST chromium-clang-llvmorg-20-init-17108-g29ed6000-3.tar.xz 54170388 BLAKE2B 1383726ef2977ddb6ca9cef7eb7f5730e9635c570c1e20c3103922242e012579b87cf7ada668a6dedec375fa821115e5c79c32b12ab486a9e427f2e00344cfdc SHA512 a2aee165ee5581f442af222b23182370349a3b0b5412d05600c2d2258f31449e986bb7e88601b26049b4a926b15938238bfe8abd01ff6eaf2df84a64812007a1
|
||||||
DIST chromium-134.0.6988.2-linux.tar.xz 2287904388 BLAKE2B 4ec7b0308e4d13ee008fd147d52ffb49e5755c8c89c3ffaf660f43b6f8550fff92cb419a8e9cfe32059b45ce1f7c433a1470b677854a5cc286221d538094b01c SHA512 199c6de63585a352956080613101bc22147335648624b66c73741962fe3502474648d42060945139bb7b13935e71bc1d35bb35ad73e2ae5dfabc0657a2ff2e64
|
|
||||||
DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b
|
DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b
|
||||||
DIST chromium-openpower-c11b515d9a.tar.bz2 396039 BLAKE2B c05653e6bb62188c18864e783197853f4c41f88d1c928044a0ea0cb4677bc17806fac266ab100cbbcec3cb0d964bf2172917df95679927c1f1a88fa34aef4f53 SHA512 e9d9bbb2dd8d998060c78dfd5bbaedc548a8c44b442f6259304797326c585046144a6bb8aa4e24c44b3b56068189bee8a01267db2a392e90fd5603d06c0ef9ff
|
DIST chromium-openpower-c11b515d9a.tar.bz2 396039 BLAKE2B c05653e6bb62188c18864e783197853f4c41f88d1c928044a0ea0cb4677bc17806fac266ab100cbbcec3cb0d964bf2172917df95679927c1f1a88fa34aef4f53 SHA512 e9d9bbb2dd8d998060c78dfd5bbaedc548a8c44b442f6259304797326c585046144a6bb8aa4e24c44b3b56068189bee8a01267db2a392e90fd5603d06c0ef9ff
|
||||||
DIST chromium-patches-132.tar.bz2 5040 BLAKE2B d5bd84dd90b395c6a15135637f51f931c72a2f301b1c24e9b938c744f2767fa36857b8edfdf5c44cf085a1efcb40475401fec226ce43446442f32fb174b55355 SHA512 29833b306a34ab6562ee58eb03669818da7235cd36666b27d829bcbd3c4d0035a530fb6be1c33cf88c1c11d43e68e3781f9b9602c0c004e7a37ffa69f9ee17c7
|
DIST chromium-patches-132.tar.bz2 5040 BLAKE2B d5bd84dd90b395c6a15135637f51f931c72a2f301b1c24e9b938c744f2767fa36857b8edfdf5c44cf085a1efcb40475401fec226ce43446442f32fb174b55355 SHA512 29833b306a34ab6562ee58eb03669818da7235cd36666b27d829bcbd3c4d0035a530fb6be1c33cf88c1c11d43e68e3781f9b9602c0c004e7a37ffa69f9ee17c7
|
||||||
DIST chromium-patches-133-1.tar.bz2 10661 BLAKE2B c8a141bd10e628533e373b08969f95443eb6ae7f4497359db02f370147ac6132fbc31db28915ebdd9f150c13be78f06af938bd7dffdf2c23d90e1b9e07bd92ab SHA512 48a356872acc41c96c92366bd09de5a1c4af87fe4c480dccc7bd7a2aae5c3be8e6411151ed36303a127022001248bd25ef8305e83bd0d533660e3f11943af686
|
DIST chromium-patches-133-1.tar.bz2 10661 BLAKE2B c8a141bd10e628533e373b08969f95443eb6ae7f4497359db02f370147ac6132fbc31db28915ebdd9f150c13be78f06af938bd7dffdf2c23d90e1b9e07bd92ab SHA512 48a356872acc41c96c92366bd09de5a1c4af87fe4c480dccc7bd7a2aae5c3be8e6411151ed36303a127022001248bd25ef8305e83bd0d533660e3f11943af686
|
||||||
DIST chromium-patches-134.tar.bz2 10184 BLAKE2B 5ff1022205ef3e0e88b43e6c20d33a86386d80b837135eaa5451b004f09290de3b765694e31c9e6e840ec7e0537bbe6164a61224a55e17cd04356f1d5af8ee37 SHA512 29fc1f70a95501e0f82e2bb66f7eefab2bd75995d660271ab0dd043b18663107547faddf71b555b82da39e31393c7220893e09d4b28a71b18855d82399e3512b
|
DIST chromium-patches-134.tar.bz2 10184 BLAKE2B 5ff1022205ef3e0e88b43e6c20d33a86386d80b837135eaa5451b004f09290de3b765694e31c9e6e840ec7e0537bbe6164a61224a55e17cd04356f1d5af8ee37 SHA512 29fc1f70a95501e0f82e2bb66f7eefab2bd75995d660271ab0dd043b18663107547faddf71b555b82da39e31393c7220893e09d4b28a71b18855d82399e3512b
|
||||||
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
|
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
|
||||||
|
DIST chromium-rust-toolchain-ad211ced81-1-llvmorg-20-init-17108-g29ed6000.tar.xz 124591376 BLAKE2B c062e7283994ef15055a37f66a1c01dfcbcf03d16b7de48e7d017cec479f306999112dcd0f016157cfd0334349b55ae29512be3063dc6c3de90311520e90a5c1 SHA512 09be07ff0adfcc2928b28f5763a7e18bb7ef1f0cbf4a2475e3e6ae19a0a310a4a8f323375b947a48247853412119781bc9fa1422e24b96423c071f68337d6766
|
||||||
DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde
|
DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde
|
||||||
|
|
|
@ -47,7 +47,7 @@ SLOT="0/stable"
|
||||||
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
||||||
# it shouldn't be keyworded but adventurous users can select it.
|
# it shouldn't be keyworded but adventurous users can select it.
|
||||||
if [[ ${SLOT} != "0/dev" ]]; then
|
if [[ ${SLOT} != "0/dev" ]]; then
|
||||||
KEYWORDS="~arm64"
|
KEYWORDS="arm64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
||||||
|
|
|
@ -47,7 +47,7 @@ SLOT="0/stable"
|
||||||
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
||||||
# it shouldn't be keyworded but adventurous users can select it.
|
# it shouldn't be keyworded but adventurous users can select it.
|
||||||
if [[ ${SLOT} != "0/dev" ]]; then
|
if [[ ${SLOT} != "0/dev" ]]; then
|
||||||
KEYWORDS="~arm64"
|
KEYWORDS="arm64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
|
||||||
|
|
|
@ -25,8 +25,9 @@ EAPI=8
|
||||||
GN_MIN_VER=0.2207
|
GN_MIN_VER=0.2207
|
||||||
# chromium-tools/get-chromium-toolchain-strings.py
|
# chromium-tools/get-chromium-toolchain-strings.py
|
||||||
TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
|
TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
|
||||||
BUNDLED_CLANG_VER=llvmorg-20-init-17108-g29ed6000-1
|
BUNDLED_CLANG_VER=llvmorg-20-init-17108-g29ed6000-3
|
||||||
BUNDLED_RUST_VER=ad211ced81509462cdfe4c29ed10f97279a0acae-1
|
BUNDLED_RUST_VER=ad211ced81509462cdfe4c29ed10f97279a0acae-1
|
||||||
|
RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
|
||||||
|
|
||||||
VIRTUALX_REQUIRED="pgo"
|
VIRTUALX_REQUIRED="pgo"
|
||||||
|
|
||||||
|
@ -54,9 +55,9 @@ SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz
|
||||||
)
|
)
|
||||||
bundled-toolchain? (
|
bundled-toolchain? (
|
||||||
https://gsdview.appspot.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
|
https://gsdview.appspot.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
|
||||||
-> chromium-${PV%%\.*}-clang.tar.xz
|
-> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
|
||||||
https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
|
https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
|
||||||
-> chromium-${PV%%\.*}-rust.tar.xz
|
-> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
|
||||||
)
|
)
|
||||||
test? (
|
test? (
|
||||||
https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz
|
https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz
|
||||||
|
@ -68,7 +69,7 @@ SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz
|
||||||
pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
|
pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
|
||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0/dev"
|
SLOT="0/beta"
|
||||||
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
# Dev exists mostly to give devs some breathing room for beta/stable releases;
|
||||||
# it shouldn't be keyworded but adventurous users can select it.
|
# it shouldn't be keyworded but adventurous users can select it.
|
||||||
if [[ ${SLOT} != "0/dev" ]]; then
|
if [[ ${SLOT} != "0/dev" ]]; then
|
||||||
|
@ -385,11 +386,12 @@ src_unpack() {
|
||||||
if use bundled-toolchain; then
|
if use bundled-toolchain; then
|
||||||
einfo "Unpacking bundled Clang ..."
|
einfo "Unpacking bundled Clang ..."
|
||||||
mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
|
mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
|
||||||
tar xf "${DISTDIR}/chromium-${PV%%\.*}-clang.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
|
tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
|
||||||
einfo "Unpacking bundled Rust ..."
|
einfo "Unpacking bundled Rust ..."
|
||||||
local rust_dir="${WORKDIR}/rust-toolchain"
|
local rust_dir="${WORKDIR}/rust-toolchain"
|
||||||
mkdir -p ${rust_dir} || die "Failed to create rust toolchain directory"
|
mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
|
||||||
tar xf "${DISTDIR}/chromium-${PV%%\.*}-rust.tar.xz" -C ${rust_dir} || die "Failed to unpack Rust"
|
tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
|
||||||
|
die "Failed to unpack Rust"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if use ppc64; then
|
if use ppc64; then
|
||||||
|
@ -407,6 +409,7 @@ src_prepare() {
|
||||||
"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
|
"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
|
||||||
"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
|
"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
|
||||||
"${FILESDIR}/chromium-134-oauth2-client-switches.patch"
|
"${FILESDIR}/chromium-134-oauth2-client-switches.patch"
|
||||||
|
"${FILESDIR}/chromium-134-bindgen-custom-toolchain.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
if use widevine; then
|
if use widevine; then
|
||||||
|
@ -434,18 +437,6 @@ src_prepare() {
|
||||||
cp "${WORKDIR}"/rust-toolchain/VERSION \
|
cp "${WORKDIR}"/rust-toolchain/VERSION \
|
||||||
"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
|
"${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
|
||||||
else
|
else
|
||||||
# This patch breaks bundled-toolchain builds as the required path_suffix clearly differs
|
|
||||||
# between the two. Probably just need to update the patch to gate updating this value on the 'unbundle'
|
|
||||||
# toolchain? Alternative: move to chromium-patches, but this is probably something that we
|
|
||||||
# can upstream, so let's try to do it properly. For now apply conditionally so that we have _a_ dev
|
|
||||||
# channel ebuild.
|
|
||||||
# Currently evaluates to:
|
|
||||||
# `-resource-dir', `'../../third_party/llvm-build/Release+Asserts/include'`
|
|
||||||
# This is correct if the first part of the concatenated variable points to /usr/lib/clang/<majver>
|
|
||||||
# Correct for bundled toolchain is:
|
|
||||||
# `-resource-dir', `'../../third_party/llvm-build/Release+Asserts/lib/clang/<majver>/include'`
|
|
||||||
# TODO: fix before this leaves dev.
|
|
||||||
PATCHES+=( "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" )
|
|
||||||
# We don't need our toolchain patches if we're using the official toolchain
|
# We don't need our toolchain patches if we're using the official toolchain
|
||||||
shopt -s globstar nullglob
|
shopt -s globstar nullglob
|
||||||
# 130: moved the PPC64 patches into the chromium-patches repo
|
# 130: moved the PPC64 patches into the chromium-patches repo
|
|
@ -0,0 +1,123 @@
|
||||||
|
From 04fe2f9010c2cc58eced407e6eb2124c67a60109 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Jolly <kangie@gentoo.org>
|
||||||
|
Date: Thu, 6 Feb 2025 11:40:08 +1000
|
||||||
|
Subject: [PATCH] Make bindgen wrapper work with unbundled toolchain
|
||||||
|
|
||||||
|
The `run_bindgen.py` wrapper takes a --libclang-path option
|
||||||
|
and uses it to set the appropriate environment variable.
|
||||||
|
|
||||||
|
This is currently hardcoded to use libclang shipped alongside
|
||||||
|
bindgen (in our rust toolchain), but distributions may want to
|
||||||
|
override this and use a system path.
|
||||||
|
|
||||||
|
Additionally enable distros to feed in appropriate library paths.
|
||||||
|
---
|
||||||
|
build/config/rust.gni | 11 +++++++++++
|
||||||
|
build/rust/rust_bindgen.gni | 12 ++++++------
|
||||||
|
build/rust/rust_bindgen_generator.gni | 22 ++++++++++++++++++----
|
||||||
|
3 files changed, 35 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/build/config/rust.gni b/build/config/rust.gni
|
||||||
|
index 5b9e3e1e65..1e93be41ff 100644
|
||||||
|
--- a/build/config/rust.gni
|
||||||
|
+++ b/build/config/rust.gni
|
||||||
|
@@ -64,6 +64,17 @@ declare_args() {
|
||||||
|
# the bindgen exectuable).
|
||||||
|
rust_bindgen_root = "//third_party/rust-toolchain"
|
||||||
|
|
||||||
|
+ # Directory under which to find one of `libclang.{dll,so}` (a `lib[64]` or
|
||||||
|
+ # `bin` directory containing the libclang shared library).
|
||||||
|
+ # We don't need to worry about multlib, but specify the full path here
|
||||||
|
+ # in case a distribution does.
|
||||||
|
+ if (host_os == "win") {
|
||||||
|
+ bindgen_libclang_path = "//third_party/rust-toolchain/bin"
|
||||||
|
+ } else {
|
||||||
|
+ bindgen_libclang_path = "//third_party/rust-toolchain/lib"
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# If you're using a Rust toolchain as specified by rust_sysroot_absolute,
|
||||||
|
# set this to the output of `rustc -V`. Changing this string will cause all
|
||||||
|
# Rust targets to be rebuilt, which allows you to update your toolchain and
|
||||||
|
diff --git a/build/rust/rust_bindgen.gni b/build/rust/rust_bindgen.gni
|
||||||
|
index 5c809c6932..a493daa909 100644
|
||||||
|
--- a/build/rust/rust_bindgen.gni
|
||||||
|
+++ b/build/rust/rust_bindgen.gni
|
||||||
|
@@ -17,13 +17,13 @@ if (host_os == "win") {
|
||||||
|
_bindgen_path = "${_bindgen_path}.exe"
|
||||||
|
}
|
||||||
|
|
||||||
|
-# On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
|
||||||
|
-# ../lib.
|
||||||
|
-_libclang_path = rust_bindgen_root
|
||||||
|
-if (host_os == "win") {
|
||||||
|
- _libclang_path += "/bin"
|
||||||
|
+if (clang_base_path != default_clang_base_path && custom_toolchain == "//build/toolchain/linux/unbundle:default") {
|
||||||
|
+ # Assume that the user has set this up properly, including handling multilib
|
||||||
|
+ _clang_libpath = clang_base_path + "/include"
|
||||||
|
+ _clang_ld_libpath = bindgen_libclang_path
|
||||||
|
} else {
|
||||||
|
- _libclang_path += "/lib"
|
||||||
|
+ _clang_libpath = clang_base_path + "/lib/clang/" + clang_version
|
||||||
|
+ _clang_ld_libpath = clang_base_path + "/lib"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Template to build Rust/C bindings with bindgen.
|
||||||
|
diff --git a/build/rust/rust_bindgen_generator.gni b/build/rust/rust_bindgen_generator.gni
|
||||||
|
index c91916be93..6afbef2f31 100644
|
||||||
|
--- a/build/rust/rust_bindgen_generator.gni
|
||||||
|
+++ b/build/rust/rust_bindgen_generator.gni
|
||||||
|
@@ -151,7 +151,7 @@ template("rust_bindgen_generator") {
|
||||||
|
"--output",
|
||||||
|
rebase_path(output_file, root_build_dir),
|
||||||
|
"--libclang-path",
|
||||||
|
- rebase_path(_libclang_path, root_build_dir),
|
||||||
|
+ rebase_path(bindgen_libclang_path, root_build_dir),
|
||||||
|
]
|
||||||
|
|
||||||
|
if (_wrap_static_fns) {
|
||||||
|
@@ -172,7 +172,7 @@ template("rust_bindgen_generator") {
|
||||||
|
# point to.
|
||||||
|
args += [
|
||||||
|
"--ld-library-path",
|
||||||
|
- rebase_path(clang_base_path + "/lib", root_build_dir),
|
||||||
|
+ rebase_path(bindgen_libclang_path, root_build_dir),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -215,9 +215,14 @@ template("rust_bindgen_generator") {
|
||||||
|
# says the wrong thing. We point it to our clang's resource dir which will
|
||||||
|
# make it behave consistently with our other command line flags and allows
|
||||||
|
# system headers to be found.
|
||||||
|
- clang_resource_dir =
|
||||||
|
- rebase_path(clang_base_path + "/lib/clang/" + clang_version,
|
||||||
|
+ if (clang_base_path != default_clang_base_path && custom_toolchain == "//build/toolchain/linux/unbundle:default") {
|
||||||
|
+ clang_resource_dir =
|
||||||
|
+ rebase_path(clang_base_path + "/include", root_build_dir)
|
||||||
|
+ } else {
|
||||||
|
+ clang_resource_dir =
|
||||||
|
+ rebase_path(clang_base_path + "/lib/clang/" + clang_version,
|
||||||
|
root_build_dir)
|
||||||
|
+ }
|
||||||
|
args += [
|
||||||
|
"-resource-dir",
|
||||||
|
clang_resource_dir,
|
||||||
|
@@ -238,6 +243,15 @@ template("rust_bindgen_generator") {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (custom_toolchain == "//build/toolchain/linux/unbundle:default") {
|
||||||
|
+ # We need to pass the path to the libstdc++ headers to bindgen so that it
|
||||||
|
+ # can find them when parsing C++ headers.
|
||||||
|
+ args += [
|
||||||
|
+ "-I",
|
||||||
|
+ rebase_path(clang_base_path + "/include/", root_build_dir),
|
||||||
|
+ ]
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (is_win) {
|
||||||
|
# On Windows we fall back to using system headers from a sysroot from
|
||||||
|
# depot_tools. This is negotiated by python scripts and the result is
|
||||||
|
--
|
||||||
|
2.48.0
|
||||||
|
|
Loading…
Add table
Reference in a new issue