SIGN IN SIGN UP

Rollup merge of #161484 - ItsNoHax:psp-discard-pdr, r=nnethercote

Discard `.pdr` in the PSP linker script

The `mipsel-sony-psp` target passes `--emit-relocs` and relies on `--gc-sections`. `.pdr` (MIPS procedure-descriptor debug data) is not allocated, so it survives collection, but the relocations kept for it still point at the functions that *were* collected. rust-lld reports every one of those:

```
rust-lld: relocation refers to a discarded section: .text._RNvNtNtCs1mwba6qCgei_4libm4math3log3log
>>> referenced by libm-...-cgu.3.rcgu.o:(.rel.pdr+0xbfa0) in archive .../liblibm-....rlib
```

A hello-world picks up **70** of these. They were always emitted; they only became visible when cargo stopped suppressing linker output, and are now reported by the `linker_messages` lint. Reported downstream as overdrivenpotato/rust-psp#203.

Nothing on the PSP reads `.pdr`, so this discards it alongside the non-loadable sections the script already drops (`.MIPS.abiflags`, `.reginfo`). Discarding `.pdr` also removes `.rel.pdr`, since `--emit-relocs` only emits relocations for sections that survive.

### Verification

Building `rust-psp`'s `ci/tests` suite and running it on PPSSPP:

|                        | before      | after       |
| ---------------------- | ----------- | ----------- |
| discarded-section warnings | 70      | **0**       |
| `EBOOT.PBP` size       | 1,395,948 B | 1,264,396 B (−9.4%) |
| test suite             | 47 pass / 0 fail | 47 pass / 0 fail (`FINAL_SUCCESS`) |

Since the linker script lives in the target spec, I validated the exact change by building against a patched `--print target-spec-json` copy of the target, and cross-checked it by passing an equivalent `/DISCARD/` fragment as an extra `--script` to a normal `cargo psp` build. Both give the same result.

This is the target's own linker script and affects no other target. The remaining warnings in that issue have a separate cause (`EF_MIPS_CPIC`) and are handled in a follow-up PR.
J
Jacob Pratt committed
968898af59c871e8badfc47c1a03b4fb6026bec3
Committed by GitHub <noreply@github.com> on 8/25/2026, 8:53:50 AM