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
