summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Skip floating-point edge-case tests when using an x87
Forwarded: yes
Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/
311bbd2e50ea35e921a08186840d3b6ca279e880
32-bit Intel CPUs use 80-bit floats for intermediate values, which can
change the results of floating point computations from what we normally
expect. Identify tests that are sensitive to the x87, and skip them when
we’re on 32-bit Intel.
The author works at Google. Upstream applied this patch as Piper
revision
378722613 and exported it to GitHub; the Applied-Upstream URL
above points to the exported commit.
Gbp-Pq: Name float-tests-disable-i386.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Don’t examine irrelevant destination buckets in DiscreteDistributionTest
Forwarded: yes
Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/
7ba826e50dff1878e6ecc6b9af44097c040c8968
Abseil generates discrete distributions using Walker’s aliasing
algorithm. This creates uniformly distributed buckets, each with a
probability of sending traffic to a different bucket. Abseil represents
a bucket as a pair
(probability of retaining traffic ×
alternate bucket if traffic is passed)
and a distribution as a vector of such pairs. For example, {(0.3, 1),
(1.0, 1)} represents a distribution with two buckets, the zeroth of
which passes 70% of its traffic to bucket 1 and the first of which holds
on to all its traffic.
This representation is not unique: When a bucket retains traffic with
probability 1, the alternate bucket is irrelevant. Continuing the
example above, {(0.3, 1), (1.0, 0)} _also_ represents a two-bucket
distribution where the zeroth bucket passes 70% of its traffic to the
first and the first hangs on to all traffic. Exactly what representation
Abseil generates for a given input is related to how much precision is
used in intermediate floating-point operations, which is an
architectural implementation detail. Remove sensitivity to that detail
by not examining the alternate bucket when the retention probability is
1.0.
The author works at Google. Upstream applied this patch as Piper
revision
372993410 and exported it to GitHub; the Applied-Upstream URL
above points to the exported commit.
Gbp-Pq: Name DiscreteDistributionTest-irrelevant-destination-buckets.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Round floats using round(x), not static_cast<int>(x + 0.5)
Forwarded: yes
Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/
d96e287417766deddbff2d01b96321288c59491e
Adding 0.5 to an IEEE float may cause one bit of precision loss, which
is enough to change the result in certain cases. For example,
static_cast<int>(std::round(0.
49999999999999994)) == 0
static_cast<int>(0.
49999999999999994 + 0.5) == 1
The author works at Google. Upstream applied this patch as Piper
revision
369926519 and exported it to GitHub; the Applied-Upstream URL
above points to the exported commit.
Gbp-Pq: Name float-rounding.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Correct Thumb function bound computation in the symbolizer
Forwarded: yes
Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/
1ae9b71c474628d60eb251a3f62967fe64151bb2
On 32-bit ARM, all functions are aligned to multiples of two bytes, and
the lowest-order bit in a function’s address is ignored by the CPU when
computing branch targets. That bit is still present in instructions and
ELF symbol tables, though; it’s repurposed to indicate whether the
function contains ARM or Thumb code. If the symbolizer doesn’t ignore
that bit, it will believe Thumb functions have boundaries that are off
by one byte, so instruct the symbolizer to null out the lowest-order bit
after retrieving it from the symbol table.
The author works at Google. Upstream applied this patch as Piper
revision
369254082 and exported it to GitHub; the Applied-Upstream URL
above points to the exported commit.
Gbp-Pq: Name thumb-function-bounds.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Fix typo in CordRepRing error message
Forwarded: yes
Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/
b97a1ecda869ca8754d467a56c50275cebfeb328
The author works at Google. Upstream applied this patch as Piper
revision
367481280 and exported it to GitHub; the Applied-Upstream URL
above points to the exported commit.
Gbp-Pq: Name cordrepring-typo.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Eliminate libabsl_flags.so and libabsl_flags.a
Forwarded: not-needed
The libabsl_flags library only contains code when compiling with MSVC, which
Debian doesn't use. Skip compiling absl/flags/flag.cc, and make the Abseil flags
library header-only.
Gbp-Pq: Name empty-flags-library.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Use libatomic if necessary
Bug-Debian: https://bugs.debian.org/973492
On some architectures, notably armel, Abseil needs symbols defined in
libatomic. Abseil does not currently have a well-developed system to
declare external library dependencies, so just have the linker determine
if anything needs libatomic and add the DT_NEEDED entry where necessary.
Gbp-Pq: Name latomic.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Set package configuration options
Forwarded: not-needed
Configure Abseil for Debian.
- Set the SONAME appropriately.
- To minimize the possibility of future ABI breakage, treat absl::any,
absl::optional, absl::string_view, and absl::variant as their own types
(rather than aliases for the std:: versions), and compile everything in an
inline namespace.
- Enable upstream's hardened build mode.
- Disable Intel SSE2 on i386, since Debian supports some i386 processors
without that extension. Keep it enabled on amd64, since all amd64 processors
have it.
- Disable Intel SSSE3 entirely, since no i386 processor supports it and Debian
supports amd64 processors without it.
Gbp-Pq: Name configure.diff
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
abseil (0~
20210324.2-4) unstable; urgency=medium
* Fix "spurious -Wl flag in some pkg-config entries" by backporting a
patch from upstream that corrects CMake pkg-config generation.
(Closes: #
1011294)
[dgit import unpatched abseil 0~
20210324.2-4]
Benjamin Barenblat [Fri, 27 May 2022 20:58:38 +0000 (21:58 +0100)]
Import abseil_0~
20210324.2-4.debian.tar.xz
[dgit import tarball abseil 0~
20210324.2-4 abseil_0~
20210324.2-4.debian.tar.xz]
Benjamin Barenblat [Fri, 4 Feb 2022 18:11:32 +0000 (18:11 +0000)]
Import abseil_0~
20210324.2.orig.tar.gz
[dgit import orig abseil_0~
20210324.2.orig.tar.gz]