From 0247d9414da39c5c3839a2da9c23b1a2583da3d7 Mon Sep 17 00:00:00 2001 From: EvilMcStevil <72495665+EvilMcStevil@users.noreply.github.com> Date: Fri, 1 Aug 2025 04:42:49 +1000 Subject: [PATCH] [fbgemm] Update to 1.0.0 (#46622) Co-authored-by: Steve Co-authored-by: Steve Brain --- ports/fbgemm/fix-cmakelists.patch | 138 +++++++++++++----------------- ports/fbgemm/portfile.cmake | 4 +- ports/fbgemm/vcpkg.json | 3 +- scripts/ci.baseline.txt | 2 - versions/baseline.json | 4 +- versions/f-/fbgemm.json | 5 ++ 6 files changed, 71 insertions(+), 85 deletions(-) diff --git a/ports/fbgemm/fix-cmakelists.patch b/ports/fbgemm/fix-cmakelists.patch index d209c795ee..316c3b0cd7 100644 --- a/ports/fbgemm/fix-cmakelists.patch +++ b/ports/fbgemm/fix-cmakelists.patch @@ -1,57 +1,54 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 58dcb9a..513a152 100644 +index 0243f68..ccf7331 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -6,7 +6,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +@@ -94,13 +94,12 @@ project(fbgemm VERSION 0.1 LANGUAGES CXX C) include(GNUInstallDirs) - # function to extract filelists from defs.bzl file + # Load Python -find_package(PythonInterp) - function(get_filelist name outputvar) - execute_process( - COMMAND "${PYTHON_EXECUTABLE}" -c -@@ -43,9 +42,6 @@ endfunction() - - project(fbgemm VERSION 0.1 LANGUAGES CXX C) - --set(FBGEMM_LIBRARY_TYPE "default" CACHE STRING +- +-set(FBGEMM_LIBRARY_TYPE "default" +- CACHE STRING - "Type of library (shared, static, or default) to build") ++if(BUILD_SHARED_LIBS) ++set(FBGEMM_LIBRARY_TYPE "shared") ++else() ++set(FBGEMM_LIBRARY_TYPE "static") ++endif() + -set_property(CACHE FBGEMM_LIBRARY_TYPE PROPERTY STRINGS default static shared) option(FBGEMM_BUILD_TESTS "Build fbgemm unit tests" ON) option(FBGEMM_BUILD_BENCHMARKS "Build fbgemm benchmarks" ON) option(FBGEMM_BUILD_DOCS "Build fbgemm documentation" OFF) -@@ -126,18 +122,11 @@ set_target_properties(fbgemm_generic fbgemm_avx2 fbgemm_avx512 PROPERTIES - #2) MSVC uses /MD in default cxx compiling flags, - #need to change it to /MT in static case +@@ -178,7 +177,7 @@ add_dependencies(fbgemm_autovec defs.bzl) + # 2) MSVC uses /MD in default cxx compiling flags, + # Need to change it to /MT in static case if(MSVC) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309") -- if(FBGEMM_LIBRARY_TYPE STREQUAL "static") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309 /wd4703 /bigobj") -+ if(NOT BUILD_SHARED_LIBS) + if(FBGEMM_LIBRARY_TYPE STREQUAL "static") target_compile_definitions(fbgemm_generic PRIVATE ASMJIT_STATIC) target_compile_definitions(fbgemm_avx2 PRIVATE ASMJIT_STATIC) - target_compile_definitions(fbgemm_avx512 PRIVATE ASMJIT_STATIC) -- foreach(flag_var -- CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE -- CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) -- if(${flag_var} MATCHES "/MD") -- string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") -- endif(${flag_var} MATCHES "/MD") -- endforeach(flag_var) - endif() - target_compile_options(fbgemm_avx2 PRIVATE "/arch:AVX2") - target_compile_options(fbgemm_avx512 PRIVATE "/arch:AVX512") -@@ -189,7 +178,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}") +@@ -199,7 +198,6 @@ if(MSVC) + else(MSVC) + string(APPEND CMAKE_CXX_FLAGS " -Wall") + string(APPEND CMAKE_CXX_FLAGS " -Wextra") +- string(APPEND CMAKE_CXX_FLAGS " -Werror") + string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated-declarations") + string(APPEND CMAKE_CXX_FLAGS " -Wunknown-pragmas") + string(APPEND CMAKE_CXX_FLAGS " -Wimplicit-fallthrough") +@@ -247,7 +245,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}") message(WARNING "CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}") message(WARNING "==========") -if(NOT TARGET asmjit) +find_package(asmjit CONFIG REQUIRED) # target 'asmjit::asmjit' +if(FALSE) - #Download asmjit from github if ASMJIT_SRC_DIR is not specified. + # Download asmjit from github if ASMJIT_SRC_DIR is not specified. if(NOT DEFINED ASMJIT_SRC_DIR) - set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/third_party/asmjit" -@@ -218,7 +208,8 @@ if(NOT TARGET asmjit) + set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/external/asmjit" +@@ -280,7 +279,8 @@ if(NOT TARGET asmjit) endif() endif() @@ -60,8 +57,8 @@ index 58dcb9a..513a152 100644 +if(FALSE) #Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified. if(NOT DEFINED CPUINFO_SOURCE_DIR) - set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/third_party/cpuinfo" -@@ -239,49 +230,38 @@ endif() + set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/external/cpuinfo" +@@ -301,26 +301,26 @@ endif() target_include_directories(fbgemm_generic BEFORE PUBLIC $ PUBLIC $ @@ -83,60 +80,47 @@ index 58dcb9a..513a152 100644 PUBLIC $ - PRIVATE "${ASMJIT_SRC_DIR}/src" - PRIVATE "${CPUINFO_SOURCE_DIR}/include") -- --if(FBGEMM_LIBRARY_TYPE STREQUAL "default") -- add_library(fbgemm -- $ -- $ -- $) --elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared") -- add_library(fbgemm SHARED -- $ -- $ -- $) +) +target_link_libraries(fbgemm_avx512 PUBLIC asmjit::asmjit cpuinfo::cpuinfo) -+ -+add_library(fbgemm -+ $ -+ $ -+ $) -+if(BUILD_SHARED_LIBS) - set_property(TARGET fbgemm_generic PROPERTY POSITION_INDEPENDENT_CODE ON) + + target_include_directories(fbgemm_autovec BEFORE + PUBLIC $ + PUBLIC $ +- PRIVATE "${ASMJIT_SRC_DIR}/src" +- PRIVATE "${CPUINFO_SOURCE_DIR}/include") ++) ++target_link_libraries(fbgemm_autovec PUBLIC asmjit::asmjit cpuinfo::cpuinfo) + + if(FBGEMM_LIBRARY_TYPE STREQUAL "default") + add_library(fbgemm +@@ -338,6 +338,7 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared") set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON) - set_target_properties(fbgemm PROPERTIES - CXX_VISIBILITY_PRESET hidden) --elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static") -- add_library(fbgemm STATIC -- $ -- $ -- $) -+else() - #MSVC need to define FBGEMM_STATIC for fbgemm_generic also to - #avoid generating _dllimport functions. - target_compile_definitions(fbgemm_generic PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm_avx2 PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm_avx512 PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm PRIVATE FBGEMM_STATIC) --else() -- message(FATAL_ERROR "Unsupported library type ${FBGEMM_LIBRARY_TYPE}") - endif() - - if(USE_SANITIZER) -@@ -293,9 +273,7 @@ target_include_directories(fbgemm BEFORE + set_property(TARGET fbgemm_autovec PROPERTY POSITION_INDEPENDENT_CODE ON) ++ set_target_properties(fbgemm PROPERTIES CXX_VISIBILITY_PRESET hidden) + elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static") + add_library(fbgemm STATIC + $ +@@ -364,15 +365,10 @@ target_include_directories(fbgemm BEFORE PUBLIC $ PUBLIC $) --target_link_libraries(fbgemm $ +-target_link_libraries(fbgemm +- $ - $) --add_dependencies(fbgemm asmjit cpuinfo) +-add_dependencies(fbgemm +- asmjit +- cpuinfo) +target_link_libraries(fbgemm PUBLIC asmjit::asmjit cpuinfo::cpuinfo) - install(TARGETS fbgemm EXPORT fbgemmLibraryConfig - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -@@ -308,7 +286,7 @@ install(FILES ${FBGEMM_PUBLIC_HEADERS} - install(EXPORT fbgemmLibraryConfig DESTINATION share/cmake/fbgemm + if(OpenMP_FOUND) +- target_link_libraries(fbgemm OpenMP::OpenMP_CXX) ++ target_link_libraries(fbgemm PUBLIC OpenMP::OpenMP_CXX) + endif() + + install( +@@ -391,7 +387,7 @@ install( + DESTINATION share/cmake/fbgemm FILE fbgemmLibraryConfig.cmake) -if(MSVC) diff --git a/ports/fbgemm/portfile.cmake b/ports/fbgemm/portfile.cmake index b035551757..4fb824858f 100644 --- a/ports/fbgemm/portfile.cmake +++ b/ports/fbgemm/portfile.cmake @@ -4,8 +4,8 @@ vcpkg_find_acquire_program(PYTHON3) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/fbgemm - REF 64833b5185893cbc71ea80c9b01443f762b5cba4 - SHA512 f256177f22d3a4abd9c861bafd96e12df33e7604416c26ac06c9e480fd5f1e0b4149132b3216790704ebf73d47a7277235f058d58f0ecafa8de23360022f202d + REF 73a64e75ff31be7ece6f68929ee5682b0bf9eb10 + SHA512 2757d986a977d14bd32d482452627b55aae216f77a262b2b1b88a643a2977c6c27c5a99ee91b7a7bdbb66248239ecc1a57d1953251049d787317b6355369af26 PATCHES fix-cmakelists.patch ) diff --git a/ports/fbgemm/vcpkg.json b/ports/fbgemm/vcpkg.json index d81314e00d..838a0d2cab 100644 --- a/ports/fbgemm/vcpkg.json +++ b/ports/fbgemm/vcpkg.json @@ -1,7 +1,6 @@ { "name": "fbgemm", - "version": "0.4.1", - "port-version": 1, + "version": "1.0.0", "description": "FB (Facebook) + GEMM (General Matrix-Matrix Multiplication)", "homepage": "https://code.fb.com/ml-applications/fbgemm/", "license": "BSD-3-Clause", diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index cd688d7a1d..9091e1cf47 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -291,8 +291,6 @@ elfio:arm-neon-android=fail elfio:arm64-android=fail elfio:x64-android=fail faker-cxx:x64-linux=fail # requires gcc13 or later -# clang rejects variable length arrays -fbgemm:x64-android=fail # variable length arrays in C++ are a Clang extension fbbgemmerror:arm-neon-android=fail fbbgemmerror:arm64-android=fail diff --git a/versions/baseline.json b/versions/baseline.json index 3b3e6d83bf..967acf0c5a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2845,8 +2845,8 @@ "port-version": 0 }, "fbgemm": { - "baseline": "0.4.1", - "port-version": 1 + "baseline": "1.0.0", + "port-version": 0 }, "fbthrift": { "baseline": "2025.05.19.00", diff --git a/versions/f-/fbgemm.json b/versions/f-/fbgemm.json index f306a70e6e..499dedbe81 100644 --- a/versions/f-/fbgemm.json +++ b/versions/f-/fbgemm.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e055c95b9158e871ada9e49d4dfc92c618f995f2", + "version": "1.0.0", + "port-version": 0 + }, { "git-tree": "27b4707b88bb2ed527d372438c406d1a97323229", "version": "0.4.1",