Hello Sergey, or anyone else affected,

Accepted abseil into jammy-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/abseil/0~20210324.2-2ubuntu0.3 in a
few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
jammy to verification-done-jammy. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-jammy. In either case, without details of your testing we will
not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Description changed:

  [ Impact ]
  * Abseil pkg-config file is broken, causing build failures to pkg-config 
related projects if gcc is used as compiler
  
  [ Test Plan ]
  * There is a new autopkgtest to check specifically this:
  
  echo 'int main() {}' >noop.cc
  
  g++ -o noop noop.cc $(pkg-config --cflags absl_base) $(pkg-config --libs
  absl_base)
  
  [ Where problems could occur ]
  * If a program failing to build previously with this patch it might compile 
correctly :)
+ * If bogus, the change could introduce unwanted linker flags that could 
manifest itself as different build errors, or incorrect builds.
  
  [ Other Info ]
  
  The fix is a cherry-pick of a newer Debian release with the cherry-pick
  of the same upstream patch
  
  1. Release version
  /$ lsb_release -rd
  Description:  Ubuntu 22.04.1 LTS
  Release:      22.04
  
  2. Package version.
  /$ apt-cache policy libabsl-dev
  libabsl-dev:
    Installed: 0~20210324.2-2
    Candidate: 0~20210324.2-2
    Version table:
   *** 0~20210324.2-2 500
          500 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 
Packages
          100 /var/lib/dpkg/status
  
  3. Expected behavior:
  Correctly compile using GNU GCC or Clang compilers.
  
  4. Observed behavior:
  GNU GCC reports error. Clang compiles fine though (ignores the malformed 
input).
  
  5. Detailed description
  Installed libabsl-dev package via apt install to use its hashmap within C++.
  
  Added AX_PKG_CHECK_MODULES([ABSL], [], [absl_flat_hash_set]) to my 
configure.ac and respectively, added the $(ABSL_CFLAGS) and $(ABSL_LIBS) to my 
target's CFLAGS and LDADD within Makefile.am.:
  test_bench_hsd_CFLAGS = $(AM_CFLAGS) $(CATCH2_CFLAGS) $(ABSL_CFLAGS)
  test_bench_hsd_LDADD = $(HASHER_LIB) $(TEST_LIBS) $(CATCH2_LIBS) $(ABSL_LIBS)
  
  Here's the resulting libtool command that will generate erroneous g++ options:
  /bin/bash ./libtool  --tag=CXX   --mode=link g++ -std=c++17 -W -Wall -Wextra 
-Wnon-virtual-dtor -pedantic -pipe -O3 -g -g -O2  -g 
-L/usr/lib/x86_64-linux-gnu -L/home/ubuntu/make_world/install/lib -o 
test/bench_hsd test/bench_hashset.o src/lib/libhasher.la  
-L/home/ubuntu/make_world/install/lib -lCatch2Main -lCatch2 -labsl_cord 
-labsl_hash -labsl_city -labsl_bad_variant_access -labsl_wyhash 
-labsl_raw_hash_set -labsl_bad_optional_access -labsl_hashtablez_sampler 
-labsl_exponential_biased -labsl_synchronization -labsl_graphcycles_internal 
-labsl_stacktrace -Wl -labsl_symbolize -labsl_debugging_internal 
-labsl_demangle_internal -labsl_malloc_internal -labsl_time -labsl_civil_time 
-labsl_strings -labsl_strings_internal -Wl -labsl_base -labsl_spinlock_wait 
-labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal 
-labsl_log_severity -labsl_time_zone
  
  The generated g++ then had '-Wl -Wl' in its options and that caused the error:
  libtool: link: g++ -std=c++17 -W -Wall -Wextra -Wnon-virtual-dtor -pedantic 
-pipe -O3 -g -g -O2 -g -o test/.libs/bench_hsd test/bench_hashset.o -Wl -Wl  
-L/usr/lib/x86_64-linux-gnu -L/home/ubuntu/make_world/install/lib 
src/lib/.libs/libhasher.so -lCatch2Main -lCatch2 -labsl_cord -labsl_hash 
-labsl_city -labsl_bad_variant_access -labsl_wyhash -labsl_raw_hash_set 
-labsl_bad_optional_access -labsl_hashtablez_sampler -labsl_exponential_biased 
-labsl_synchronization -labsl_graphcycles_internal -labsl_stacktrace 
-labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal 
-labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_strings 
-labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_int128 
-labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity 
-labsl_time_zone -Wl,-rpath -Wl,/home/ubuntu/make_world/install/lib
  g++: error: unrecognized command-line option '-Wl'; did you mean '-W'?
  g++: error: unrecognized command-line option '-Wl'; did you mean '-W'?
  
  Printing the ABSL_LIBS from within Makefile reveled that there were two 
occurrences of  '-Wl':
  Makefile:1221: ABSL_LIBS: -labsl_cord -labsl_hash -labsl_city 
-labsl_bad_variant_access -labsl_wyhash -labsl_raw_hash_set 
-labsl_bad_optional_access -labsl_hashtablez_sampler -labsl_exponential_biased 
-labsl_synchronization -labsl_graphcycles_internal -labsl_stacktrace -Wl 
-labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal 
-labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_strings 
-labsl_strings_internal -Wl -labsl_base -labsl_spinlock_wait -labsl_int128 
-labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity 
-labsl_time_zone
  
  Further, I checked the .pc files and found that they have those '-Wl' keys 
that should not be there:
  /$ grep -r '\-Wl' /usr/lib/x86_64-linux-gnu/pkgconfig/ | grep '\-Wl'
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_salted_seed_seq.pc:Libs:
 -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_pool_urbg.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_pool_urbg
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_symbolize.pc:Libs: -L${libdir} -Wl 
-labsl_symbolize
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_btree.pc:Libs: -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_fast_type_id.pc:Libs: -L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_private_handle_accessor.pc:Libs: 
-L${libdir} -Wl -labsl_flags_private_handle_accessor
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_strerror.pc:Libs: -L${libdir} -Wl 
-labsl_strerror
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_randen_hwaes_impl.pc:Libs:
 -L${libdir} -Wl -labsl_random_internal_randen_hwaes_impl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_randen.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_randen
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_nonsecure_base.pc:Libs:
 -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_base.pc:Libs: -L${libdir} -Wl 
-labsl_base
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags.pc:Libs: -L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_generate_real.pc:Libs: 
-L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_program_name.pc:Libs: 
-L${libdir} -Wl -labsl_flags_program_name
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_randen_slow.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_randen_slow
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_bit_gen_ref.pc:Libs: 
-L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_randen_engine.pc:Libs: 
-L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_mock_helpers.pc:Libs: 
-L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_reflection.pc:Libs: 
-L${libdir} -Wl -labsl_flags_reflection
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_usage.pc:Libs: -L${libdir} -Wl 
-labsl_flags_usage
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_commandlineflag.pc:Libs: 
-L${libdir} -Wl -labsl_flags_commandlineflag
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_distributions.pc:Libs: 
-L${libdir} -Wl -labsl_random_distributions
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_wide_multiply.pc:Libs: 
-L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_seed_gen_exception.pc:Libs: 
-L${libdir} -Wl -labsl_random_seed_gen_exception
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_config.pc:Libs: -L${libdir} 
-Wl -labsl_flags_config
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_iostream_state_saver.pc:Libs:
 -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_path_util.pc:Libs: -L${libdir} 
-Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_parse.pc:Libs: -L${libdir} -Wl 
-labsl_flags_parse
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_marshalling.pc:Libs: 
-L${libdir} -Wl -labsl_flags_marshalling
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_platform.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_platform
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_distribution_test_util.pc:Libs:
 -L${libdir} -Wl -labsl_random_internal_distribution_test_util
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_seed_sequences.pc:Libs: 
-L${libdir} -Wl -labsl_random_seed_sequences
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_traits.pc:Libs: 
-L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_fastmath.pc:Libs: 
-L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_uniform_helper.pc:Libs:
 -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_internal.pc:Libs: -L${libdir} 
-Wl -labsl_flags_internal
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_distribution_caller.pc:Libs:
 -L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_randen_hwaes.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_randen_hwaes
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_fast_uniform_bits.pc:Libs:
 -L${libdir} -Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_usage_internal.pc:Libs: 
-L${libdir} -Wl -labsl_flags_usage_internal
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_random.pc:Libs: -L${libdir} 
-Wl
  /usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_pcg_engine.pc:Libs: 
-L${libdir} -Wl
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_random_internal_seed_material.pc:Libs: 
-L${libdir} -Wl -labsl_random_internal_seed_material
  
/usr/lib/x86_64-linux-gnu/pkgconfig/absl_flags_commandlineflag_internal.pc:Libs:
 -L${libdir} -Wl -labsl_flags_commandlineflag_internal
  
  6. Additional info:
  /$ g++ --version
  g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
  ...
  
  /$ libtoolize --version
  libtoolize (GNU libtool) 2.4.6
  ...
  
  /$ autoconf --version
  autoconf (GNU Autoconf) 2.71
  ...
  
  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: libabsl-dev 0~20210324.2-2
  ProcVersionSignature: User Name 5.15.0-1028.32-aws 5.15.74
  Uname: Linux 5.15.0-1028-aws x86_64
  ApportVersion: 2.20.11-0ubuntu82.3
  Architecture: amd64
  CasperMD5CheckResult: unknown
  Date: Thu Feb  2 14:30:31 2023
  Ec2AMI: ami-00874d747dde814fa
  Ec2AMIManifest: (unknown)
  Ec2AvailabilityZone: us-east-1f
  Ec2InstanceType: m6i.2xlarge
  Ec2Kernel: unavailable
  Ec2Ramdisk: unavailable
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=C.UTF-8
   SHELL=/bin/bash
  SourcePackage: abseil
  UpgradeStatus: No upgrade log present (probably fresh install)

** Changed in: abseil (Ubuntu Jammy)
       Status: In Progress => Fix Committed

** Tags added: verification-needed verification-needed-jammy

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2004577

Title:
  [SRU] Issue with libabsl-dev

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/abseil/+bug/2004577/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to