summaryrefslogtreecommitdiff
path: root/debian/patches/big-endian-random4.diff
diff options
context:
space:
mode:
authorGravatar Benjamin Barenblat <bbaren@google.com>2022-08-22 17:49:57 -0400
committerGravatar Benjamin Barenblat <bbaren@google.com>2022-08-22 22:14:31 -0400
commit170e05ec7974a1b7b5133f638e71881925cc7e68 (patch)
treed8bc02dad030ba3023f771660d5fab1758b9321f /debian/patches/big-endian-random4.diff
parent104bbd297d624819b37428882c54eade8b6ab74d (diff)
Update patches
Bump SONAME and inline namespace in configuration, update location of SSE2 and SSSE3 configuration, and delete patches that have been applied upstream.
Diffstat (limited to 'debian/patches/big-endian-random4.diff')
-rw-r--r--debian/patches/big-endian-random4.diff71
1 files changed, 0 insertions, 71 deletions
diff --git a/debian/patches/big-endian-random4.diff b/debian/patches/big-endian-random4.diff
deleted file mode 100644
index 15110401..00000000
--- a/debian/patches/big-endian-random4.diff
+++ /dev/null
@@ -1,71 +0,0 @@
-From: Milad Fa <46688537+miladfarca@users.noreply.github.com>
-Subject: Fix Randen and PCG on Big Endian platforms (#1031)
-Forwarded: https://github.com/abseil/abseil-cpp/pull/1031
-Origin: upstream, https://github.com/abseil/abseil-cpp/commit/022527c50e0e2bc937f9fa3c516e3e36cbba0845
-
---- a/absl/random/internal/explicit_seed_seq.h
-+++ b/absl/random/internal/explicit_seed_seq.h
-@@ -74,7 +74,7 @@
- template <typename OutIterator>
- void generate(OutIterator begin, OutIterator end) {
- for (size_t index = 0; begin != end; begin++) {
-- *begin = state_.empty() ? 0 : little_endian::FromHost32(state_[index++]);
-+ *begin = state_.empty() ? 0 : state_[index++];
- if (index >= state_.size()) {
- index = 0;
- }
---- a/absl/random/internal/randen_engine.h
-+++ b/absl/random/internal/randen_engine.h
-@@ -121,6 +121,13 @@ void reseed(SeedSequence& seq) {
- const size_t requested_entropy = (entropy_size == 0) ? 8u : entropy_size;
- std::fill(std::begin(buffer) + requested_entropy, std::end(buffer), 0);
- seq.generate(std::begin(buffer), std::begin(buffer) + requested_entropy);
-+#ifdef ABSL_IS_BIG_ENDIAN
-+ // Randen expects the seed buffer to be in Little Endian; reverse it on
-+ // Big Endian platforms.
-+ for (sequence_result_type& e : buffer) {
-+ e = absl::little_endian::FromHost(e);
-+ }
-+#endif
- // The Randen paper suggests preferentially initializing even-numbered
- // 128-bit vectors of the randen state (there are 16 such vectors).
- // The seed data is merged into the state offset by 128-bits, which
---- a/absl/random/internal/randen_slow.cc
-+++ b/absl/random/internal/randen_slow.cc
-@@ -395,6 +395,23 @@
- }
- }
-
-+// Enables native loads in the round loop by pre-swapping.
-+inline ABSL_RANDOM_INTERNAL_ATTRIBUTE_ALWAYS_INLINE void SwapEndian(
-+ absl::uint128* state) {
-+#ifdef ABSL_IS_BIG_ENDIAN
-+ for (uint32_t block = 0; block < RandenTraits::kFeistelBlocks; ++block) {
-+ uint64_t new_lo = absl::little_endian::ToHost64(
-+ static_cast<uint64_t>(state[block] >> 64));
-+ uint64_t new_hi = absl::little_endian::ToHost64(
-+ static_cast<uint64_t>((state[block] << 64) >> 64));
-+ state[block] = (static_cast<absl::uint128>(new_hi) << 64) | new_lo;
-+ }
-+#else
-+ // Avoid warning about unused variable.
-+ (void)state;
-+#endif
-+}
-+
- } // namespace
-
- namespace absl {
-@@ -439,8 +456,12 @@ void RandenSlow::Generate(const void* keys_void, void* state_void) {
-
- const absl::uint128 prev_inner = state[0];
-
-+ SwapEndian(state);
-+
- Permute(state, keys);
-
-+ SwapEndian(state);
-+
- // Ensure backtracking resistance.
- *state ^= prev_inner;
- }