summaryrefslogtreecommitdiffstats
path: root/contrib/python/cryptography
diff options
context:
space:
mode:
authorYDBot <[email protected]>2026-07-09 01:08:35 +0000
committerYDBot <[email protected]>2026-07-09 01:08:35 +0000
commit4e76e5312e7d44e930036f0e0184d0ee21067432 (patch)
tree375636370d43d6f721984b09684a0b81dcda9a46 /contrib/python/cryptography
parent75e0007213d9471b8bea1892aec2c3ad96fc922f (diff)
parent0a6ad8975632e0d3260c7e66f6295e5f1ed38eb9 (diff)
Sync branches 260709-0106
Diffstat (limited to 'contrib/python/cryptography')
-rw-r--r--contrib/python/cryptography/next/rust/.yandex_meta/build.ym75
-rw-r--r--contrib/python/cryptography/next/rust/msan.cpp23
-rw-r--r--contrib/python/cryptography/next/rust/patches/msan.cpp23
-rw-r--r--contrib/python/cryptography/next/rust/ya.make7
4 files changed, 7 insertions, 121 deletions
diff --git a/contrib/python/cryptography/next/rust/.yandex_meta/build.ym b/contrib/python/cryptography/next/rust/.yandex_meta/build.ym
index 1a9f1137767..9500b46cce9 100644
--- a/contrib/python/cryptography/next/rust/.yandex_meta/build.ym
+++ b/contrib/python/cryptography/next/rust/.yandex_meta/build.ym
@@ -30,6 +30,10 @@ _openssl
{% block current_version %}41.0.6{% endblock %}
{% block current_url %}https://github.com/pyca/cryptography/archive/refs/tags/{{self.version().strip()}}.tar.gz{% endblock %}
+{% block msan_cc_extra_flags %}
+-I{{arcadia_root}} -I{{arcadia_root}}/contrib/libs/python/Include -I{{arcadia_root}}/contrib/libs/openssl/include
+{% endblock %}
+
{% block patch_source %}
{{super()}}
sed -e 's|cdylib|staticlib|' -i Cargo.toml
@@ -52,33 +56,6 @@ export RUSTFLAGS="${RUSTFLAGS:-} -Cembed-bitcode=no"
rm -rf docs vectors tests
cd src/rust
{{super()}}
-find ${BUILD} -name '*.a' -type f | while read l; do
- echo "_rust_eh_personality {{self.mod_name().strip()}}__rust_eh_personality" >> prog
- llvm-objcopy --redefine-syms=prog ${l}
- rm prog
-done
-
-{% for p in self.msan_platforms().strip().split('\n') %}
-export CC_{{p.replace('-', '_')}}=target-cc-msan
-{% endfor %}
-export RUSTFLAGS="${RUSTFLAGS:-} -Zsanitizer=memory -Zsanitizer-memory-track-origins=2 -Ctarget-feature=-crt-static -Cunsafe-allow-abi-mismatch=sanitizer -Ccodegen-units=1"
-
-{% for arch in self.msan_platforms().strip().split('\n') %}
-LD_PRELOAD=${BIN}/getrandom.so cargo {{self.cargo_flags().strip()}} build {{self.cargo_build_flags().strip()}} --release --target {{arch}} {{self.binary_type().strip()}} --target-dir ${BUILD}-msan \
- {% if self.cargo_target() %}
---package {{self.cargo_target().strip()}}
- {% endif %}
-{% endfor %}
-
-find ${BUILD}-msan -name '*.a' -type f | while read l; do
- llvm-nm --extern-only --defined-only -A ${l} | sed -e 's|.* ||' | grep -v 'PyInit_' | sort | while read s; do
- echo "${s} {{self.mod_name().strip()}}_${s}" >> prog
- done
- echo "_rust_eh_personality {{self.mod_name().strip()}}__rust_eh_personality" >> prog
- llvm-objcopy --redefine-syms=prog ${l}
- rm prog
-done
-
rm -r .git
# generate _openssl.c
@@ -90,50 +67,13 @@ OUT_DIR=${SRC}/autogen_cffi ${BIN}/python3 _cffi_src/build_openssl.py
{% block move_to_output %}
{{super()}}
-pushd ${BUILD}-msan
-{% if self.executable().strip() %}
-
-{% for arch in self.msan_platforms().strip().split('\n') %}
- mkdir -p ${OUTPUT}/target/{{arch}}-msan/release
- cp {{arch}}/release/{{self.executable().strip()}} ${OUTPUT}/target/{{arch}}-msan/release
-{% endfor %}
-
-{% else %}
-(find . -type f -name '*.a'; find . -type f -name '*.lib') | sed -e 's|./||' | grep -v '/deps/' | while read l; do
- d=$(dirname ${l})
- d_msan=$(echo "${d}" | sed 's|^\([^/]*\)|\1-msan|')
- o=${OUTPUT}/a/${d_msan}
- mkdir -p ${o}
- cp ${l} ${o}/
-done
-{% endif %}
-popd
-
cp ${SRC}/autogen_cffi/_openssl.c ${OUTPUT}/
-cp ${OUTPUT}/patches/msan.cpp ${OUTPUT}/
cat {{arcadia_root}}/contrib/libs/openssl/redef.h | awk '/#define/{print $2" "$3}' > ${OUTPUT}/openssl_redefines.txt
cat {{arcadia_root}}/contrib/libs/openssl/redef.h | awk '/#define/{print "_"$2" _"$3}' >> ${OUTPUT}/openssl_redefines.txt
find ${OUTPUT} -name '*.a' | xargs -L1 llvm-objcopy --redefine-syms=${OUTPUT}/openssl_redefines.txt
rm ${OUTPUT}/openssl_redefines.txt
-
-find ${OUTPUT} -name '*.a' -path "*msan*" | xargs -L1 llvm-objcopy --redefine-sym=__msan_set_alloca_origin_with_descr=__safe_msan_set_alloca_origin_with_descr
-find ${OUTPUT} -name '*.a' -path "*msan*" | xargs -L1 llvm-objcopy --redefine-sym=malloc=__safe_malloc
-{% endblock %}
-
-{% block prepare_yamake %}
-{{super()}}
-
-sed -i '/IF (FALSE)/r'<(cat <<EOF
-{% for p in self.msan_platforms().strip().split('\n') %}
-ELSEIF ({{p | ya_platform}} AND SANITIZER_TYPE == "memory")
- COPY_FILE(a/{{p}}-msan/release/libcryptography_rust.a libcryptography_rust.a)
- SRCS(msan.cpp)
- CFLAGS(-fsanitize-memory-track-origins=2)
-{% endfor %}
-EOF
-) ya.make
{% endblock %}
{% block ya_make %}
@@ -177,12 +117,7 @@ cat << EOF > ${BIN}/target-cc-aarch
exec ${BIN}/target-cc -nostdinc -target aarch64-unknown-linux-gnu -I{{arcadia_root}}/contrib/libs/musl/include -I{{arcadia_root}}/contrib/libs/musl/arch/aarch64 -I{{arcadia_root}}/contrib/libs/musl/arch/generic "\${@}"
EOF
-cat << EOF > ${BIN}/target-cc-msan
-#!/usr/bin/env sh
-exec ${CLANG} -DUSE_PYTHON3 -fsanitize=memory -I{{arcadia_root}} -I{{arcadia_root}}/contrib/libs/python/Include -I{{arcadia_root}}/contrib/libs/openssl/include -x c "\${@}"
-EOF
-
-chmod +x ${BIN}/musl-gcc ${BIN}/target-cc ${BIN}/target-cc-aarch ${BIN}/target-cc-msan
+chmod +x ${BIN}/musl-gcc ${BIN}/target-cc ${BIN}/target-cc-aarch
# macOS
diff --git a/contrib/python/cryptography/next/rust/msan.cpp b/contrib/python/cryptography/next/rust/msan.cpp
deleted file mode 100644
index c653958f4b0..00000000000
--- a/contrib/python/cryptography/next/rust/msan.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <stdint.h>
-#include <cstddef>
-
-typedef size_t uptr;
-typedef uint32_t u32;
-
-// defined in clang{XX}-rt/msan
-extern "C" void __msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr);
-extern "C" void __msan_unpoison(void *a, uptr size);
-
-
-extern "C" void __safe_msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr) {
- __msan_set_alloca_origin_with_descr(a, size, id_ptr, descr);
- __msan_unpoison(a, size);
-}
-
-
-extern "C" void* malloc(size_t size);
-extern "C" void *__safe_malloc(size_t size) {
- void* ret = malloc(size);
- __msan_unpoison(ret, size);
- return ret;
-}
diff --git a/contrib/python/cryptography/next/rust/patches/msan.cpp b/contrib/python/cryptography/next/rust/patches/msan.cpp
deleted file mode 100644
index c653958f4b0..00000000000
--- a/contrib/python/cryptography/next/rust/patches/msan.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <stdint.h>
-#include <cstddef>
-
-typedef size_t uptr;
-typedef uint32_t u32;
-
-// defined in clang{XX}-rt/msan
-extern "C" void __msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr);
-extern "C" void __msan_unpoison(void *a, uptr size);
-
-
-extern "C" void __safe_msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr) {
- __msan_set_alloca_origin_with_descr(a, size, id_ptr, descr);
- __msan_unpoison(a, size);
-}
-
-
-extern "C" void* malloc(size_t size);
-extern "C" void *__safe_malloc(size_t size) {
- void* ret = malloc(size);
- __msan_unpoison(ret, size);
- return ret;
-}
diff --git a/contrib/python/cryptography/next/rust/ya.make b/contrib/python/cryptography/next/rust/ya.make
index 607916aaab1..4f3d4b559a8 100644
--- a/contrib/python/cryptography/next/rust/ya.make
+++ b/contrib/python/cryptography/next/rust/ya.make
@@ -16,11 +16,8 @@ ORIGINAL_SOURCE(https://github.com/pyca/cryptography/archive/refs/tags/41.0.6.ta
IF (FALSE)
ELSEIF (OS_LINUX AND ARCH_X86_64 AND NOT MUSL AND SANITIZER_TYPE == "memory")
COPY_FILE(a/x86_64-unknown-linux-gnu-msan/release/libcryptography_rust.a libcryptography_rust.a)
- SRCS(
- msan.cpp
- )
- CFLAGS(
- -fsanitize-memory-track-origins=2
+ PEERDIR(
+ contrib/restricted/rust_msan
)
ELSEIF (OS_LINUX AND ARCH_X86_64 AND NOT MUSL)
COPY_FILE(a/x86_64-unknown-linux-gnu/release/libcryptography_rust.a libcryptography_rust.a)