Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linkage_checker: add libquadmath #14653

Merged
merged 1 commit into from Feb 17, 2023

Conversation

danielnachun
Copy link
Member

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example.
  • Have you successfully run brew style with your changes locally?
  • Have you successfully run brew typecheck with your changes locally?
  • Have you successfully run brew tests with your changes locally?

We have noticed in Homebrew/homebrew-core#123264 that libquadmath.so.0 is also provided by GCC. This is primarily used by Fortran applications (in which case libquadmath.so.0 is provided by brewed GCC), but on occasion C or C++ programs link to this as well and brew audit should allow linkage to the system version of this library.

@BrewTestBot
Copy link
Member

Review period will end on 2023-02-17 at 03:22:02 UTC.

@BrewTestBot BrewTestBot added the waiting for feedback Merging is blocked until sufficient time has passed for review label Feb 16, 2023
@Bo98
Copy link
Member

Bo98 commented Feb 16, 2023

Is it commonly installed by default by the system though? We keep our system dependencies minimal to what are provided by default in virtually all distributions (glibc, libstdc++, libgcc_s, etc.).

If the system version of library wasn't found, it's not like brew will auto install GCC - it will try to build from source instead, which isn't an optimal experience.

@carlocab carlocab requested a review from a team February 16, 2023 04:08
Copy link
Member

@iMichka iMichka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's preinstalled (on docker at least, with ubuntu 22). I think it's just part of the standard gcc installation (under /usr/lib/gcc/x86_64-linux-gnu/11/libquadmath.so).
We ask our users to have gcc installed on Linux as part of the build essentials or development tools.

Change looks good to me.

@Bo98
Copy link
Member

Bo98 commented Feb 16, 2023

We ask our users to have gcc installed on Linux as part of the build essentials or development tools.

We might suggest it in places but we do not require the full GCC toolchain to be installed anymore.

It's not been required for a while, but it was only cleaned up from documentation last year: 1882ae4

At the moment however, we do check /usr/bin/gcc but that really ought to be rewritten to check libstdc++.so instead as the current logic is incorrect on Debian 11. So we do perhaps have an accidental requirement on the dev toolchain due to that bug, and can get away with allowing libquadmath as a result.

@Bo98
Copy link
Member

Bo98 commented Feb 16, 2023

For some reason I actually misread this PR as libgfortran at first, which definitely isn't always installed as standard but is a part of the full GCC toolchain we provide.

libquadmath however we can probably get away with so I'm fine either way.

@carlocab
Copy link
Member

algol68g will need a Linux bottle dispatched when this is merged.

@cho-m
Copy link
Member

cho-m commented Feb 16, 2023

On Debian/Ubuntu, libquadmath0 is pulled in via https://packages.debian.org/sid/libgcc-11-dev

What is required minimal packages to install on Fedora? I don't think the 64-bit library (libquadmath) is automatically pulled in with gcc.

For example, Fedora's algol68g package has a direct dependency on libquadmath - https://packages.fedoraproject.org/pkgs/algol68g/algol68g/fedora-rawhide.html#dependencies

@MikeMcQuaid
Copy link
Member

Disabling auto-merge for now so this is in 4.0.2 not 4.0.1.

Copy link
Member

@iMichka iMichka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Fedora/centos we ask for the 'Development tools' package.
https://docs.brew.sh/Homebrew-on-Linux#requirements

This brings in gcc. But we will to ask our users to install gcc-gfortran for that platform.

Should algol68g not depend on gcc instead?

@BrewTestBot BrewTestBot removed the waiting for feedback Merging is blocked until sufficient time has passed for review label Feb 17, 2023
@BrewTestBot
Copy link
Member

Review period ended.

@MikeMcQuaid MikeMcQuaid merged commit c3ba295 into Homebrew:master Feb 17, 2023
@github-actions github-actions bot added the outdated PR was locked due to age label Mar 20, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants