[llvm-dev] LLD Command Line Length Error

Harry Wagstaff via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 24 06:43:02 PDT 2019


Hi all,

I'm currently trying to use clang to build a largish project on Windows
using MinGW. I'm currently performing all of the compilation using g++, and
then linking with clang++ with lld (due to separate issues I'm having with
compiling with clang with MinGW). Compiling with g++ and then linking with
clang+lld seems to work fine for small programs.

I'm invoking clang++ something like this:
$ clang++ -target x86_64-pc-windows-gnu -fuse-ld=lld {lots of linker
parameters} @{path to a response file}

I then receive an error message:
clang++: error: unable to execute command: Couldn't execute program '(path
to ld.lld)': The filename or extension is too long.

If I then rerun clang++ with -v, I get the full command line passed to lld
(which is approximately 44KB). It looks like there was previously a patch
that tried to address this issue for certain platforms (
https://reviews.llvm.org/rL334295) but this doesn't seem to have fixed the
issue in my case.

Is there some way to work around this issue? Since the decision of whether
to use a response file or not seems to be based on a heuristic ('keep half
of the space available for environment variables'), perhaps an option
should be provided to force a response file to be used?

Thanks,
Harry Wagstaff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190724/2c3f0b1a/attachment.html>


More information about the llvm-dev mailing list