ocaml / ocaml/flexdll

line in response file wrongly interpreted as option by MSVC linker

Open
#8 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
OCaml
Stars
115
Forks
34
PR merge metrics
No merged PRs in 30d

Description

In win64 environment, a file to be linked may be of the form \server\path\to\obj

If the command line is too long, this is dumped into a response file, but the function build_diversion in reloc.ml, specifically converts file-paths to use "/" instead of "". As a result the above file is interpreted as an option to the "link" command then fails to link files.

There does not seem to be an easy workaround to this problem, as the option to use response file is not user-controllable

Contributor guide

No contributing guide indexed for this repository

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 in reloc.ml at build_diversion and inspect how file paths are written into response files for the win64/MSVC linker. Reproduce the UNC-path case described in the issue, then verify that the response-file entry is no longer interpreted as a linker option and that linking succeeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
ocaml
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.