Merge pull request #156544 from vs49688/rpcs3

This commit is contained in:
Sandro 2022-02-02 16:14:46 +01:00 committed by GitHub
commit 4dccd7023f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 98 additions and 20 deletions

View File

@ -0,0 +1,62 @@
From 9866ce8f538e1ab1f0902408b7575013b768f365 Mon Sep 17 00:00:00 2001
From: Zane van Iperen <zane@zanevaniperen.com>
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

View File

@ -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 <<EOF
#define RPCS3_GIT_VERSION "${gitVersion}"
#define RPCS3_GIT_VERSION "${rpcs3GitVersion}"
#define RPCS3_GIT_FULL_BRANCH "RPCS3/rpcs3/master"
#define RPCS3_GIT_BRANCH "HEAD"
#define RPCS3_GIT_VERSION_NO_UPDATE 1
@ -45,6 +57,7 @@ gcc11Stdenv.mkDerivation {
"-DUSE_SYSTEM_PUGIXML=ON"
"-DUSE_SYSTEM_FLATBUFFERS=ON"
"-DUSE_NATIVE_INSTRUCTIONS=OFF"
"-DITTAPI_SOURCE_DIR=${ittapi}"
];
nativeBuildInputs = [ cmake pkg-config git wrapQtAppsHook ];

View File

@ -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}' <<EOF | curl -s -H "Authorization: bearer $GITHUB_TOKEN" -d '@-' https://api.github.com/graphql
payload=$(jq -cn --rawfile query /dev/stdin '{"query": $query}' <<EOF | curl -s -H "Authorization: bearer $GITHUB_TOKEN" -d '@-' https://api.github.com/graphql
{
repository(owner: "RPCS3", name: "rpcs3") {
branch: ref(qualifiedName: "refs/heads/master") {
@ -37,20 +37,23 @@ PAYLOAD=$(jq -cn --rawfile query /dev/stdin '{"query": $query}' <<EOF | curl -s
}
EOF
)
RPCS3_COMMIT=$(jq -r .data.repository.branch.target.oid <<< "$PAYLOAD")
RPCS3_MAJORVER=$(jq -r .data.repository.tag.nodes[0].name <<< "$PAYLOAD" | sed 's/^v//g')
RPCS3_COUNT=$(jq -r .data.repository.branch.target.history.totalCount <<< "$PAYLOAD")
RPCS3_GITVER="$RPCS3_COUNT-${RPCS3_COMMIT::9}"
echo "INFO: Latest commit is $RPCS3_COMMIT"
echo "INFO: Latest version is $RPCS3_MAJORVER-$RPCS3_GITVER"
commit_sha=$(jq -r .data.repository.branch.target.oid <<< "$payload")
major_ver=$(jq -r .data.repository.tag.nodes[0].name <<< "$payload" | sed 's/^v//g')
commit_count=$(jq -r .data.repository.branch.target.history.totalCount <<< "$payload")
git_ver="$commit_count-${commit_sha::9}"
final_ver="$major_ver-$git_ver"
RPCS3_SHA256=$(nix-prefetch-git --quiet --fetch-submodules https://github.com/RPCS3/rpcs3.git "$RPCS3_COMMIT" | jq -r .sha256)
echo "INFO: SHA256 is $RPCS3_SHA256"
echo "INFO: Latest commit is $commit_sha"
echo "INFO: Latest version is $final_ver"
nix_sha256=$(nix-prefetch-git --quiet --fetch-submodules https://github.com/RPCS3/rpcs3.git "$commit_sha" | jq -r .sha256)
echo "INFO: SHA256 is $nix_sha256"
sed -i -E \
-e "s/majorVersion\s+.+$/majorVersion = \"${RPCS3_MAJORVER}\";/g" \
-e "s/gitVersion\s+.+$/gitVersion = \"${RPCS3_GITVER}\";/g" \
-e "s/rev\s*=\s*\"[a-z0-9]+\";$/rev = \"${RPCS3_COMMIT}\";/g" \
-e "s/sha256\s*=\s*\"[a-z0-9]+\";$/sha256 = \"${RPCS3_SHA256}\";/g" \
-e "s/rpcs3GitVersion\s*=\s*\"[\.a-z0-9-]+\";$/rpcs3GitVersion = \"${git_ver}\";/g" \
-e "s/rpcs3Version\s*=\s*\"[\.a-z0-9-]+\";$/rpcs3Version = \"${final_ver}\";/g" \
-e "s/rpcs3Revision\s*=\s*\"[a-z0-9]+\";$/rpcs3Revision = \"${commit_sha}\";/g" \
-e "s/rpcs3Sha256\s*=\s*\"[a-z0-9]+\";$/rpcs3Sha256 = \"${nix_sha256}\";/g" \
"$ROOT/default.nix"