Skip to content

reachability run --lang c can use the wrong llvm-link and pick .conftest as the artifact #3

Description

@h4ck0lympus

I started by putting together a PR for this, but realized I should have opened an issue first to document the problem clearly.

reachability run --lang c --project examples/bluez/ hit two C/C++ acquisition bugs:

  1. get-bc used an ambient llvm-link from PATH instead of the LLVM toolchain resolved by reachability.
  2. Artifact auto-detection selected .conftest.c.o from ./configure instead of a real built binary.

can be reproduced with bluez repo reachability run --lang c --project examples/bluez/ --out bluez-reachable-run/

First failure:

llvm-link: ... error: Invalid attribute group entry (Producer: 'LLVM22.1.8' Reader: 'LLVM 18.1.3')

After fixing that, second failure:

  artifact: .conftest.c.o
  error: analyzer failed (exit 1):
  error: no entry symbol resolved. Requested: main LLVMFuzzerTestOneInput

Expected

  • C/C++ bitcode extraction should use the same resolved LLVM toolchain as reachability check-toolchain, including llvm-link.
  • Artifact detection should ignore autotools probe files like .conftest* and prefer real executables over stray object files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions