Skip to content

Merging upstream? (2026-07) #21

Description

@illwieckz

So I'm proposing doing a new round of merging from upstream, to reach current status of Google breakpad.
This for examples add support for more architectures and globally they likely not just moved things around.

We have two options:

  • Merging them over us, to keep the upstream commit history and our commit history.
  • Rebasing us over them, to also keep the upstream commit history but rewriting our commit history with a linear history.

If we rebase us over them, it's not a big problem, that's what we did the last time, and our previous branch ended into the legacy/unvanquished-0.51 branch.

If we merge them over us, here is a working branch:

This is a temporary branch rebasing them over us, which is not meant to be merged in anyway. But it's easier to solve git conflicts by solving them commits per commits one by one through a rebase than solving all git conflicts at once while merging. The idea is that once everything is fixed, then we can just do the merge of them over us and solve the merge conflicts by blindly copying verbatim the fixed rebase branch content and commit that in the merge commit.

What is remaining to do with the rebase branch is to check those commits for which the conflict solving are to be verified or finished:

  • Restructure Makefile conditionals/targets
    • This conflicted with the MinGW stuff and the change building against system curl
  • gyp: drop unused build system
    • This dropped gyp but the MinGW build used it for dump_syms_dwarf, see this comment in Makefile.am:
      # For MinGW, use gyp to generate a Makefile to build Windows client library
  • Fix inline_origin_map key collision when split dwarf is enabled.
    • It rewrote a code where our branch introduced some DWPREADER_WANTED ifdef.
  • enable git submodules support
    • It conflicted with our “Hard commit lss again” commit,
      right now the rebase use the introduced submodule, we may decide to do it that way.
    • As a side note the # src/third_party/lss line in .gitignore conflicted many time while rebasing,
      but if we do the merge and copy the result we don't have to care about the temporary rebase history of it.

The rest of the merge conflicts looked somewhat straightforward, especially most of the conflict where just us having deleted temporary autoconf generated leftover files the Google developer insist to commit every now and then.

The Restructure Makefile conditionals/targets commit was the most conflicting one, it's not surprised given the name.

And of course, we should check that the tools still build and run properly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions