vercel-labs / vercel-labs/dev3000

Illegal instruction (SIGILL) on Intel Pentium Gold - binary requires AVX

Open
#98 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.6k
Forks
99
Avg merge
20m
Merged PRs (30d)
1

Description

Description

The d3k CLI crashes immediately with Illegal instruction (core dumped) on CPUs that lack AVX instruction set support. The pre-compiled @d3k/linux-x64 binary appears to be compiled with AVX/AVX2 instructions, which are not available on lower-end x86_64 processors.

Steps to Reproduce

  1. Install dev3000 on a machine with an Intel Pentium Gold (or similar CPU without AVX)
  2. Run d3k (or the binary directly)
  3. Observe: Illegal instruction (core dumped), exit code 132

Environment

  • OS: Ubuntu 24.04.4 LTS (Noble Numbat)
  • Kernel: 6.17.0-14-generic
  • CPU: Intel Pentium Gold G6400 @ 4.00GHz (x86_64, no AVX/AVX2)
  • Node.js: v22.14.0
  • dev3000 version: 0.0.170
  • @d3k/linux-x64 version: 0.0.170

Root Cause

The CPU flags on this machine include SSE4.1, SSE4.2, POPCNT, AES, but not AVX or AVX2. The Intel Pentium Gold G6400 (Comet Lake) does not support AVX.

The pre-compiled binary at @d3k/linux-x64/bin/dev3000 uses instructions beyond what this CPU supports, resulting in SIGILL.

Suggested Fix

Compile the Linux x64 binary targeting a baseline x86_64 instruction set (e.g., SSE4.2 or x86-64-v2) instead of requiring AVX/AVX2 (x86-64-v3). This would ensure compatibility with a wider range of x86_64 processors, including Intel Pentium, Celeron, and older Core series.

Alternatively, provide separate binaries for different x86-64 microarchitecture levels (v2, v3).

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 by inspecting the build configuration and packaging for the @d3k/linux-x64 binary, then reproduce the d3k launch on a CPU without AVX support. Determine which compiler target introduces AVX instructions. Done means the Linux x64 binary runs on the reported Pentium Gold without SIGILL while preserving supported functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
build-system, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.