Kernel execve returns ENOEXEC but ld.so runs fine — readelf attached — Oracle Linux 10 — x86_64
- Lingua principale
- Shell
- Stelle
- 11.2k
- Fork
- 1.9k
- Merge medio
- 14h 16m
- PR unite (30g)
- 6
Descrizione
### Describe the bug
I was unable to run the Github copilot CLI on Oracle Linux 10 when installing though npm. After troubleshooting, I discovered that I am able to run the copilot binary when forcing it to execute via ld directly, but unable when executing the binary normally.
### Affected version
GitHub Copilot CLI 1.0.78
### Steps to reproduce the behavior
1. Run `npm install -g @github/copilot
2. Run `copilot`
### Expected behavior
Copilot launches normally
### Additional context
### Versions
OS: Oracle Linux 10.2
Architecture: x86_64
Node version: v26.6.0
npm version: 12.0.2
Package version: 1.0.78
### INFO DUMPS
**strace -f ./copilot 2>&1 | head -5**
execve("./copilot", ["./copilot"], 0x7fffb7528e98 /* 37 vars */) = -1 ENOEXEC (Exec format error)
strace: exec: Exec format error
+++ exited with 1 +++
**readelf -lW ./copilot | head -30**
Elf file type is EXEC (Executable file)
Entry point 0x7e0b20
There are 14 program headers, starting at offset 46079092
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x2bf1c74 0x0000000002ff1c74 0x0000000002ff1c74 0x00e38c 0x00e38c R 0x8
INTERP 0x000318 0x0000000000400318 0x0000000000400318 0x00001c 0x00001c R 0x1
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
LOAD 0x000000 0x0000000000400000 0x0000000000400000 0x33cda8 0x33cda8 R 0x1000
LOAD 0x33d000 0x000000000073d000 0x000000000073d000 0x28c3000 0x28c3000 R E 0x2000
LOAD 0x2c00000 0x0000000003000000 0x0000000003000000 0x0006a1 0x0006a1 R E 0x200000
LOAD 0x2c01000 0x0000000003001000 0x0000000003001000 0x3891cea 0x3891cea R 0x1000
LOAD 0x64935e8 0x00000000068945e8 0x00000000068945e8 0x02e1b8 0x066b40 RW 0x1000
LOAD 0x6500000 0x000000000e500000 0x000000000e500000 0x43c0000 0x43c0000 R 0x1000
DYNAMIC 0x6495bb0 0x0000000006896bb0 0x0000000006896bb0 0x000200 0x000200 RW 0x8
NOTE 0x6500000 0x000000000e500000 0x000000000e500000 0x43b245c 0x43b245c R 0x4
TLS 0x64935e8 0x00000000068945e8 0x00000000068945e8 0x000004 0x0001a8 R 0x8
GNU_EH_FRAME 0x60264c4 0x00000000064264c4 0x00000000064264c4 0x0c755c 0x0c755c R 0x4
GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10
GNU_RELRO 0x64935e8 0x00000000068945e8 0x00000000068945e8 0x003a18 0x003a18 R 0x1
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt
03 .init .plt .text
04 lpstub malloc_hook .fini
**uname -r**
6.12.0-204.92.4.4.el10uek.x86_64
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia riproducendo il problema con `copilot` e ispeziona l’eseguibile `./copilot` usando i comandi `strace` e `readelf` forniti su Oracle Linux 10. Confronta il modo in cui l’artefatto installato viene impacchettato e avviato negli ambienti supportati; il lavoro è completato quando il comando `copilot` installato si avvia normalmente senza invocare direttamente `ld.so`.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- linux, nodejs, shell
- Ambito
- cli, operating-systems
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100