Thank you.  I wanted to mention that on Linux, even when using a response
file, we still encounter the same issue if the response file exceeds 128KB
in size.

Does this imply that GCC enforces a limit on individual command-line
arguments (including those in response files) such that no argument should
exceed 128KB?

Best Regards,
Geeta D

On Mon, Feb 3, 2025 at 10:08 AM Andrew Pinski <pins...@gmail.com> wrote:

> On Sun, Feb 2, 2025 at 8:31 PM Geeta Dora via Gcc-bugs
> <gcc-bugs@gcc.gnu.org> wrote:
> >
> > Dear GCC Developers,
> >
> > I encountered an issue where GCC fails to compile when the total
> > command-line argument
> > size exceeds 128KB.
> >
> > In contrast, Clang can handle the same compilation scenario without
> issues.
> >
> > Is this a known limitation in GCC, and are there any workarounds or plans
> > to address this?
> > Would response files (e.g., @file) be recommended for cases like this?
>
> Yes a response file will solve this issue. The limit for command lines
> is much smaller under windows and that is why they were done in the
> first place to workaround the limitations there.
>
> >
> > I'm looking forward to hearing your thoughts.
> >
> > Reproduction Steps: (Applicable to all versions of gcc)
> >
> > 1) echo 'int main() { return 0; }' > test.c
> > 2) ARGS=$(perl -e 'print "-I/tmp " x 16384')
> > 3) gcc test.c $ARGS -o test
> >
> > gcc: fatal error: cannot execute ‘/usr/lib/gcc/x86_64-linux-gnu/11/cc1’:
> > execv: Argument list too long
> > compilation terminated.
> >
> > However, clang can able to produce output.
>
> Well clang is not exactly a driver and links directly against the
> front-ends so it does not need to call out to other programs*.
>
> *) The exception is the linker so you will run into issues there if
> you have a lot of files to link against.
>
> Thanks,
> Andrew Pinski
>
> >
> > Best Regards,
> > Geeta D
>

Reply via email to