Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions eng/pipelines/coreclr/templates/setup-sccache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,20 @@ steps:
# Set up the Azure Pipeline Cache for sccache's local cache directory.
# Use a rolling key so each build can update the cache; restoreKeys
# falls back to the most recent saved entry.
#
# buildConfig is intentionally excluded from the key: it reflects
# the *managed* Configuration (Debug for PRs, Release for rolling
# builds), but sccache only caches native (C/C++) compilations whose
# flags are controlled by RuntimeConfiguration (-rc), which is
# constant per leg regardless of buildConfig. Omitting it lets PR
# builds warm-start from rolling-build caches saved in the main scope.
- task: Cache@2
displayName: Sccache cache
inputs:
key: sccache | ${{ parameters.osGroup }} | ${{ parameters.archType }} | ${{ parameters.nameSuffix }} | ${{ parameters.buildConfig }} | "$(Build.BuildId)"
key: sccache | ${{ parameters.osGroup }} | ${{ parameters.archType }} | ${{ parameters.nameSuffix }} | "$(Build.BuildId)"
path: $(Pipeline.Workspace)/.sccache
restoreKeys: |
sccache | ${{ parameters.osGroup }} | ${{ parameters.archType }} | ${{ parameters.nameSuffix }} | ${{ parameters.buildConfig }}
sccache | ${{ parameters.osGroup }} | ${{ parameters.archType }} | ${{ parameters.nameSuffix }}

# Configure sccache environment and add binary to PATH.
# The sccache package is restored by runtime-prereqs.proj during the build.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ public partial CngKey GetKey()
throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
}

protected override partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination)
protected override unsafe partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination)
{
throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public partial CngKey GetKey()
return CngHelpers.Duplicate(_key.HandleNoDuplicate, _key.IsEphemeral);
}

protected override partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination)
protected override unsafe partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination)
{
// We intentionally don't special case otherParty being an instance of X25519DiffieHellmanCng and always
// export the public key into the current instance's provider.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public sealed partial class X25519DiffieHellmanCng : X25519DiffieHellman
public partial CngKey GetKey();

/// <inheritdoc/>
protected override partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination);
protected override unsafe partial void DeriveRawSecretAgreementCore(X25519DiffieHellman otherParty, Span<byte> destination);

/// <inheritdoc/>
protected override partial void ExportPublicKeyCore(Span<byte> destination);
Expand Down
Loading