On 31/12/2020 16:05, Roger Pau Monné wrote:
> On Thu, Dec 31, 2020 at 03:46:50PM +0000, Andrew Cooper wrote:
>> On 31/12/2020 09:20, Roger Pau Monné wrote:
>>> On Wed, Dec 30, 2020 at 06:32:58PM +0000, Andrew Cooper wrote:
>>>> On 30/12/2020 17:34, Roger Pau Monne wrote:
>>>>> It's not part of the POSIX standard [0] and as such non GNU ar
>>>>> implementations don't usually have it.
>>>>>
>>>>> It's not relevant for the use case here anyway, as the archive file is
>>>>> recreated every time due to the rm invocation before the ar call. No
>>>>> file name matching should happen so matching using the full path name
>>>>> or a relative one should yield the same result.
>>>>>
>>>>> This fixes the build on FreeBSD.
>>>>>
>>>>> Signed-off-by: Roger Pau Monné <roger....@citrix.com>
>>>> Acked-by: Andrew Cooper <andrew.coop...@citrix.com>, although...
>>>>
>>>> We really need some kind of BSD build in CI.  This kind of breakage
>>>> shouldn't get into master to begin with.
>>> Fully agree. I'm not that familiar with gitlab CI, but since we have
>>> our own runners there, could we also launch VMs instead of just using
>>> containers?
>>>
>>> It might be easier to integrate with osstest in the future, since
>>> FreeBSD has now switched to git.
>>>
>>>>> [0] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ar.html
>>>>> ---
>>>>> I'm unsure whether the r and s options are also needed, since they
>>>>> seem to only be relevant when updating a library, and Xen build system
>>>>> always removes the old library prior to any ar call.
>>>> ... I think r should be dropped, because we're not replacing any files. 
>>>> However, I expect the index file is still relevant, because without it,
>>>> you've got to perform an O(n) search through the archive to find a file.
>>> Right, the description of 's' between opengroup and the Linux man page
>>> seems to be slightly different. From the opengroup description it seems
>>> like s should be used to force the generation of a symbol table when
>>> no changes are made to the archive, but otherwise ar should already
>>> generate such symbol table.
>> Ok - are you happy for me to commit with dropping the r and s?
> So after testing this, I think we need at least the r option, as we
> want to add new files to the archive (regardless of whether it exists
> or not). That seems to be mandatory on FreeBSD, as calling 'ar c' is
> not valid.
>
> I think s can be dropped, as ar will generate the symbol table by
> default unless S is specified. s should just be used to force the
> generation of a symbol table when not adding files and the archive has
> been stripped AFAICT.
>
> If so would you mind adding:
>
> "While there also drop the s option, as ar will already generate a
> symbol table by default when creating the archive."
>
> To the commit message if you end up dropping s?

Will do.

~Andrew

Reply via email to