[PATCH] alpha: don't merge .got subsections once GPREL relocs exist

Project / Subsystem

binutils / alpha

Date

2026-09-26

Proposer

Matt Turner <mattst88@gmail.com>

Source type

public_inbox

Consensus

Proposed

Sentiment

—/10

Technical tradeoffs

  • • Prevents a relocation error by adding a new flag and conditional logic, ensuring correctness at the cost of slightly more complex linker state management.

All attributes

project
binutils
subsystem
alpha
patch_id
—
discussion_id
20260926165132.1054779-1-mattst88@gmail.com
source_type
public_inbox
title
[PATCH] alpha: don't merge .got subsections once GPREL relocs exist
headline
alpha: don't merge .got subsections once GPREL relocs exist
tldr
Fixes binutils linker bug on alpha where merging .got subsections after GPREL relocs are created leads to relocation errors.
proposer
Matt Turner <mattst88@gmail.com>
consensus
Proposed
outcome
proposed
sentiment_score
—
technical_tradeoffs
  • • Prevents a relocation error by adding a new flag and conditional logic, ensuring correctness at the cost of slightly more complex linker state management.
series_id
—
series_role
standalone
series_parts
[]
tags
  • • binutils
  • • linker
  • • alpha
  • • relocation
  • • optimization
bugzilla_url
—
date
2026-09-26T00:00:00.000Z

[PATCH] alpha: don't merge .got subsections once GPREL relocs exist

This patch modifies the alpha ELF linker to prevent merging of .got subsections after Global Pointer Relative (GPREL) relocations are created. A previous change disabled merging after the first relaxation pass, but the linker’s re-evaluation of layout can restart relaxation from pass zero, leading to incorrect merges and relocation truncation errors.