[LLVMdev] RFC: Adding an option to llvm-link to allow it to get a list of input bitcode file names from a file

Liu, Yaxun (Sam) Yaxun.Liu at amd.com
Thu Sep 20 13:16:01 PDT 2012


Well, although cl::ParseCommandLineOptions contains support for @file. By default it is disabled, which is the case for llvm-link.

To enable @file support in llvm-link, a small change is needed:

--- llvm-link.cpp.orig  2012-09-20 16:10:50.000000000 -0400
+++ llvm-link.cpp       2012-09-20 16:11:24.000000000 -0400
@@ -83,7 +83,7 @@

   LLVMContext &Context = getGlobalContext();
   llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n", true);

   unsigned BaseArg = 0;
   std::string ErrorMessage;

Sam

-----Original Message-----
From: Liu, Yaxun (Sam) 
Sent: Thursday, September 20, 2012 2:59 PM
To: 'Nick Lewycky'
Cc: 'llvmdev at cs.uiuc.edu'
Subject: RE: [LLVMdev] RFC: Adding an option to llvm-link to allow it to get a list of input bitcode file names from a file

Just found llvm-link (and other llvm commands) have already supported @file through cl::ParseCommandLineOptions, therefore no change is needed. Thanks.

Sam

-----Original Message-----
From: Liu, Yaxun (Sam)
Sent: Thursday, September 13, 2012 3:06 PM
To: 'Nick Lewycky'
Cc: llvmdev at cs.uiuc.edu
Subject: RE: [LLVMdev] RFC: Adding an option to llvm-link to allow it to get a list of input bitcode file names from a file

It seems clang supports @file.

http://llvm.org/svn/llvm-project/cfe/trunk/tools/driver/driver.cpp

So maybe it is a better idea to let llvm-link support @file instead of adding a new option.

Sam
-----Original Message-----
From: Nick Lewycky [mailto:nicholas at mxc.ca]
Sent: Thursday, September 13, 2012 2:33 PM
To: Liu, Yaxun (Sam)
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] RFC: Adding an option to llvm-link to allow it to get a list of input bitcode file names from a file

Liu, Yaxun (Sam) wrote:
> I am proposing to add an option to llvm-link allow it to get a list of 
> input bitcode file names from a file.
>
> The reason is that there is a limitation for command line length which 
> limits the number of input bitcode files that can be passed to 
> llvm-link. By adding this option we can bypass such limitation.
>
> The name of the option can be discussed. My initial proposal would be 
> -input-file-list.

It's common for tools to accept "@file" as an argument that means "read options from file", where options may include both flags and positional arguments (ie., more input files). For instance, gcc, as and ld all support @file.

I realize this is more complicated than just reading in a list of input bitcode files, but I think the right fix is to teach llvm to support this. (It looks like clang already does? What are they doing?)

Nick

> Each line of the list file is a path to an input bitcode file.
>
> If this option is given, no input bitcode file names are allowed in 
> the command line. If input bitcode file names are given in the command 
> line, this option is not allowed.
>
> The implementation is simple. Only llvm-link.cpp is affected.
>
> Thanks.
>
> Sam Liu
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev







More information about the llvm-dev mailing list