qualcomm / qualcomm/eld

eld behaves in a non-deterministic manner in the case of `Common/standalone/Patching/PatchSections/PatchSections.test`

Open
#577 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C++
Stars
259
Forks
84
Avg merge
2d 14h
Merged PRs (30d)
72

Description

eld currently behaves differently in case of the Common/standalone/Patching/PatchSections/PatchSections.test in windows and linux for RISC-V (both 64 and 32 bit).

The output seems to have an arbitrary order especially in case of:

82: Note: Internal Section : .rela.pgot Alignment : 0x4 Size : 0x0 Flags : NONE 
  
83: Note: Internal Section : .pgot Alignment : 0x4 Size : 0x0 Flags : SHF_ALLOC|SHF_WRITE

The above output is for the RISC-V backend on windows. On Linux the order seems to be flipped; and thus, eld exhibits non-deterministic behavior in the case of this test.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Common/standalone/Patching/PatchSections/PatchSections.test and compare its RISC-V output on Windows and Linux for both 32-bit and 64-bit targets. Focus on the ordering of the .rela.pgot and .pgot internal-section notes. Done means the test produces deterministic, matching output across the reported platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.