[PATCH] D142660: [AIX] supporting -X options for llvm-ranlib in AIX OS
James Henderson via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 27 00:18:25 PDT 2023
jhenderson added a comment.
In D142660#4535693 <https://reviews.llvm.org/D142660#4535693>, @stephenpeckham wrote:
> I don't see any reason to check the OBJECT_MODE environment variable if the -X flag is used. What would the error be: "You specified a valid -X flag, but by the way, OBJECT_MODE is set to an invalid value"?
The error would be "invalid value for OBJECT_MODE environment variable" (or something to that effect), which would mean the user fixes their environment, just the same as if they hadn't used -X. I just want to emphasise though that my main concern is that llvm-ar and llvm-ranlib are being inconsistent - one of them checks the environment variable first, the other checks the command-line option first, and this seems wrong - they should do the same thing. By reading and checking the environment variable first, it simplifies the code logic (no need for `HasAIXXOption` for example).
As an alternative (but I think adds unnecessary complexity, due to needing an extra variable), you could have both tools read the environment variable into a string variable, then, if the -X option is present, overwrite that variable, and finally feed that string into the parsing code that converts into a `BitMode` value. If the string is invalid, the parsing code could report an error along the lines of "invalid OBJECT_MODE or -X option value".
> I think all the commands that examine XCOFF files (llvm-ar, lllvm-ranlib, llvm-readobj, llvm-objdump, llvm-nm, etc.) should recognize "32", "64", "32_64", and "any". I don't think it's necessary to recognize "d64", even if AIX commands do. In addition, I wouldn't bother recognizing an XCOFF file with the magic number for a discontinued 64-bit object. That means that "32_64" and "any" have the same behavior. If -X is specified and does not have one of the 4 specified values, a usage message should be printed. If -X is not specified but OBJECT_MODE is in the environment, a message should be printed if the value is not one of the 4 specified values.
Yes, to be clear, I'm not advocating that "d64" support should be added (I'm not opposed to it, should there be a use-case for it either).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142660/new/
https://reviews.llvm.org/D142660
More information about the cfe-commits
mailing list