From f889cf0bd47aa492623dce8eb392dacb5788d6f1 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Tue, 25 Jan 2022 01:36:23 +1000 Subject: [PATCH 1/2] rpcs3: 0.0.19-12975-37383f421 -> 0.0.20-13222-8c2fd5095 --- ...gine-IntelJITEvents-only-use-ITTAPI_.patch | 62 +++++++++++++++++++ pkgs/misc/emulators/rpcs3/default.nix | 25 ++++++-- 2 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 pkgs/misc/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch diff --git a/pkgs/misc/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch b/pkgs/misc/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch new file mode 100644 index 000000000000..dccf06fc0786 --- /dev/null +++ b/pkgs/misc/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch @@ -0,0 +1,62 @@ +From 9866ce8f538e1ab1f0902408b7575013b768f365 Mon Sep 17 00:00:00 2001 +From: Zane van Iperen +Date: Wed, 2 Feb 2022 23:41:59 +1000 +Subject: [PATCH] llvm/ExecutionEngine/IntelJITEvents: only use + ITTAPI_SOURCE_DIR + +--- + .../IntelJITEvents/CMakeLists.txt | 32 ++----------------- + 1 file changed, 2 insertions(+), 30 deletions(-) + +diff --git a/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt b/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt +index 0c5017c3..d20c35f3 100644 +--- a/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt ++++ b/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt +@@ -1,34 +1,6 @@ + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) + +-if(NOT DEFINED ITTAPI_GIT_REPOSITORY) +- set(ITTAPI_GIT_REPOSITORY https://github.com/intel/ittapi.git) +-endif() +- +-if(NOT DEFINED ITTAPI_GIT_TAG) +- set(ITTAPI_GIT_TAG v3.18.12) +-endif() +- +-if(NOT DEFINED ITTAPI_SOURCE_DIR) +- set(ITTAPI_SOURCE_DIR ${PROJECT_BINARY_DIR}) +-endif() +- +-if(NOT EXISTS ${ITTAPI_SOURCE_DIR}/ittapi) +- execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ITTAPI_GIT_REPOSITORY} +- WORKING_DIRECTORY ${ITTAPI_SOURCE_DIR} +- RESULT_VARIABLE GIT_CLONE_RESULT) +- if(NOT GIT_CLONE_RESULT EQUAL "0") +- message(FATAL_ERROR "git clone ${ITTAPI_GIT_REPOSITORY} failed with ${GIT_CLONE_RESULT}, please clone ${ITTAPI_GIT_REPOSITORY}") +- endif() +-endif() +- +-execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${ITTAPI_GIT_TAG} +- WORKING_DIRECTORY ${ITTAPI_SOURCE_DIR}/ittapi +- RESULT_VARIABLE GIT_CHECKOUT_RESULT) +-if(NOT GIT_CHECKOUT_RESULT EQUAL "0") +- message(FATAL_ERROR "git checkout ${ITTAPI_GIT_TAG} failed with ${GIT_CHECKOUT_RESULT}, please checkout ${ITTAPI_GIT_TAG} at ${ITTAPI_SOURCE_DIR}/ittapi") +-endif() +- +-include_directories( ${ITTAPI_SOURCE_DIR}/ittapi/include/ ) ++include_directories( ${ITTAPI_SOURCE_DIR}/include/ ) + + if( HAVE_LIBDL ) + set(LLVM_INTEL_JIT_LIBS ${CMAKE_DL_LIBS}) +@@ -40,7 +12,7 @@ set(LLVM_INTEL_JIT_LIBS ${LLVM_PTHREAD_LIB} ${LLVM_INTEL_JIT_LIBS}) + add_llvm_component_library(LLVMIntelJITEvents + IntelJITEventListener.cpp + jitprofiling.c +- ${ITTAPI_SOURCE_DIR}/ittapi/src/ittnotify/ittnotify_static.c ++ ${ITTAPI_SOURCE_DIR}/src/ittnotify/ittnotify_static.c + + LINK_LIBS ${LLVM_INTEL_JIT_LIBS} + +-- +2.34.1 + diff --git a/pkgs/misc/emulators/rpcs3/default.nix b/pkgs/misc/emulators/rpcs3/default.nix index 25a6d6befad1..0ea56d3a72d3 100644 --- a/pkgs/misc/emulators/rpcs3/default.nix +++ b/pkgs/misc/emulators/rpcs3/default.nix @@ -8,26 +8,38 @@ }: let - majorVersion = "0.0.19"; - gitVersion = "12975-37383f421"; + # Keep these separate so the update script can regex them + rpcs3GitVersion = "13222-8c2fd5095"; + rpcs3Version = "0.0.20-13222-8c2fd5095"; + rpcs3Revision = "8c2fd50957be3af05c04a9bb782dce8505fb6400"; + rpcs3Sha256 = "1cf62vpqdc9i4masgv9zz24h7zdc7gcymx6n1hbh7wp5gg1dw4qi"; + + ittapi = fetchFromGitHub { + owner = "intel"; + repo = "ittapi"; + rev = "v3.18.12"; + sha256 = "0c3g30rj1y8fbd2q4kwlpg1jdy02z4w5ryhj3yr9051pdnf4kndz"; + }; in gcc11Stdenv.mkDerivation { pname = "rpcs3"; - version = "${majorVersion}-${gitVersion}"; + version = rpcs3Version; src = fetchFromGitHub { owner = "RPCS3"; repo = "rpcs3"; - rev = "37383f4217e1c510a543e100d0ca495800b3361a"; + rev = rpcs3Revision; fetchSubmodules = true; - sha256 = "1pm1r4j4cdcmr8xmslyv2n6iwcjldnr396by4r6lgf4mdlnwahhm"; + sha256 = rpcs3Sha256; }; + patches = [ ./0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch ]; + passthru.updateScript = ./update.sh; preConfigure = '' cat > ./rpcs3/git-version.h < Date: Tue, 25 Jan 2022 01:38:06 +1000 Subject: [PATCH 2/2] rpcs3: update script fixes Update the update script to handle the new ittapi stuff, and to work with nixpkgs-update (needs the old version to be a literal string in the file). Also throw some general cleanups in there for good measure. --- pkgs/misc/emulators/rpcs3/update.sh | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/pkgs/misc/emulators/rpcs3/update.sh b/pkgs/misc/emulators/rpcs3/update.sh index 05be4dfeda1d..0c8477c5282b 100755 --- a/pkgs/misc/emulators/rpcs3/update.sh +++ b/pkgs/misc/emulators/rpcs3/update.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p gnused jq nix-prefetch-git curl +#!nix-shell -i bash --pure --keep GITHUB_TOKEN -p gnused jq nix-prefetch-git curl cacert set -eou pipefail @@ -14,7 +14,7 @@ if [[ ! -v GITHUB_TOKEN ]]; then exit 1 fi -PAYLOAD=$(jq -cn --rawfile query /dev/stdin '{"query": $query}' <