Merge branch 'master' into 'master'

A few more dynamically linked recipes

See merge request redox-os/cookbook!447
This commit is contained in:
Jeremy Soller 2025-02-10 14:42:22 +00:00
commit bff6ca4d68
9 changed files with 135 additions and 62 deletions

View File

@ -13,6 +13,7 @@ dependencies = [
"zlib",
]
script = """
DYNAMIC_INIT
export LIBSSH2_SYS_USE_PKG_CONFIG=1
export LIBZ_SYS_STATIC=1
export DEP_NGHTTP2_ROOT="${COOKBOOK_SYSROOT}"
@ -29,3 +30,14 @@ export DEP_Z_ROOT="${COOKBOOK_SYSROOT}"
mkdir -pv "${COOKBOOK_STAGE}/bin"
cp -v "target/${TARGET}/release/cargo" "${COOKBOOK_STAGE}/bin/cargo"
"""
[package]
shared-deps = [
"libgcc",
"curl",
"libssh2",
"nghttp2",
"openssl1",
"zlib",
]

View File

@ -0,0 +1,2 @@
set(CMAKE_C_COMPILER cc)
set(CMAKE_CXX_COMPILER c++)

View File

@ -0,0 +1,87 @@
[source]
git = "https://gitlab.redox-os.org/redox-os/llvm-project.git"
upstream = "https://github.com/rust-lang/llvm-project.git"
branch = "redox-2024-05-11"
[build]
template = "custom"
dependencies = [
"zlib"
]
script = """
DYNAMIC_INIT
cat > CMakeToolchain-x86_64.cmake <<EOF
set(CMAKE_SYSTEM_NAME UnixPaths)
set(CMAKE_FIND_ROOT_PATH ${COOKBOOK_SYSROOT})
set(CMAKE_C_COMPILER ${TARGET}-gcc)
set(CMAKE_CXX_COMPILER ${TARGET}-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
EOF
export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS"
COOKBOOK_MAKE="ninja"
COOKBOOK_CONFIGURE_FLAGS=(
-GNinja
-DCMAKE_TOOLCHAIN_FILE=./CMakeToolchain-x86_64.cmake
-DCMAKE_AR="$(which "${TARGET}-ar")"
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CROSSCOMPILING=True
-DCMAKE_CXX_FLAGS="--std=gnu++11"
-DCMAKE_RANLIB="$(which "${TARGET}-ranlib")"
-DCMAKE_INSTALL_PREFIX="/"
-DCMAKE_INSTALL_INCLUDEDIR="include"
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include"
-DLLVM_LINK_LLVM_DYLIB=On
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
-DLLVM_BUILD_BENCHMARKS=Off
-DLLVM_BUILD_EXAMPLES=Off
-DLLVM_BUILD_TESTS=Off
-DLLVM_BUILD_UTILS=Off
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
-DLLVM_ENABLE_LTO=Off
-DLLVM_ENABLE_RTTI=On
-DLLVM_ENABLE_THREADS=On
-DLLVM_ENABLE_ZSTD=Off
-DLLVM_INCLUDE_BENCHMARKS=Off
-DLLVM_INCLUDE_EXAMPLES=Off
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_INCLUDE_UTILS=Off
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
-DLLVM_TARGETS_TO_BUILD=X86 # TODO: get from TARGET
-DLLVM_TOOL_LLVM_COV_BUILD=Off
-DLLVM_TOOL_LLVM_LTO_BUILD=Off
-DLLVM_TOOL_LLVM_LTO2_BUILD=Off
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off
-DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off
-DLLVM_TOOL_LLVM_XRAY_BUILD=Off
-DLLVM_TOOL_LLI_BUILD=Off
-DLLVM_TOOL_LTO_BUILD=Off
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DUNIX=1
-DLLVM_ENABLE_PROJECTS="llvm"
-Wno-dev
"${COOKBOOK_SOURCE}/llvm"
)
set -x
cmake "${COOKBOOK_CONFIGURE_FLAGS[@]}"
ninja -j"${COOKBOOK_MAKE_JOBS}"
DESTDIR="${COOKBOOK_STAGE}" ninja install -j"${COOKBOOK_MAKE_JOBS}"
mv -vT "${COOKBOOK_STAGE}"/usr/include "${COOKBOOK_STAGE}/include"
mv -vT "${COOKBOOK_STAGE}"/usr/share "${COOKBOOK_STAGE}/share"
rmdir -v "${COOKBOOK_STAGE}"/usr
set +x
"""
[package]
dependencies = [
"zlib"
]

View File

@ -1,6 +1,6 @@
[llvm]
download-ci-llvm = false
static-libstdcpp = true
static-libstdcpp = false
[build]
host = ["x86_64-unknown-redox"]
@ -26,4 +26,4 @@ ar = "x86_64-unknown-redox-ar"
linker = "x86_64-unknown-redox-gcc"
# Nasty path, please fix
llvm-config = "../../../../bin/x86_64-unknown-redox-llvm-config"
crt-static = true
crt-static = false

View File

@ -1,6 +1,6 @@
GIT=https://gitlab.redox-os.org/redox-os/rust.git
BRANCH=redox-2024-05-11
BUILD_DEPENDS=(llvm18)
BUILD_DEPENDS=(llvm18-shared zlib libgcc)
DEPENDS="gcc13 cargo"
PREPARE_COPY=0
@ -11,6 +11,7 @@ function recipe_version {
function recipe_build {
unset AR AS CC CXX LD NM OBJCOPY OBJDUMP RANLIB READELF STRIP
export MAGIC_EXTRA_RUSTFLAGS="-C link-args=-lz"
python3 "${COOKBOOK_SOURCE}/x.py" install --config "${COOKBOOK_RECIPE}/config.toml" --jobs $(nproc) --incremental
skip=1
}

View File

@ -1,10 +1,22 @@
[source]
tar = "https://www.libssh2.org/download/libssh2-1.10.0.tar.gz"
blake3 = "2447216ce82c1d22301456bb02f60dfb6688f1461417b90f900c099a87f1292f"
patches = []
script = """
DYNAMIC_INIT
autotools_recursive_regenerate
"""
[build]
template = "configure"
dependencies = [
"openssl1"
template = "custom"
dependencies = ["openssl1"]
script = """
DYNAMIC_INIT
cookbook_configure
"""
[package]
shared-deps = [
"libgcc",
"openssl1"
]

View File

@ -1,50 +0,0 @@
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 45e2fc7a..2d7f7db3 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -175,28 +175,32 @@ sub vms_info {
},
-### Redox
- "redox-aarch64" => {
- inherit_from => [ "BASE_common", asm("aarch64_asm") ],
+### Redox configurations
+ "redox-common" => {
+ inherit_from => [ "BASE_common" ],
cc => "gcc",
- cflags => "-DL_ENDIAN -DOSSL_SSIZE_MAX=LONG_MAX -DNO_SYSLOG -O3 -static -Wall",
+ thread_scheme => "(unknown)",
+ dso_scheme => "dlfcn",
+ shared_target => "linux-shared",
+ shared_cflag => "-fPIC",
+ shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
+ shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ },
+ "redox-aarch64" => {
+ inherit_from => [ "redox-common", asm("aarch64_asm") ],
+ cflags => "-DL_ENDIAN -DOSSL_SSIZE_MAX=LONG_MAX -DNO_SYSLOG -O3 -Wall",
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
- thread_scheme => "(unknown)",
},
"redox-i686" => {
- inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
- cc => "gcc",
- cflags => "-DL_ENDIAN -DNO_SYSLOG -O3 -static -Wall",
+ inherit_from => [ "redox-common", asm("x86_elf_asm") ],
+ cflags => "-DL_ENDIAN -DNO_SYSLOG -O3 -Wall",
bn_ops => "BN_LLONG",
- thread_scheme => "(unknown)",
},
"redox-x86_64" => {
- inherit_from => [ "BASE_common", asm("x86_64_asm") ],
- cc => "gcc",
- cflags => "-DL_ENDIAN -DOSSL_SSIZE_MAX=LONG_MAX -DNO_SYSLOG -O3 -static -Wall",
+ inherit_from => [ "redox-common", asm("x86_64_asm") ],
+ cflags => "-DL_ENDIAN -DOSSL_SSIZE_MAX=LONG_MAX -DNO_SYSLOG -O3 -Wall",
bn_ops => "SIXTY_FOUR_BIT_LONG",
- thread_scheme => "(unknown)",
},
#### Solaris configurations

View File

@ -1,14 +1,16 @@
[source]
tar = "https://www.zlib.net/fossils/zlib-1.3.tar.gz"
blake3 = "ec1abc6f672a7a6ee6f49ba544cc9529f73121b478310473be44fee22a140ebf"
[build]
template = "custom"
script = """
DYNAMIC_INIT
# See https://stackoverflow.com/questions/21396988/zlib-build-not-configuring-properly-with-cross-compiler-ignores-ar.
CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" --prefix=""
"${COOKBOOK_MAKE}" -j "$(nproc)"
"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}"
DYNAMIC_INIT
# See https://stackoverflow.com/questions/21396988/zlib-build-not-configuring-properly-with-cross-compiler-ignores-ar.
CHOST="${TARGET}" "${COOKBOOK_CONFIGURE}" --prefix=""
"${COOKBOOK_MAKE}" -j "$(nproc)"
"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}"
patchelf --set-soname 'libz.so.1.3' "${COOKBOOK_STAGE}/lib/libz.so.1.3"
"""
[package]

View File

@ -5,6 +5,7 @@ branch = "master"
[build]
template = "custom"
script = """
DYNAMIC_INIT
cookbook_cargo --no-default-features
mkdir -pv "${COOKBOOK_STAGE}/ui/apps"
cp -v "${COOKBOOK_RECIPE}/manifest" "${COOKBOOK_STAGE}/ui/apps/10_cosmic-term"
@ -17,3 +18,9 @@ cp -v "${COOKBOOK_SOURCE}/res/${APPID}.metainfo.xml" "${COOKBOOK_STAGE}/usr/shar
mkdir -pv "${COOKBOOK_STAGE}/usr/share/icons/"
cp -rv "${COOKBOOK_SOURCE}/res/icons/hicolor/" "${COOKBOOK_STAGE}/usr/share/icons/"
"""
[package]
shared-deps = [
"libgcc"
]