[poppler] gfile.cc fails to build on macos due to statbuf.st_mtim

Adam Reichold adam.reichold at t-online.de
Fri Mar 2 11:36:11 UTC 2018


Hello,

If it works on POSIX and builds on Darwin, it looks good to me. What I
would like would be else clauses in the CMake and preprocessor
definitions that give proper error messages. (Or maybe use the POSIX
variant as the default and only use mtimespec if as an override.)

If you are uncomfortable with the CMake- and preprocessor-based
solution, you can solve such issues using templates as shown in

https://github.com/adamreichold/poppler/commit/68f46dce62ad97bdbb22bf79ac50c128d899a302

with the related Travis build being

https://travis-ci.org/adamreichold/poppler/builds/348193138

Best regards, Adam.

Am 02.03.2018 um 03:34 schrieb suzuki toshiya:
> Hi,
> 
> It seems that the counterpart in macOS libc corresponding to
> stat.st_mtim is stat.st_mtimespec.
> https://opensource.apple.com/source/xnu/xnu-201.5/bsd/sys/stat.h.auto.html
> 
> I wrote a patch testing st_mtim availability by CHECK_STRUCT_HAS_MEMBER()
> suggested by William, and also testing st_mtimespec too, and reflect
> the result to the macro GET_MTIM_FROM_STATBUF().
> https://github.com/mpsuzuki/poppler/commit/79d00ac08d672d572a7ec310b5a27eb66c956e4c
> 
> Building on travis-ci.org finishes successfully. Yet I'm
> unsure such macro is following to the coding style of poppler.
> Also if anybody has a testing code to evaluate the code works
> well (do you have to make 2 file with nsec difference of the
> timestamp?). Please give me comment...
> 
> Regards,
> mpsuzuki
> 
> On 2/19/2018 1:42 PM, William Bader wrote:
>> Can you test for it in cmake? https://cmake.org/cmake/help/v3.0/module/CheckStructHasMember.html
>>
>> ________________________________
>> From: poppler <poppler-bounces at lists.freedesktop.org> on behalf of Jeroen Ooms <jeroen at berkeley.edu>
>> Sent: Sunday, February 18, 2018 6:29 PM
>> To: Ihar Filipau
>> Cc: poppler at lists.freedesktop.org
>> Subject: Re: [poppler] gfile.cc fails to build on macos due to statbuf.st_mtim
>>
>> On Mon, Feb 12, 2018 at 3:04 PM, Ihar Filipau <thephilips at gmail.com> wrote:
>>> On 2/12/18, Jeroen Ooms <jeroen at berkeley.edu> wrote:
>>>> On Sun, Feb 11, 2018 at 12:11 PM, Albert Astals Cid <aacid at kde.org> wrote:
>>>>> You're never assigning to tv_nsec in there but still use it in a
>>>>> comparison,
>>>>> that needs fixing.
>>>>
>>>> You are right. I think we should compare modification time only by
>>>> seconds. The standard definition of 'struct stat' only specifies
>>>> st_ctime, so I don't think there is a portable way to get nanoseconds:
>>>> http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html
>>
>>>
>>> That's an old version of POSIX. Check the newer version:
>>>
>>> http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
>>
>>>
>>> IOW, there is a standard portable way - since 2008, 10 years ago. It's
>>> just Mac OS X hasn't updated its POSIX support after v6, from
>>> 2004.
>>
>> OK so how do you suggest this should be fixed? It would be great if
>> things would keep working on Mac OS.
>>
>>
> 
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/poppler
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 525 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/poppler/attachments/20180302/d38bceb8/attachment.sig>


More information about the poppler mailing list