Fixed two format issues.
Renamed "Long Options" to "Other" and moved it below the other options, removed bad link to gnu-ar and updated with changes from D69087.
Fix nits, add missing options, remove old limitation and add information regarding deterministic archives.
Tue, Oct 15
Updated llvm-ar doc to clarify non-windows behaviour and why windows is not Unicode compliant.
Fri, Oct 11
Due to updating the command guide I have not added the case insensitivity details to the llvm-ar help text. Would it be preferred to have these details in both?
Update llvm-ar command guide with case insensitivity details, and include a test for archived files with paths for names.
Thu, Oct 10
I added the XFAIL to 3 llvm-ar tests I added earlier in the year, due to them failing on Darwin systems. See below:
Tue, Oct 8
Thanks for adding the BOM. With the BOM, would it make sense to leave mri-utf8.test as the name of the file?
I think the testfile name should reflect what is being tested since that's the test identifier (ie. when a test fails lit prints the relative filepath) so the fact that the file is encoded in UTF-8 is irrelevant. Here the test is about llvm-ar handling non ascii filename, as the first comment explains it. How is the <pound sign>.txt file encoded would make a bit more sense as a name but then as I mentioned AFAIK the filename is encoded in UTF-16 on Windows anywat. In summary, I think the renaming is warranted.
This functions on Windows fine.
Removed unneeded const, swapped use of ifndef and added comment to comparePaths function.
Fri, Oct 4
I reverted this change due to the clang-x64-windows-msvc build bot failure.
You are correct that the locale is required to pass on linux. I had some trouble with this test as the behaviour of python in this area differs between linux / windows and python 2 / python 3. For example this fix appears to be fine for linux, however Windows with python 2 fails:
Thu, Oct 3
Updated after Edd and Ruiu's suggestion.
Tue, Oct 1
I asked because I want to make sure this patch is put up for practical use, not for a compatibility corner case that may rarely matter. I think most people may realize case insensitiveness on file systems is a bad idea. If my understanding is correct, llvm-lib used by Windows. llvm-ar is an ELF tool and it should match a generic ELF platform as close as possible and such platform disparity should be as little as possible.
Updated after rupprecht's suggestion.
Mon, Sep 30
My understanding is that although NTFS is case sensitive, the windows API makes file operations case insensitive by default.
This is failing on the sphinx build bot:
Fri, Sep 27
Thu, Sep 26
Wed, Sep 25
There are many tests in this area that use llvm-ar to test the underlying library. It may be better for these also to be in the llvm-ar test directory and have unit tests for specifically testing ArchiveWriter?
Fri, Sep 20
Thu, Sep 19
Wed, Sep 18
Thanks for all the feedback. Regarding an error handler I think the introduction of an error handler could be left for another time.
Updated the test in line with suggested changes.
Sep 16 2019
Sep 11 2019
Aug 12 2019
I think it'd be good to also write a test that verifies the internal representation is always forward slashes on windows by running FileCheck directly on the thin archive instead of using llvm-ar t to look at it (e.g. see thin-archive.test). Or do we already have a test for that?
Aug 7 2019
Aug 5 2019
Jul 26 2019
Jul 24 2019
Jul 23 2019
Thanks rupprecht, I'll fix my clone before committing.
Jul 22 2019
I have not included a test for this change due to how large the test files would need to be.
Jul 17 2019
Jul 16 2019
Jul 10 2019
Simmilarly to D63197, I'm not sure if it's preferable to make this test XFAIL: darwin or explicitly call llvm-ar with --format=gnu. What do you think jfb?
I believe the test failure is based on an issue with output, specific to the darwin format:
Jul 9 2019
Thanks phosek and jfb, I will investigate this macOS issue.
Fixed a reapplied:
rG5d5078e341f5: [llvm-ar] Reapply Fix relative thin archive path handling