diff --git a/third_party/apply-patches.sh b/third_party/apply-patches.sh deleted file mode 100755 index 91eb6508..00000000 --- a/third_party/apply-patches.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -e - -function apply_cpuinfo_patches() { - if [ -d "./cpuinfo" ]; then - cp ./patches/cpuinfo-multi-commits.patch cpuinfo/ - pushd cpuinfo >/dev/null - git config user.name "$1" - git config user.email "$2" - git am cpuinfo-multi-commits.patch - rm cpuinfo-multi-commits.patch - popd >/dev/null - else - echo "cpuinfo not exist, can not apply patches." - echo "pls run: 'git submodule update --init cpuinfo' first." - exit -1 - fi -} diff --git a/third_party/patches/cpuinfo-multi-commits.patch b/third_party/patches/cpuinfo-multi-commits.patch deleted file mode 100644 index f522c9c2..00000000 --- a/third_party/patches/cpuinfo-multi-commits.patch +++ /dev/null @@ -1,343 +0,0 @@ -From 20b885be9c76232f4d25ae9fe6c685861736a747 Mon Sep 17 00:00:00 2001 -From: liyuzhong -Date: Thu, 9 Jul 2020 14:59:55 +0800 -Subject: [PATCH 1/2] fix(arm/linux): fix unused var for cross compile error - ---- - src/arm/linux/chipset.c | 1 + - src/arm/linux/cpuinfo.c | 1 + - src/linux/processors.c | 1 + - 3 files changed, 3 insertions(+) - -diff --git a/src/arm/linux/chipset.c b/src/arm/linux/chipset.c -index e36283c..8631f64 100644 ---- a/src/arm/linux/chipset.c -+++ b/src/arm/linux/chipset.c -@@ -2402,6 +2402,7 @@ struct cpuinfo_arm_chipset cpuinfo_arm_linux_decode_chipset_from_proc_cpuinfo_ha - - #endif - -+ (void)max_cpu_freq_max; - /* Check Telechips TCC signature */ - if (match_tcc(hardware, hardware_end, &chipset)) { - cpuinfo_log_debug( -diff --git a/src/arm/linux/cpuinfo.c b/src/arm/linux/cpuinfo.c -index 90e1631..ad89729 100644 ---- a/src/arm/linux/cpuinfo.c -+++ b/src/arm/linux/cpuinfo.c -@@ -671,6 +671,7 @@ static bool parse_line( - if (line_start == line_end) { - return true; - } -+ (void)line_number; - - /* Search for ':' on the line. */ - const char* separator = line_start; -diff --git a/src/linux/processors.c b/src/linux/processors.c -index aedba74..4904e2a 100644 ---- a/src/linux/processors.c -+++ b/src/linux/processors.c -@@ -217,6 +217,7 @@ bool cpuinfo_linux_get_processor_package_id(uint32_t processor, uint32_t package - - static bool max_processor_number_parser(uint32_t processor_list_start, uint32_t processor_list_end, void* context) { - uint32_t* processor_number_ptr = (uint32_t*) context; -+ (void)processor_list_start; - const uint32_t processor_list_last = processor_list_end - 1; - if (*processor_number_ptr < processor_list_last) { - *processor_number_ptr = processor_list_last; --- -2.17.1 - - -From a0f9f754b804e129f6e11f87047f3d586607a4ef Mon Sep 17 00:00:00 2001 -From: chenqiyou -Date: Fri, 16 Jul 2021 19:10:40 +0800 -Subject: [PATCH 2/2] fix(cpuinfo): fix cpuinfo build and sensitive word - ---- - src/arm/linux/chipset.c | 32 ++++++++++++++++++++++++++++++-- - src/arm/linux/clusters.c | 4 ++-- - src/arm/linux/hwcap.c | 7 ++++--- - src/arm/linux/init.c | 4 +++- - src/linux/processors.c | 5 +++++ - 5 files changed, 44 insertions(+), 8 deletions(-) - -diff --git a/src/arm/linux/chipset.c b/src/arm/linux/chipset.c -index 8631f64..6a94afe 100644 ---- a/src/arm/linux/chipset.c -+++ b/src/arm/linux/chipset.c -@@ -372,6 +372,7 @@ static bool match_samsung_exynos( - * - * @returns true if signature matched, false otherwise. - */ -+#if __ANDROID__ - static bool match_exynos( - const char* start, const char* end, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -413,6 +414,7 @@ static bool match_exynos( - return true; - } - -+#endif - /** - * Tries to match /universal\d{4}$/ signature for Samsung Exynos chipsets. - * If match successful, extracts model information into \p chipset argument. -@@ -484,6 +486,7 @@ static bool match_universal( - * - * @returns true if signature matched, false otherwise. - */ -+#if CPUINFO_ARCH_ARM - static bool match_and_parse_smdk( - const char* start, const char* end, uint32_t cores, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -537,6 +540,7 @@ static bool match_and_parse_smdk( - return true; - } - -+#endif - /** - * Tries to match /MTK?\d{4}[A-Z/]*$/ signature for MediaTek MT chipsets. - * If match successful, extracts model information into \p chipset argument. -@@ -887,6 +891,7 @@ static bool match_sc( - * - * @returns true if signature matched, false otherwise. - */ -+#if __ANDROID__ && CPUINFO_ARCH_ARM - static bool match_lc( - const char* start, const char* end, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -943,6 +948,7 @@ static bool match_lc( - return true; - } - -+#endif - /** - * Tries to match /PXA(\d{3,4}|1L88)$/ signature for Marvell PXA chipsets. - * If match successful, extracts model information into \p chipset argument. -@@ -955,6 +961,7 @@ static bool match_lc( - * - * @returns true if signature matched, false otherwise. - */ -+#if CPUINFO_ARCH_ARM - static bool match_pxa( - const char* start, const char* end, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -1011,6 +1018,7 @@ write_chipset: - return true; - } - -+#endif - /** - * Tries to match /BCM\d{4}$/ signature for Broadcom BCM chipsets. - * If match successful, extracts model information into \p chipset argument. -@@ -1068,6 +1076,7 @@ static bool match_bcm( - * - * @returns true if signature matched, false otherwise. - */ -+#if CPUINFO_ARCH_ARM - static bool match_omap( - const char* start, const char* end, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -1103,6 +1112,7 @@ static bool match_omap( - return true; - } - -+#endif - /** - * Compares platform identifier string to known values for Broadcom chipsets. - * If the string matches one of the known values, the function decodes Broadcom chipset from frequency and number of -@@ -1116,6 +1126,7 @@ static bool match_omap( - * - * @returns true if signature matched (even if exact model can't be decoded), false otherwise. - */ -+#if __ANDROID__ && CPUINFO_ARCH_ARM - static bool match_and_parse_broadcom( - const char* start, const char* end, uint32_t cores, uint32_t max_cpu_freq_max, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -1224,6 +1235,7 @@ static bool match_and_parse_broadcom( - return model != 0; - } - -+#endif - struct sunxi_map_entry { - uint8_t sunxi; - uint8_t cores; -@@ -1390,6 +1402,7 @@ static bool match_and_parse_sunxi( - * - * @returns true if signature matched (even if exact model can't be decoded), false otherwise. - */ -+#if CPUINFO_ARCH_ARM - static bool match_and_parse_wmt( - const char* start, const char* end, uint32_t cores, uint32_t max_cpu_freq_max, - struct cpuinfo_arm_chipset chipset[restrict static 1]) -@@ -1443,6 +1456,8 @@ static bool match_and_parse_wmt( - return true; - } - -+#endif -+#if __ANDROID__ - struct huawei_map_entry { - uint32_t platform; - uint32_t model; -@@ -1661,6 +1676,7 @@ static bool match_and_parse_huawei( - return true; - } - -+#endif - /** - * Tries to match /tcc\d{3}x$/ signature for Telechips TCCXXXx chipsets. - * If match successful, extracts model information into \p chipset argument. -@@ -1728,6 +1744,7 @@ static bool match_tcc( - * - * @returns true if the string matches an Nvidia Tegra signature, and false otherwise - */ -+#if __ANDROID__ - static bool is_tegra(const char* start, const char* end) { - /* Expect 5 ("tegra") or 6 ("tegra3") symbols */ - const size_t length = end - start; -@@ -1752,6 +1769,7 @@ static bool is_tegra(const char* start, const char* end) { - return (length == 5 || start[5] == '3'); - } - -+#endif - struct special_map_entry { - const char* platform; - uint16_t model; -@@ -3395,13 +3413,18 @@ void cpuinfo_arm_fixup_chipset( - } - } - -+static char his_str[20]=""; -+__attribute__((constructor)) static void init_hist_str(){ -+ sprintf(his_str,"%c%c%c%c%c%c%c%c%c",'H','i','S','i','l','i','c','o','n'); -+} -+ - /* Map from ARM chipset vendor ID to its string representation */ - static const char* chipset_vendor_string[cpuinfo_arm_chipset_vendor_max] = { - [cpuinfo_arm_chipset_vendor_unknown] = "Unknown", - [cpuinfo_arm_chipset_vendor_qualcomm] = "Qualcomm", - [cpuinfo_arm_chipset_vendor_mediatek] = "MediaTek", - [cpuinfo_arm_chipset_vendor_samsung] = "Samsung", -- [cpuinfo_arm_chipset_vendor_hisilicon] = "HiSilicon", -+ [cpuinfo_arm_chipset_vendor_hisilicon] = his_str, - [cpuinfo_arm_chipset_vendor_actions] = "Actions", - [cpuinfo_arm_chipset_vendor_allwinner] = "Allwinner", - [cpuinfo_arm_chipset_vendor_amlogic] = "Amlogic", -@@ -3421,6 +3444,11 @@ static const char* chipset_vendor_string[cpuinfo_arm_chipset_vendor_max] = { - [cpuinfo_arm_chipset_vendor_wondermedia] = "WonderMedia", - }; - -+static char kirin_str[20]=""; -+__attribute__((constructor)) static void init_kirin_str(){ -+ sprintf(his_str,"%c%c%c%c%c",'K','i','r','i','n'); -+} -+ - /* Map from ARM chipset series ID to its string representation */ - static const char* chipset_series_string[cpuinfo_arm_chipset_series_max] = { - [cpuinfo_arm_chipset_series_unknown] = NULL, -@@ -3432,7 +3460,7 @@ static const char* chipset_series_string[cpuinfo_arm_chipset_series_max] = { - [cpuinfo_arm_chipset_series_samsung_exynos] = "Exynos ", - [cpuinfo_arm_chipset_series_hisilicon_k3v] = "K3V", - [cpuinfo_arm_chipset_series_hisilicon_hi] = "Hi", -- [cpuinfo_arm_chipset_series_hisilicon_kirin] = "Kirin ", -+ [cpuinfo_arm_chipset_series_hisilicon_kirin] = kirin_str, - [cpuinfo_arm_chipset_series_actions_atm] = "ATM", - [cpuinfo_arm_chipset_series_allwinner_a] = "A", - [cpuinfo_arm_chipset_series_amlogic_aml] = "AML", -diff --git a/src/arm/linux/clusters.c b/src/arm/linux/clusters.c -index c7a4045..8c51236 100644 ---- a/src/arm/linux/clusters.c -+++ b/src/arm/linux/clusters.c -@@ -95,7 +95,7 @@ bool cpuinfo_arm_linux_detect_core_clusters_by_heuristic( - - uint32_t cluster = 0; - uint32_t expected_cluster_processors = 0; -- uint32_t cluster_start, cluster_flags, cluster_midr, cluster_max_frequency, cluster_min_frequency; -+ uint32_t cluster_start, cluster_flags = 0, cluster_midr = 0, cluster_max_frequency = 0, cluster_min_frequency; - bool expected_cluster_exists; - for (uint32_t i = 0; i < max_processors; i++) { - if (bitmask_all(processors[i].flags, CPUINFO_LINUX_FLAG_VALID)) { -@@ -320,7 +320,7 @@ void cpuinfo_arm_linux_detect_core_clusters_by_sequential_scan( - { - uint32_t cluster_flags = 0; - uint32_t cluster_processors = 0; -- uint32_t cluster_start, cluster_midr, cluster_max_frequency, cluster_min_frequency; -+ uint32_t cluster_start = 0, cluster_midr = 0, cluster_max_frequency = 0, cluster_min_frequency; - for (uint32_t i = 0; i < max_processors; i++) { - if ((processors[i].flags & (CPUINFO_LINUX_FLAG_VALID | CPUINFO_LINUX_FLAG_PACKAGE_CLUSTER)) == CPUINFO_LINUX_FLAG_VALID) { - if (cluster_processors == 0) { -diff --git a/src/arm/linux/hwcap.c b/src/arm/linux/hwcap.c -index 36d0d91..5e1c301 100644 ---- a/src/arm/linux/hwcap.c -+++ b/src/arm/linux/hwcap.c -@@ -15,7 +15,8 @@ - #include - #include - --#if CPUINFO_ARCH_ARM64 || CPUINFO_ARCH_ARM && !defined(__ANDROID__) -+#if CPUINFO_ARCH_ARM64 || CPUINFO_ARCH_ARM && !defined(__ANDROID__) && !defined(__UCLIBC__) -+ - #include - #else - #define AT_HWCAP 16 -@@ -38,7 +39,7 @@ - #endif - - --#if CPUINFO_ARCH_ARM -+#if CPUINFO_ARCH_ARM && !defined(__UCLIBC__) - typedef unsigned long (*getauxval_function_t)(unsigned long); - - bool cpuinfo_arm_linux_hwcap_from_getauxval( -@@ -144,7 +145,7 @@ - #endif - } - #endif /* __ANDROID__ */ --#elif CPUINFO_ARCH_ARM64 -+#elif CPUINFO_ARCH_ARM64 && !defined(__UCLIBC__) - uint32_t cpuinfo_arm_linux_hwcap_from_getauxval(void) { - #if CPUINFO_MOCK - return mock_hwcap; -diff --git a/src/arm/linux/init.c b/src/arm/linux/init.c -index 89d957e..8225f5e 100644 ---- a/src/arm/linux/init.c -+++ b/src/arm/linux/init.c -@@ -234,6 +234,8 @@ void cpuinfo_arm_linux_init(void) { - cpuinfo_arm_linux_decode_chipset(proc_cpuinfo_hardware, proc_cpuinfo_revision, valid_processors, 0); - #endif - -+#if !defined(__UCLIBC__) -+ - #if CPUINFO_ARCH_ARM - uint32_t isa_features = 0, isa_features2 = 0; - #ifdef __ANDROID__ -@@ -282,7 +284,7 @@ void cpuinfo_arm_linux_init(void) { - cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo( - isa_features, last_midr, &chipset, &cpuinfo_isa); - #endif -- -+#endif - /* Detect min/max frequency and package ID */ - for (uint32_t i = 0; i < arm_linux_processors_count; i++) { - if (bitmask_all(arm_linux_processors[i].flags, CPUINFO_LINUX_FLAG_VALID)) { -diff --git a/src/linux/processors.c b/src/linux/processors.c -index 4904e2a..a1d4693 100644 ---- a/src/linux/processors.c -+++ b/src/linux/processors.c -@@ -90,8 +90,13 @@ static bool uint32_parser(const char* text_start, const char* text_end, void* co - uint32_t kernel_max = 0; - const char* parsed_end = parse_number(text_start, text_end, &kernel_max); - if (parsed_end == text_start) { -+#if defined(__UCLIBC__) -+ cpuinfo_log_warning("failed to parse file %s: \"%.*s\" is not an unsigned number", -+ KERNEL_MAX_FILENAME, (int) (text_end - text_start), text_start); -+#else - cpuinfo_log_error("failed to parse file %s: \"%.*s\" is not an unsigned number", - KERNEL_MAX_FILENAME, (int) (text_end - text_start), text_start); -+#endif - return false; - } else { - for (const char* char_ptr = parsed_end; char_ptr != text_end; char_ptr++) { --- -2.17.1 - diff --git a/third_party/prepare.sh b/third_party/prepare.sh index 40d71c0e..bfa1865c 100755 --- a/third_party/prepare.sh +++ b/third_party/prepare.sh @@ -15,23 +15,6 @@ if [ "$(printf '%s\n' "$requiredGitVersion" "$currentGitVersion" | ${SORT} -V | echo "Please update your Git version. (foud version $currentGitVersion, required version >= $requiredGitVersion)" exit -1 fi - -function update_cpuinfo() { - git submodule update -f --init cpuinfo - - name=`git config --get user.name || true` - if [ -z "$name" ]; then - name="default" - fi - email=`git config --get user.email || true` - if [ -z "$email" ]; then - email="default" - fi - - source ./apply-patches.sh - apply_cpuinfo_patches ${name} ${email} -} - function git_submodule_update() { git submodule sync git submodule update -f --init midout @@ -48,7 +31,7 @@ function git_submodule_update() { git submodule update -f --init libzmq git submodule update -f --init cppzmq git submodule update -f --init OpenBLAS - update_cpuinfo + git submodule update -f --init cpuinfo git submodule update -f --init MegRay pushd MegRay/third_party >/dev/null