mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-04 07:40:42 +00:00
Backed out 2 changesets (bug 1617794) for Gecko Decision Task bustage. CLOSED TREE
Backed out changeset e6cdc99bb877 (bug 1617794) Backed out changeset 71cfd922f86a (bug 1617794)
This commit is contained in:
parent
96d98f75db
commit
2e07e8ca83
@ -20,9 +20,6 @@ members = [
|
||||
# Excluded crates may be built as dependencies, but won't be considered members
|
||||
# of the workspace and their dev-dependencies won't be included.
|
||||
exclude = [
|
||||
# Excluded because it's for a toolchain task
|
||||
"build/liblowercase",
|
||||
|
||||
# Exclude third-party code vendored into mozilla-central.
|
||||
"servo",
|
||||
"third_party/rust",
|
||||
|
@ -1,37 +0,0 @@
|
||||
APIKEYDIR=/builds
|
||||
|
||||
. "$topsrcdir/build/mozconfig.win-common"
|
||||
. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
|
||||
. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
|
||||
|
||||
ac_add_options --with-branding=browser/branding/nightly
|
||||
|
||||
# Configure expects executables for check_prog, so set the relevant files
|
||||
# as executable on the first evaluation of the mozconfig where they exist.
|
||||
if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/x64/cl.exe" ]; then
|
||||
find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
|
||||
fi
|
||||
export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.01/makensis.exe"
|
||||
if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
|
||||
chmod +x "${MAKENSISU}"
|
||||
fi
|
||||
export MAKECAB="${TOOLTOOL_DIR}/makecab.exe"
|
||||
if [ -f "${MAKECAB}" ]; then
|
||||
chmod +x "${MAKECAB}"
|
||||
fi
|
||||
export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
|
||||
if [ -f "${UPX}" ]; then
|
||||
chmod +x "${UPX}"
|
||||
fi
|
||||
CLANG_CL_EXE_DIR="${MOZ_FETCHES_DIR}/clang-cl/clang/bin"
|
||||
if [ -d "${CLANG_CL_EXE_DIR}" ]; then
|
||||
chmod +x "${CLANG_CL_EXE_DIR}/clang-cl.exe"
|
||||
fi
|
||||
export WINE=${MOZ_FETCHES_DIR}/wine/bin/wine64
|
||||
export RC=rc.exe
|
||||
export MIDL=midl.exe
|
||||
mk_add_options "export PATH=${TOOLTOOL_DIR}/vs2017_15.8.4/VC/bin/Hostx64/x64:${MOZ_FETCHES_DIR}/nsis-3.01:${CLANG_CL_EXE_DIR}:${PATH}"
|
||||
|
||||
unset VC_PATH
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common.override"
|
237
build/liblowercase/Cargo.lock
generated
237
build/liblowercase/Cargo.lock
generated
@ -1,237 +0,0 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "c2-chacha"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.1.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.67"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
|
||||
|
||||
[[package]]
|
||||
name = "lowercase"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"once_cell",
|
||||
"paste",
|
||||
"path-dedot",
|
||||
"tempfile",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"
|
||||
|
||||
[[package]]
|
||||
name = "paste"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "63e1afe738d71b1ebab5f1207c055054015427dbfc7bbe9ee1266894156ec046"
|
||||
dependencies = [
|
||||
"paste-impl",
|
||||
"proc-macro-hack",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "paste-impl"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d4dc4a7f6f743211c5aab239640a65091535d97d43d92a52bca435a640892bb"
|
||||
dependencies = [
|
||||
"proc-macro-hack",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "path-dedot"
|
||||
version = "1.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4cf32f6a3b529384739d9c11c230ad760aeb553061e7834f58de63a7c507f24f"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-hack"
|
||||
version = "0.5.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435"
|
||||
dependencies = [
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.7.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core",
|
||||
"rand_hc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
|
||||
dependencies = [
|
||||
"c2-chacha",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_hc"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
|
||||
dependencies = [
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.1.56"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
|
||||
|
||||
[[package]]
|
||||
name = "remove_dir_all"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"rand",
|
||||
"redox_syscall",
|
||||
"remove_dir_all",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.9.0+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
@ -1,22 +0,0 @@
|
||||
[package]
|
||||
name = "lowercase"
|
||||
version = "0.1.0"
|
||||
authors = ["Mike Hommey <mhommey@glandium.org>"]
|
||||
edition = "2018"
|
||||
license = "MPL-2.0"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
path = "lib.rs"
|
||||
|
||||
[dependencies]
|
||||
libc = "0.2"
|
||||
once_cell = "1"
|
||||
paste = "0.1"
|
||||
path-dedot = "1"
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3"
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
@ -1,246 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/* LD_PRELOAD library that intercepts some libc functions and lowercases
|
||||
* paths under a given set of directories before calling the real libc
|
||||
* functions.
|
||||
*
|
||||
* The set of directories is defined with the LOWERCASE_DIRS environment
|
||||
* variable, separated with a `:`.
|
||||
*
|
||||
* Only the parts of the directories below the LOWERCASE_DIRS directories
|
||||
* are lowercased.
|
||||
*
|
||||
* For example, with LOWERCASE_DIRS=/Foo:/Bar:
|
||||
* `/home/QuX` is unchanged.
|
||||
* `/Foo/QuX` becomes `/Foo/qux`.
|
||||
* `/foo/QuX` is unchanged.
|
||||
* `/Bar/QuX` becomes `/Bar/qux`.
|
||||
* etc.
|
||||
*
|
||||
* This is, by no means, supposed to be a generic LD_PRELOAD library. It
|
||||
* only intercepts the libc functions that matter in order to build Firefox.
|
||||
*/
|
||||
|
||||
use std::borrow::Cow;
|
||||
use std::env::{self, current_dir};
|
||||
use std::ffi::{c_void, CStr, CString, OsStr, OsString};
|
||||
use std::mem::transmute;
|
||||
use std::os::raw::{c_char, c_int};
|
||||
use std::os::unix::ffi::{OsStrExt, OsStringExt};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::ptr::null;
|
||||
|
||||
use once_cell::sync::Lazy;
|
||||
use path_dedot::ParseDot;
|
||||
|
||||
#[cfg(not(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu")))]
|
||||
compile_error!("Platform is not supported");
|
||||
|
||||
static LOWERCASE_DIRS: Lazy<Vec<PathBuf>> = Lazy::new(|| match env::var_os("LOWERCASE_DIRS") {
|
||||
None => Vec::new(),
|
||||
Some(value) => value
|
||||
.as_bytes()
|
||||
.split(|&c| c == b':')
|
||||
.map(|p| canonicalize_path(Path::new(OsStr::from_bytes(p))).into_owned())
|
||||
.collect(),
|
||||
});
|
||||
|
||||
fn canonicalize_path(path: &Path) -> Cow<Path> {
|
||||
let path = if path.is_absolute() {
|
||||
Cow::Borrowed(path)
|
||||
} else {
|
||||
match current_dir() {
|
||||
Ok(cwd) => Cow::Owned(cwd.join(path)),
|
||||
Err(_) => Cow::Borrowed(path),
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: avoid allocation when the path doesn't need .. / . removals.
|
||||
Cow::Owned(path.parse_dot().unwrap())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_canonicalize_path() {
|
||||
use std::env::set_current_dir;
|
||||
use std::iter::repeat;
|
||||
use tempfile::tempdir;
|
||||
|
||||
fn do_test(curdir: &Path) {
|
||||
let foobarbaz = curdir.join("foo/bar/baz");
|
||||
|
||||
assert_eq!(foobarbaz, canonicalize_path(Path::new("foo/bar/baz")));
|
||||
assert_eq!(foobarbaz, canonicalize_path(Path::new("./foo/bar/baz")));
|
||||
assert_eq!(foobarbaz, canonicalize_path(Path::new("foo/./bar/baz")));
|
||||
assert_eq!(foobarbaz, canonicalize_path(Path::new("foo/././bar/baz")));
|
||||
assert_eq!(
|
||||
foobarbaz,
|
||||
canonicalize_path(Path::new("foo/././bar/qux/../baz"))
|
||||
);
|
||||
assert_eq!(
|
||||
foobarbaz,
|
||||
canonicalize_path(Path::new("foo/./bar/../qux/../bar/baz"))
|
||||
);
|
||||
assert_eq!(
|
||||
foobarbaz,
|
||||
canonicalize_path(Path::new("foo/bar/./../../foo/bar/baz"))
|
||||
);
|
||||
|
||||
let depth = curdir.components().count();
|
||||
for depth in depth..=depth + 1 {
|
||||
let path = repeat("..").take(depth).collect::<Vec<_>>();
|
||||
let mut path = path.join("/");
|
||||
path.push_str("/foo/bar/baz");
|
||||
|
||||
assert_eq!(
|
||||
Path::new("/foo/bar/baz"),
|
||||
canonicalize_path(Path::new(&path))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
let orig_curdir = current_dir().unwrap();
|
||||
|
||||
do_test(&orig_curdir);
|
||||
|
||||
let tempdir = tempdir().unwrap();
|
||||
set_current_dir(&tempdir).unwrap();
|
||||
|
||||
do_test(tempdir.path());
|
||||
|
||||
set_current_dir(orig_curdir).unwrap();
|
||||
}
|
||||
|
||||
fn normalize_path(path: &CStr) -> Cow<CStr> {
|
||||
let orig_path = path;
|
||||
let path = Path::new(OsStr::from_bytes(orig_path.to_bytes()));
|
||||
match normalize_path_for_dirs(&path, &LOWERCASE_DIRS) {
|
||||
Cow::Borrowed(_) => Cow::Borrowed(orig_path),
|
||||
Cow::Owned(p) => Cow::Owned(CString::new(p.into_os_string().into_vec()).unwrap()),
|
||||
}
|
||||
}
|
||||
|
||||
fn normalize_path_for_dirs<'a>(path: &'a Path, dirs: &[PathBuf]) -> Cow<'a, Path> {
|
||||
let orig_path = path;
|
||||
let path = canonicalize_path(path);
|
||||
|
||||
for lowercase_dir in dirs.iter() {
|
||||
if path.starts_with(lowercase_dir) {
|
||||
// TODO: avoid allocation when the string doesn't actually need
|
||||
// modification.
|
||||
let mut lowercased_path = path.into_owned().into_os_string().into_vec();
|
||||
lowercased_path[lowercase_dir.as_os_str().as_bytes().len()..].make_ascii_lowercase();
|
||||
return Cow::Owned(OsString::from_vec(lowercased_path).into());
|
||||
}
|
||||
}
|
||||
|
||||
Cow::Borrowed(orig_path)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_normalize_path() {
|
||||
let paths = vec![
|
||||
Path::new("/Foo/Bar").to_owned(),
|
||||
Path::new("/Qux").to_owned(),
|
||||
current_dir().unwrap().join("Fuga"),
|
||||
];
|
||||
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/foo/bar/Baz"), &paths),
|
||||
Path::new("/foo/bar/Baz")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Foo/Bar/Baz"), &paths),
|
||||
Path::new("/Foo/Bar/baz")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Foo/BarBaz"), &paths),
|
||||
Path::new("/Foo/BarBaz")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Foo/Bar"), &paths),
|
||||
Path::new("/Foo/Bar")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Foo/Bar/Baz/../Qux"), &paths),
|
||||
Path::new("/Foo/Bar/qux")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Foo/Bar/Baz/../../Qux"), &paths),
|
||||
Path::new("/Foo/Bar/Baz/../../Qux")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/Qux/Foo/Bar/Baz"), &paths),
|
||||
Path::new("/Qux/foo/bar/baz")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("/foo/../Qux/Baz"), &paths),
|
||||
Path::new("/Qux/baz")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("fuga/Foo/Bar"), &paths),
|
||||
Path::new("fuga/Foo/Bar")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("Fuga/Foo/Bar"), &paths),
|
||||
current_dir().unwrap().join("Fuga/foo/bar")
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_path_for_dirs(Path::new("Fuga/../Foo/Bar"), &paths),
|
||||
Path::new("Fuga/../Foo/Bar")
|
||||
);
|
||||
}
|
||||
|
||||
macro_rules! wrappers {
|
||||
($(fn $name:ident($( $a:ident : $t:ty ),*) $( -> $ret:ty)?;)*) => {
|
||||
$(
|
||||
paste::item! {
|
||||
#[allow(non_upper_case_globals)]
|
||||
static [< real $name >]: Lazy<fn($($t),*) $( -> $ret)?> =
|
||||
Lazy::new(|| unsafe {
|
||||
transmute(libc::dlsym(
|
||||
libc::RTLD_NEXT,
|
||||
concat!(stringify!($name), "\0").as_ptr() as _
|
||||
))
|
||||
});
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn $name($($a : $t),*) $(-> $ret)? {
|
||||
$( wrappers!(@normalize ($a: $t)); )*
|
||||
[< real $name >]($($a),*)
|
||||
}
|
||||
}
|
||||
)*
|
||||
};
|
||||
(@normalize ($a:ident: *const c_char)) => {
|
||||
let $a = if $a.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(normalize_path(CStr::from_ptr($a)))
|
||||
};
|
||||
let $a = $a.as_ref().map(|p| p.as_ptr()).unwrap_or(null());
|
||||
};
|
||||
(@normalize ($a:ident: $t:ty)) => {}
|
||||
}
|
||||
|
||||
// Note: actual definitions for e.g. fopen/fopen64 would be using c_char
|
||||
// instead of c_void for mode, but the wrappers macro treats all `*const c_char`s
|
||||
// as "to maybe be lowercased".
|
||||
wrappers! {
|
||||
fn open(path: *const c_char, flags: c_int, mode: libc::mode_t) -> c_int;
|
||||
fn open64(path: *const c_char, flags: c_int, mode: libc::mode_t) -> c_int;
|
||||
fn fopen(path: *const c_char, mode: *const c_void) -> *mut libc::FILE;
|
||||
fn fopen64(path: *const c_char, mode: *const c_void) -> *mut libc::FILE;
|
||||
|
||||
fn opendir(path: *const c_char) -> *mut libc::DIR;
|
||||
|
||||
fn __xstat(ver: c_int, path: *const c_char, buf: *mut libc::stat) -> c_int;
|
||||
fn __xstat64(ver: c_int, path: *const c_char, buf: *mut libc::stat64) -> c_int;
|
||||
|
||||
fn __lxstat(ver: c_int, path: *const c_char, buf: *mut libc::stat) -> c_int;
|
||||
fn __lxstat64(ver: c_int, path: *const c_char, buf: *mut libc::stat64) -> c_int;
|
||||
|
||||
fn access(path: *const c_char, mode: c_int) -> c_int;
|
||||
|
||||
fn mkdir(path: *const c_char, mode: libc::mode_t) -> c_int;
|
||||
}
|
@ -13,14 +13,7 @@ export CXX=clang-cl
|
||||
export ENABLE_CLANG_PLUGIN=1
|
||||
|
||||
if [ -n "$UPLOAD_PATH" ]; then
|
||||
case "$(uname -s)" in
|
||||
MINGW*)
|
||||
DIAGNOSTICS_DIR="$(cmd.exe //e:on //c if not exist ${UPLOAD_PATH} mkdir ${UPLOAD_PATH} && cd ${UPLOAD_PATH} && pwd)"
|
||||
;;
|
||||
*)
|
||||
DIAGNOSTICS_DIR="${UPLOAD_PATH}"
|
||||
;;
|
||||
esac
|
||||
export CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${DIAGNOSTICS_DIR}"
|
||||
export CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${DIAGNOSTICS_DIR}"
|
||||
fi
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
|
||||
export MAKECAB=$TOOLTOOL_DIR/makecab.exe
|
||||
export DUMP_SYMS="${MOZ_FETCHES_DIR}/dump_syms/dump_syms"
|
||||
export DUMP_SYMS="${MOZ_FETCHES_DIR}/dump_syms/dump_syms.exe"
|
||||
|
||||
if [ -z "$USE_ARTIFACT" ]; then
|
||||
if [ -n "$TASKCLUSTER_PGO_PROFILE_USE" ]; then
|
||||
|
@ -1,3 +0,0 @@
|
||||
[include]
|
||||
path:build/liblowercase/
|
||||
path:taskcluster/scripts/misc/build-liblowercase.sh
|
@ -4,7 +4,7 @@ if [ -z "${VSPATH}" ]; then
|
||||
fi
|
||||
|
||||
if [ -d "${VSPATH}" ]; then
|
||||
VSWINPATH="$(cd ${VSPATH} && (pwd -W 2>/dev/null || pwd))"
|
||||
VSWINPATH="$(cd ${VSPATH} && pwd -W)"
|
||||
|
||||
export WINDOWSSDKDIR="${VSWINPATH}/SDK"
|
||||
export WIN32_REDIST_DIR=${VSPATH}/VC/redist/x64/Microsoft.VC141.CRT
|
||||
|
@ -275,64 +275,6 @@ win64-plain/opt:
|
||||
- win64-node
|
||||
- win64-cbindgen
|
||||
|
||||
win64-cross/opt:
|
||||
description: "Win64 Opt Cross"
|
||||
index:
|
||||
product: firefox
|
||||
job-name: win64-cross-opt
|
||||
treeherder:
|
||||
platform: windows2012-64/opt
|
||||
symbol: Bx
|
||||
tier: 2
|
||||
worker-type: b-linux
|
||||
worker:
|
||||
docker-image: {in-tree: debian9-amd64-build}
|
||||
max-run-time: 7200
|
||||
env:
|
||||
PERFHERDER_EXTRA_OPTIONS: cross
|
||||
TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
|
||||
run:
|
||||
actions: [get-secrets, build]
|
||||
options: [append-env-variables-from-configs]
|
||||
script: mozharness/scripts/fx_desktop_build.py
|
||||
secrets: true
|
||||
config:
|
||||
- builds/releng_base_firefox.py
|
||||
builds/releng_base_linux_64_builds.py
|
||||
extra-config:
|
||||
disable_package_metrics: true
|
||||
mozconfig_platform: win64
|
||||
mozconfig_variant: cross
|
||||
env:
|
||||
# Setting LD_PRELOAD at the worker level would set it during
|
||||
# fetch-content, which can fail randomly when a tar/unzip subprocess
|
||||
# of fetch-content starts while the library is being extracted by
|
||||
# another.
|
||||
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
|
||||
LOWERCASE_DIRS: "/builds/worker/workspace/build/src/vs2017_15.8.4/"
|
||||
mozconfig-variant: cross
|
||||
run-on-projects: ['try']
|
||||
dependencies:
|
||||
win64-clang-cl: toolchain-win64-clang-cl
|
||||
fetches:
|
||||
toolchain:
|
||||
- linux64-binutils
|
||||
- linux64-clang
|
||||
- linux64-rust-cross-1.41
|
||||
- linux64-nasm
|
||||
- linux64-node
|
||||
- linux64-cbindgen
|
||||
- linux64-dump-syms
|
||||
- linux64-wine
|
||||
- linux64-liblowercase
|
||||
fetch:
|
||||
- nsis-3.01-win
|
||||
- upx-3.95-win
|
||||
win64-clang-cl:
|
||||
- artifact: clang.tar.bz2
|
||||
extract: true
|
||||
dest: clang-cl
|
||||
|
||||
win32-shippable/opt:
|
||||
description: "Win32 Opt Shippable"
|
||||
use-pgo: true
|
||||
|
@ -225,17 +225,3 @@ linux64-lucetc:
|
||||
- linux64-binutils
|
||||
- linux64-clang
|
||||
- linux64-rust
|
||||
|
||||
linux64-liblowercase:
|
||||
description: "liblowercase"
|
||||
treeherder:
|
||||
symbol: TL(lc)
|
||||
run:
|
||||
script: build-liblowercase.sh
|
||||
sparse-profile: liblowercase
|
||||
toolchain-artifact: public/build/liblowercase.tar.xz
|
||||
resources:
|
||||
- build/liblowercase/
|
||||
fetches:
|
||||
toolchain:
|
||||
- linux64-rust-1.39
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -x -e -v
|
||||
|
||||
: WORKSPACE ${WORKSPACE:=/builds/worker/workspace}
|
||||
|
||||
# This script is for building liblowercase
|
||||
|
||||
PATH="$MOZ_FETCHES_DIR/rustc/bin:$PATH"
|
||||
|
||||
cd $GECKO_PATH/build/liblowercase
|
||||
|
||||
cargo build --verbose --release --target-dir $WORKSPACE/obj
|
||||
|
||||
mkdir $WORKSPACE/liblowercase
|
||||
cp $WORKSPACE/obj/release/liblowercase.so $WORKSPACE/liblowercase
|
||||
strip $WORKSPACE/liblowercase/liblowercase.so
|
||||
tar -C $WORKSPACE -acf $WORKSPACE/liblowercase.tar.xz liblowercase
|
||||
mkdir -p $UPLOAD_DIR
|
||||
cp $WORKSPACE/liblowercase.tar.xz $UPLOAD_DIR
|
Loading…
x
Reference in New Issue
Block a user