From 77a90716a44d7d501cc9955c3ec3adf23ab30d19 Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Fri, 21 Apr 2023 18:20:49 +0800 Subject: [PATCH 1/6] Add loongarch64 support --- Lib/test/test_sysconfig.py | 2 +- stdlib/src/mmap.rs | 14 +++++++++++++- stdlib/src/socket.rs | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 2d662f94ab..2c04c62602 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -499,7 +499,7 @@ def test_triplet_in_ext_suffix(self): import platform, re machine = platform.machine() suffix = sysconfig.get_config_var('EXT_SUFFIX') - if re.match('(aarch64|arm|mips|ppc|powerpc|s390|sparc)', machine): + if re.match('(aarch64|arm|loongarch64|mips|ppc|powerpc|s390|sparc)', machine): self.assertTrue('linux' in suffix, suffix) if re.match('(i[3-6]86|x86_64)$', machine): if ctypes.sizeof(ctypes.c_char_p()) == 4: diff --git a/stdlib/src/mmap.rs b/stdlib/src/mmap.rs index ae0dbac3c6..d698e5663e 100644 --- a/stdlib/src/mmap.rs +++ b/stdlib/src/mmap.rs @@ -112,9 +112,21 @@ mod mmap { #[pyattr] use libc::{ MADV_DODUMP, MADV_DOFORK, MADV_DONTDUMP, MADV_DONTFORK, MADV_HUGEPAGE, MADV_HWPOISON, - MADV_MERGEABLE, MADV_NOHUGEPAGE, MADV_REMOVE, MADV_SOFT_OFFLINE, MADV_UNMERGEABLE, + MADV_MERGEABLE, MADV_NOHUGEPAGE, MADV_REMOVE, MADV_UNMERGEABLE, }; + #[cfg(any(target_os = "android", + all(target_os = "linux", any( + target_arch = "aarch64", + target_arch = "arm", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "s390x", + target_arch = "x86", + target_arch = "x86_64", + target_arch = "sparc64"))))] + use libc::MADV_SOFT_OFFLINE; + #[cfg(all(target_os = "linux", target_arch = "x86_64", target_env = "gnu"))] #[pyattr] use libc::{MAP_DENYWRITE, MAP_EXECUTABLE, MAP_POPULATE}; diff --git a/stdlib/src/socket.rs b/stdlib/src/socket.rs index 25d610a51b..8fb629c7d9 100644 --- a/stdlib/src/socket.rs +++ b/stdlib/src/socket.rs @@ -309,6 +309,7 @@ mod _socket { any( target_arch = "aarch64", target_arch = "i686", + target_arch = "loongarch64", target_arch = "mips", target_arch = "powerpc", target_arch = "powerpc64", @@ -359,6 +360,7 @@ mod _socket { any( target_arch = "aarch64", target_arch = "i686", + target_arch = "loongarch64", target_arch = "mips", target_arch = "powerpc", target_arch = "powerpc64", From fe8a72c2df49ca72489bfa59ea8ce5af95a125b9 Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Sun, 23 Apr 2023 08:32:32 +0800 Subject: [PATCH 2/6] It doesn't need to change test_triplet_in_ext_suffix --- Lib/test/test_sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 2c04c62602..2d662f94ab 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -499,7 +499,7 @@ def test_triplet_in_ext_suffix(self): import platform, re machine = platform.machine() suffix = sysconfig.get_config_var('EXT_SUFFIX') - if re.match('(aarch64|arm|loongarch64|mips|ppc|powerpc|s390|sparc)', machine): + if re.match('(aarch64|arm|mips|ppc|powerpc|s390|sparc)', machine): self.assertTrue('linux' in suffix, suffix) if re.match('(i[3-6]86|x86_64)$', machine): if ctypes.sizeof(ctypes.c_char_p()) == 4: From cb675f7b83ff6d22bd6b90c70bc8c0b2d9f15a4c Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Sun, 23 Apr 2023 10:54:59 +0800 Subject: [PATCH 3/6] Fix cargo fmt check --- stdlib/src/mmap.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/stdlib/src/mmap.rs b/stdlib/src/mmap.rs index d698e5663e..fea2f29a08 100644 --- a/stdlib/src/mmap.rs +++ b/stdlib/src/mmap.rs @@ -115,16 +115,22 @@ mod mmap { MADV_MERGEABLE, MADV_NOHUGEPAGE, MADV_REMOVE, MADV_UNMERGEABLE, }; - #[cfg(any(target_os = "android", - all(target_os = "linux", any( - target_arch = "aarch64", - target_arch = "arm", - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "s390x", - target_arch = "x86", - target_arch = "x86_64", - target_arch = "sparc64"))))] + #[cfg(any( + target_os = "android", + all( + target_os = "linux", + any( + target_arch = "aarch64", + target_arch = "arm", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "s390x", + target_arch = "x86", + target_arch = "x86_64", + target_arch = "sparc64" + ) + ) + ))] use libc::MADV_SOFT_OFFLINE; #[cfg(all(target_os = "linux", target_arch = "x86_64", target_env = "gnu"))] From f7bb7d7c9e4b929c7bbd4f85202f8fd441c1b0df Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Sun, 23 Apr 2023 11:15:14 +0800 Subject: [PATCH 4/6] Fix cargo clippy -Dwarnings unused import warning issue --- stdlib/src/mmap.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/src/mmap.rs b/stdlib/src/mmap.rs index fea2f29a08..35acfa3b3f 100644 --- a/stdlib/src/mmap.rs +++ b/stdlib/src/mmap.rs @@ -115,6 +115,7 @@ mod mmap { MADV_MERGEABLE, MADV_NOHUGEPAGE, MADV_REMOVE, MADV_UNMERGEABLE, }; + #[allow(unused_imports)] #[cfg(any( target_os = "android", all( From ee3e23a0d4c16ce4b7628c72839483a4c33de058 Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Sun, 23 Apr 2023 11:32:19 +0800 Subject: [PATCH 5/6] Place allow unused imports under cfg --- stdlib/src/mmap.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/src/mmap.rs b/stdlib/src/mmap.rs index 35acfa3b3f..cbdc860e95 100644 --- a/stdlib/src/mmap.rs +++ b/stdlib/src/mmap.rs @@ -115,7 +115,6 @@ mod mmap { MADV_MERGEABLE, MADV_NOHUGEPAGE, MADV_REMOVE, MADV_UNMERGEABLE, }; - #[allow(unused_imports)] #[cfg(any( target_os = "android", all( @@ -132,6 +131,7 @@ mod mmap { ) ) ))] + #[allow(unused_imports)] use libc::MADV_SOFT_OFFLINE; #[cfg(all(target_os = "linux", target_arch = "x86_64", target_env = "gnu"))] From c9f1709cc89a8cec36a1ddb8e702897ab4bc4409 Mon Sep 17 00:00:00 2001 From: ZHAI Xiang Date: Sun, 23 Apr 2023 11:44:01 +0800 Subject: [PATCH 6/6] Replace allow unused_imports with pyattr --- stdlib/src/mmap.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/src/mmap.rs b/stdlib/src/mmap.rs index cbdc860e95..d3207e60a1 100644 --- a/stdlib/src/mmap.rs +++ b/stdlib/src/mmap.rs @@ -131,7 +131,7 @@ mod mmap { ) ) ))] - #[allow(unused_imports)] + #[pyattr] use libc::MADV_SOFT_OFFLINE; #[cfg(all(target_os = "linux", target_arch = "x86_64", target_env = "gnu"))]