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

gdb multi-arch v13.2 #69

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

gdb multi-arch v13.2 #69

wants to merge 1 commit into from

Conversation

noahp
Copy link
Contributor

@noahp noahp commented Dec 4, 2023

I took the opportunity to rename the output binaries to have the
multi-arch- prefix, because it's really confusing to me to have gdb
not be native gdb when in a conda environment with this package
installed.

No longer need our ARM backtrace patch, it's now fixed in GDB upstream.

Refreshed the conda_build_config.yaml to use the latest conda-build
feedstock version at time of writing:

❯ curl -sSL https://github.com/conda-forge/conda-forge-pinning-feedstock/raw/main/recipe/conda_build_config.yaml > gdb-multi-arch/conda_build_config.yaml

Which is
https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/41ef3139dd637914a18f9609bf3d33a2f4780376/recipe/conda_build_config.yaml
.

This changes the supported + built python targets to:

  • 3.8
  • 3.9
  • 3.10
  • 3.11

And include readelf in the package (multi-arch-readelf), since it
can be pretty handy.

Also, shfmt the build script too since I'm in here.

We need a new patch to eliminate some new warning messages and an
assert in set_lang, which impacts some pathological symbol files. see
gdb-13.2.patch for details.

To successfully build this on osx-x64, I needed to symlink a brew install m4 copy of the m4 binary into the system tool path so conda
would use it:

sudo mv /Library/Developer/CommandLineTools/usr/bin/gm4{,.bak}
sudo ln -s /usr/local/Cellar/m4/1.4.19/bin/m4 /Library/Developer/CommandLineTools/usr/bin/gm4

The old gm4 bin doesn't support a --gnu flag that newer bison + flex
use during the build.

Lastly, I also added zstd as a host + run dep, so it correctly is
rpath'd into the binary.

@noahp noahp requested a review from a team as a code owner December 4, 2023 22:48
@noahp
Copy link
Contributor Author

noahp commented Dec 4, 2023

Apologies for the churn :( we actually do need a 13.2, 14.1 has some changes that are not ideal so we'll wait to see if things improve in 14.2.

@noahp noahp force-pushed the noahp/gdb-13.2 branch 5 times, most recently from fedba40 to a4d8c1a Compare December 6, 2023 19:11
@@ -10,7 +10,9 @@ jobs:
name: 🛠️ build on ${{ matrix.platform }}

strategy:
fail-fast: true
# let all jobs run to completion. the linux one may succeed when the mac
# fails (taking a completely random example scenario 😑)
Copy link
Member

Choose a reason for hiding this comment

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

Salty much? 😆

I took the opportunity to rename the output binaries to have the
`multi-arch-` prefix, because it's really confusing to me to have `gdb`
not be native `gdb` when in a conda environment with this package
installed.

No longer need our ARM backtrace patch, it's now fixed in GDB upstream.

Refreshed the `conda_build_config.yaml` to use the latest conda-build
feedstock version at time of writing:

```bash
❯ curl -sSL https://github.com/conda-forge/conda-forge-pinning-feedstock/raw/main/recipe/conda_build_config.yaml > gdb-multi-arch/conda_build_config.yaml
```

Which is
https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/41ef3139dd637914a18f9609bf3d33a2f4780376/recipe/conda_build_config.yaml
.

This changes the supported + built python targets to:

- 3.8
- 3.9
- 3.10
- 3.11

And include `readelf` in the package (`multi-arch-readelf`), since it
can be pretty handy.

Also, `shfmt` the build script too since I'm in here.

We need a new patch to eliminate some new `warning` messages and an
assert in `set_lang`, which impacts some pathological symbol files. see
`gdb-13.2.patch` for details.

To successfully build this on osx-x64, I needed to symlink a `brew
install m4` copy of the m4 binary into the system tool path so conda
would use it:

```bash
sudo mv /Library/Developer/CommandLineTools/usr/bin/gm4{,.bak}
sudo ln -s /usr/local/Cellar/m4/1.4.19/bin/m4 /Library/Developer/CommandLineTools/usr/bin/gm4
```

The old `gm4` bin doesn't support a `--gnu` flag that newer bison + flex
use during the build.

Lastly, I also added `zstd` as a host + run dep, so it correctly is
`rpath`'d into the binary.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants