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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions