diff --git a/X/XNNPACK/build_tarballs.jl b/X/XNNPACK/build_tarballs.jl index b8ae59826d1..f7e1220a4d9 100644 --- a/X/XNNPACK/build_tarballs.jl +++ b/X/XNNPACK/build_tarballs.jl @@ -3,66 +3,61 @@ using BinaryBuilder, Pkg name = "XNNPACK" -version = v"0.0.20200323" +version = v"0.0.20210622" # i.e. https://github.com/google/XNNPACK/tree/79cd5f9e18ad0925ac9a050b00ea5a36230072db -cpuinfo_build_version = v"0.0.20200228" +cpuinfo_build_version = v"0.0.20201217" # https://github.com/google/XNNPACK/blob/79cd5f9e18ad0925ac9a050b00ea5a36230072db/cmake/DownloadCpuinfo.cmake#L15 cpuinfo_compat = [ - cpuinfo_build_version, - v"0.0.20200522", # previously released - v"0.0.20200612", # due to pytorch v1.6.0 - v1.7.1, e.g. https://github.com/pytorch/pytorch/tree/v1.6.0/third_party/cpuinfo @ 63b254577ed77a8004a9be6ac707f3dccc4e1fd9 + cpuinfo_build_version, # Torch-compatible version, due to pytorch v1.8.0 - v1.12.1, e.g. https://github.com/pytorch/pytorch/tree/v1.8.0/third_party / cpuinfo @ 5916273f79a21551890fd3d56fc5375a78d1598d ] -pthreadpool_build_version = v"0.0.20200302" +pthreadpool_build_version = v"0.0.20201206" # https://github.com/google/XNNPACK/blob/79cd5f9e18ad0925ac9a050b00ea5a36230072db/cmake/DownloadPThreadPool.cmake#L15 pthreadpool_compat = [ pthreadpool_build_version, - v"0.0.20200616", # due to pytorch v1.6.0 - v1.7.1, e.g. https://github.com/pytorch/pytorch/tree/v1.6.0/third_party/pthreadpool @ 029c88620802e1361ccf41d1970bd5b07fd6b7bb + v"0.0.20210414", # Torch-compatible version, due to pytorch v1.9.0 - v1.12.1, e.g. https://github.com/pytorch/pytorch/tree/v1.9.0/third_party / pthreadpool @ a134dd5d4cee80cce15db81a72e7f929d71dd413 ] # Collection of sources required to complete build sources = [ - GitSource("https://github.com/google/XNNPACK.git", "1b354636b5942826547055252f3b359b54acff95"), + GitSource("https://github.com/google/XNNPACK.git", "79cd5f9e18ad0925ac9a050b00ea5a36230072db"), DirectorySource("./bundled"), - GitSource("https://github.com/pytorch/cpuinfo.git", "d5e37adf1406cf899d7d9ec1d317c47506ccb970"; unpack_target="clog"), - GitSource("https://github.com/Maratyszcza/FP16.git", "ba1d31f5eed2eb4a69e4dea3870a68c7c95f998f"), - GitSource("https://github.com/Maratyszcza/FXdiv.git", "f8c5354679ec2597792bc70a9e06eff50c508b9a"), - GitSource("https://github.com/Maratyszcza/psimd.git", "88882f601f8179e1987b7e7cf4a8012c9080ad44"), - GitSource("https://github.com/Maratyszcza/pthreadpool.git", "ebd50d0cfa3664d454ffdf246fcd228c3b370a11"), ] # Bash recipe for building across all platforms script = raw""" cd $WORKSPACE/srcdir/XNNPACK -atomic_patch -p1 ../patches/xnnpack-disable-fast-math.patch -atomic_patch -p1 ../patches/xnnpack-pic.patch atomic_patch -p1 ../patches/xnnpack-soversion.patch atomic_patch -p1 ../patches/xnnpack-freebsd.patch -if [[ $target == aarch64-* ]]; then - atomic_patch -p1 ../patches/xnnpack-disable-neon-fp16-arithmetic.patch +atomic_patch -p1 ../patches/xnnpack-w64-system-libs.patch +C_FLAGS=() +# if [[ $bb_full_target == armv7l-*march+neonvfpv4 ]]; then # Requires build for specific micro-architecture +# atomic_patch -p1 ../patches/xnnpack-arm-exclude-microkernel-srcs.patch +# C_FLAGS+="-DXNN_NO_F32_OPERATORS " +# C_FLAGS+="-DXNN_NO_QS8_OPERATORS " +if [[ $bb_full_target == aarch64-* ]]; then # Building for aarch64-*march+armv8* + atomic_patch -p1 ../patches/xnnpack-aarch64-exclude-microkernel-srcs.patch + atomic_patch -p1 ../patches/xnnpack-aarch64-armv8-exclude-microkernel-srcs.patch + C_FLAGS+="-DXNN_NO_F16_OPERATORS " + C_FLAGS+="-DXNN_NO_F32_OPERATORS " + C_FLAGS+="-DXNN_NO_QS8_OPERATORS " +# elif [[ $bb_full_target == aarch64-apple-*march+apple_m1* ]]; then # Requires build for specific micro-architecture +# atomic_patch -p1 ../patches/xnnpack-aarch64-exclude-microkernel-srcs.patch +# C_FLAGS+="-DXNN_NO_F16_OPERATORS " fi mkdir build cd build -# Omitted cmake define of CPUINFO_SOURCE_DIR as there is a patch for cpuinfo cmake \ -DCMAKE_INSTALL_PREFIX=$prefix \ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=$libdir \ - -DCLOG_SOURCE_DIR=$WORKSPACE/srcdir/clog/cpuinfo \ - -DFP16_SOURCE_DIR=$WORKSPACE/srcdir/FP16 \ - -DFXDIV_SOURCE_DIR=$WORKSPACE/srcdir/FXdiv \ - -DPSIMD_SOURCE_DIR=$WORKSPACE/srcdir/psimd \ - -DPTHREADPOOL_SOURCE_DIR=$WORKSPACE/srcdir/pthreadpool \ -DXNNPACK_LIBRARY_TYPE=shared \ -DXNNPACK_BUILD_TESTS=OFF \ -DXNNPACK_BUILD_BENCHMARKS=OFF \ + -DXNNPACK_USE_SYSTEM_LIBS=ON \ + -DCMAKE_C_FLAGS="$C_FLAGS" \ .. -if [[ $target == *-w64-mingw32* ]]; then - cd cpuinfo-source - atomic_patch -p1 ../../../patches/cpuinfo-mingw-lowercase-windows-include.patch - cd .. -fi cmake --build . -- -j $nproc make install/local if [[ $target == *-w64-mingw32 ]]; then @@ -74,7 +69,8 @@ install_license ../LICENSE # These are the platforms we will build for by default, unless further # platforms are passed in on the command line platforms = supported_platforms() -filter!(p -> !(Sys.iswindows(p) && arch(p) == "i686"), platforms) # i686-Windows fails to link +filter!(p -> arch(p) != "armv6l", platforms) # armv6l is unsupported by XNNPACK (lacks NEON instructions) +filter!(p -> arch(p) != "armv7l", platforms) # Requires build for specific micro-architecture (neonvfpv4) filter!(p -> arch(p) != "powerpc64le", platforms) # PowerPC64LE is unsupported by XNNPACK (Unsupported architecture in src/init.c) # The products that we will ensure are always built @@ -83,8 +79,9 @@ products = [ ] # Dependencies that must be installed before this package can be built -dependencies = Dependency[ +dependencies = [ Dependency("CPUInfo_jll", cpuinfo_build_version; compat=join(string.(cpuinfo_compat), ", ")), + BuildDependency(PackageSpec("FP16_jll", v"0.0.20210320")), Dependency("PThreadPool_jll", pthreadpool_build_version; compat=join(string.(pthreadpool_compat), ", ")), ] diff --git a/X/XNNPACK/bundled/patches/cpuinfo-mingw-lowercase-windows-include.patch b/X/XNNPACK/bundled/patches/cpuinfo-mingw-lowercase-windows-include.patch deleted file mode 100644 index 85f17c2e1f3..00000000000 --- a/X/XNNPACK/bundled/patches/cpuinfo-mingw-lowercase-windows-include.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/x86/windows/init.c b/src/x86/windows/init.c -index eb3498a..7c300c8 100644 ---- a/src/x86/windows/init.c -+++ b/src/x86/windows/init.c -@@ -8,7 +8,7 @@ - #include - #include - --#include -+#include - - static inline uint32_t bit_mask(uint32_t bits) { - return (UINT32_C(1) << bits) - UINT32_C(1); diff --git a/X/XNNPACK/bundled/patches/xnnpack-aarch64-armv8-exclude-microkernel-srcs.patch b/X/XNNPACK/bundled/patches/xnnpack-aarch64-armv8-exclude-microkernel-srcs.patch new file mode 100644 index 00000000000..267363cf434 --- /dev/null +++ b/X/XNNPACK/bundled/patches/xnnpack-aarch64-armv8-exclude-microkernel-srcs.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f4c55af4e..6d0f1b9bb 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3437,10 +3437,6 @@ IF(XNNPACK_TARGET_PROCESSOR MATCHES "^(aarch64|arm64)$" OR IOS_ARCH MATCHES "^ar + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONV8_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS}) +- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONDOT_MICROKERNEL_SRCS}) +- IF(XNNPACK_ENABLE_ASSEMBLY) +- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS}) +- ENDIF() + ENDIF() + IF(XNNPACK_TARGET_PROCESSOR MATCHES "^(i[3-6]86|x86_64|AMD64)$" OR IOS_ARCH MATCHES "^(i386|x86_64|AMD64)$") + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE_MICROKERNEL_SRCS}) diff --git a/X/XNNPACK/bundled/patches/xnnpack-aarch64-exclude-microkernel-srcs.patch b/X/XNNPACK/bundled/patches/xnnpack-aarch64-exclude-microkernel-srcs.patch new file mode 100644 index 00000000000..034369bf347 --- /dev/null +++ b/X/XNNPACK/bundled/patches/xnnpack-aarch64-exclude-microkernel-srcs.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ee2d3f255..c0f1fd4e7 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3437,7 +3437,6 @@ IF(XNNPACK_TARGET_PROCESSOR MATCHES "^(aarch64|arm64)$" OR IOS_ARCH MATCHES "^ar + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONV8_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS}) +- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONDOT_MICROKERNEL_SRCS}) + IF(XNNPACK_ENABLE_ASSEMBLY) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS}) +@@ -3489,9 +3488,6 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") + ENDIF() + ENDIF() + IF(XNNPACK_TARGET_PROCESSOR MATCHES "^(aarch64|arm64)$" OR IOS_ARCH MATCHES "^arm64.*") +- SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+fp16 ") +- SET_PROPERTY(SOURCE ${XNNPACK_NEONDOT_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+dotprod ") +- SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+fp16+dotprod ") + IF(IOS) + SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -arch ${IOS_ARCH} ") + ENDIF() diff --git a/X/XNNPACK/bundled/patches/xnnpack-arm-exclude-microkernel-srcs.patch b/X/XNNPACK/bundled/patches/xnnpack-arm-exclude-microkernel-srcs.patch new file mode 100644 index 00000000000..acf8aa7317b --- /dev/null +++ b/X/XNNPACK/bundled/patches/xnnpack-arm-exclude-microkernel-srcs.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 63eb78928..8f00f272d 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3424,10 +3424,6 @@ SET(XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SCALAR_MICROKERNEL_SRCS}) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEON_MICROKERNEL_SRCS}) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) +- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONV8_MICROKERNEL_SRCS}) +- IF(NOT IOS) +- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONDOT_MICROKERNEL_SRCS}) +- ENDIF() + IF(XNNPACK_ENABLE_ASSEMBLY) + LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS}) + ENDIF() +@@ -3472,12 +3468,10 @@ SET_TARGET_PROPERTIES(XNNPACK PROPERTIES + SOVERSION 0) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") + SET_PROPERTY(SOURCE ${XNNPACK_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -marm ") +- SET_PROPERTY(SOURCE ${XNNPACK_NEON_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=neon ") +- SET_PROPERTY(SOURCE ${XNNPACK_NEONFMA_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=neon-vfpv4 ") + IF(IOS) + SET_PROPERTY(SOURCE ${XNNPACK_NEONV8_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mcpu=cyclone -mtune=generic ") + SET_PROPERTY(SOURCE ${XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -arch ${IOS_ARCH} ") +- ELSE() ++ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv8") + SET_PROPERTY(SOURCE ${XNNPACK_NEONV8_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8-a -mfpu=neon-fp-armv8 ") + SET_PROPERTY(SOURCE ${XNNPACK_NEONDOT_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+dotprod -mfpu=neon-fp-armv8 ") + ENDIF() diff --git a/X/XNNPACK/bundled/patches/xnnpack-disable-fast-math.patch b/X/XNNPACK/bundled/patches/xnnpack-disable-fast-math.patch deleted file mode 100644 index ee98cbe183e..00000000000 --- a/X/XNNPACK/bundled/patches/xnnpack-disable-fast-math.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 40cafbfbd..a07887313 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1499,7 +1499,7 @@ ELSE() - ENDIF() - IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") - SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 ") -- SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 -ffast-math ") -+ SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 ") - ENDIF() - - TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include) diff --git a/X/XNNPACK/bundled/patches/xnnpack-disable-neon-fp16-arithmetic.patch b/X/XNNPACK/bundled/patches/xnnpack-disable-neon-fp16-arithmetic.patch deleted file mode 100644 index 0aa0790c3b4..00000000000 --- a/X/XNNPACK/bundled/patches/xnnpack-disable-neon-fp16-arithmetic.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9bcaa5816..8627e0546 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -863,11 +863,6 @@ SET(XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS - src/math/sigmoid-neonfma-rr2-lut64-p2-div.c - src/math/sigmoid-neonfma-rr2-p5-div.c) - --SET(XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS -- src/f16-gemm/gen/4x8-neonfp16arith-ld64.c -- src/f16-gemm/gen/6x8-neonfp16arith-ld64.c -- src/f16-gemm/gen/8x8-neonfp16arith-ld64.c) -- - SET(XNNPACK_SSE_MICROKERNEL_SRCS - src/f32-avgpool/9p8x-sse-c4.c - src/f32-avgpool/9x-sse-c4.c -@@ -1482,7 +1477,6 @@ IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR IOS_ARCH MATCHES "^arm64.*") - LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEON_MICROKERNEL_SRCS}) - LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_NEONFMA_MICROKERNEL_SRCS}) - LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFMA_MICROKERNEL_SRCS}) -- LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS}) - LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS}) - ENDIF() - IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64|AMD64)$" OR IOS_ARCH MATCHES "^(i386|x86_64|AMD64)$") -@@ -1518,7 +1512,6 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") - ENDIF() - ENDIF() - IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR IOS_ARCH MATCHES "^arm64.*") -- SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv8.2-a+fp16 ") - IF(IOS) - SET_PROPERTY(SOURCE ${XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -arch ${IOS_ARCH} ") - ENDIF() diff --git a/X/XNNPACK/bundled/patches/xnnpack-freebsd.patch b/X/XNNPACK/bundled/patches/xnnpack-freebsd.patch index 8ee76cd974b..db4d2ab2094 100644 --- a/X/XNNPACK/bundled/patches/xnnpack-freebsd.patch +++ b/X/XNNPACK/bundled/patches/xnnpack-freebsd.patch @@ -1,13 +1,13 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9bcaa5816..56b28ef39 100644 +index ee2d3f255..66071856d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -51,7 +51,7 @@ ENDIF() +@@ -82,7 +82,7 @@ ENDIF() IF(NOT CMAKE_SYSTEM_NAME) MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_NAME not defined") --ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|Linux|Android|Windows)$") -+ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|FreeBSD|Linux|Android|Windows)$") +-ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|Linux|Android|Windows|CYGWIN|MSYS)$") ++ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|FreeBSD|Linux|Android|Windows|CYGWIN|MSYS)$") MESSAGE(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}") ENDIF() diff --git a/X/XNNPACK/bundled/patches/xnnpack-pic.patch b/X/XNNPACK/bundled/patches/xnnpack-pic.patch deleted file mode 100644 index 3b02233af96..00000000000 --- a/X/XNNPACK/bundled/patches/xnnpack-pic.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 40cafbfbd..7779eaf98 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1528,6 +1528,7 @@ IF(NOT TARGET cpuinfo) - "${CPUINFO_SOURCE_DIR}" - "${CMAKE_BINARY_DIR}/cpuinfo") - ENDIF() -+SET_PROPERTY(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON) - TARGET_LINK_LIBRARIES(XNNPACK PRIVATE cpuinfo) - - # ---[ Configure pthreadpool -@@ -1539,6 +1540,7 @@ IF(NOT TARGET pthreadpool) - "${PTHREADPOOL_SOURCE_DIR}" - "${CMAKE_BINARY_DIR}/pthreadpool") - ENDIF() -+SET_PROPERTY(TARGET pthreadpool PROPERTY POSITION_INDEPENDENT_CODE ON) - TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool) - - # ---[ Configure FXdiv diff --git a/X/XNNPACK/bundled/patches/xnnpack-soversion.patch b/X/XNNPACK/bundled/patches/xnnpack-soversion.patch index 4317f2b6e92..40ec39c8d7b 100644 --- a/X/XNNPACK/bundled/patches/xnnpack-soversion.patch +++ b/X/XNNPACK/bundled/patches/xnnpack-soversion.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9bcaa5816..dbe149f85 100644 +index ee2d3f255..f518e92f9 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1507,7 +1507,9 @@ ELSE() +@@ -3467,7 +3467,9 @@ ELSE() ENDIF() SET_TARGET_PROPERTIES(XNNPACK PROPERTIES C_STANDARD 99 @@ -12,4 +12,4 @@ index 9bcaa5816..dbe149f85 100644 + SOVERSION 0) IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]" OR IOS_ARCH MATCHES "^armv7") SET_PROPERTY(SOURCE ${XNNPACK_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -marm ") - SET_PROPERTY(SOURCE ${XNNPACK_PSIMD_FASTMATH_MICROKERNEL_SRCS} ${XNNPACK_PSIMD_ACCMATH_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfpu=neon ") + SET_PROPERTY(SOURCE ${XNNPACK_NEON_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=neon ") diff --git a/X/XNNPACK/bundled/patches/xnnpack-w64-system-libs.patch b/X/XNNPACK/bundled/patches/xnnpack-w64-system-libs.patch new file mode 100644 index 00000000000..17d68ad5398 --- /dev/null +++ b/X/XNNPACK/bundled/patches/xnnpack-w64-system-libs.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ee2d3f255..f97642f91 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3612,6 +3612,7 @@ IF(NOT TARGET cpuinfo) + MESSAGE(FATAL_ERROR "Cannot find cpuinfo") + ENDIF() + SET_PROPERTY(TARGET cpuinfo PROPERTY IMPORTED_LOCATION "${CPUINFO_LIBRARY}") ++ SET_PROPERTY(TARGET cpuinfo PROPERTY IMPORTED_IMPLIB "${CPUINFO_LIBRARY}") + ENDIF() + ENDIF() + TARGET_LINK_LIBRARIES(XNNPACK PRIVATE cpuinfo) +@@ -3632,6 +3633,7 @@ IF(NOT TARGET pthreadpool) + MESSAGE(FATAL_ERROR "Cannot find pthreadpool") + ENDIF() + SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}") ++ SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}") + ENDIF() + ENDIF() + TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)