Re: How necessary is 'scandir'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



the background is, we've added -Werror to address the build issue on older glibc against posix_fadvise()[1]. the error stopped on scandir() check was a side-effect coming from it. maybe it was wrong way. though I had no idea to address it other than that way.

let me take a look again and think more.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=52573

On Sun, Feb 15, 2015 at 10:01 PM, Raimund Steger <rs@xxxxxxxx> wrote:
On 02/12/15 03:59, Akira TAGOH wrote:
If the own scandir works on the platforms where don't have POSIX version
of scandir, we could drop that check. if anyone confirm, that would be
appreciated.

The question is, for what cases would we need our own scandir. Because:

(1) On Win32, FcDirChecksum isn't used (we use FcStat/GetFileAttributesEx only)

(2) On all platforms we supported before 38ab7ab2fbd83c0c62e4b78302b5fe89da0cb79e (where the configure check was introduced), scandir *is* available. Either the POSIX one (in the sense of [1]) which uses dirent comparators or the one that uses void* [2].

Because of that, we wouldn't need to specifically test for [1] and could just assume it's there, avoiding clashes with UNIX compilers that can't execute our test because of -Werror.

Now what about platforms where there is indeed neither GetFileAttributesEx nor any version of scandir? I admit that these were probably supported before 0ac6c98294d666762960824d39329459b22b48b7 (https://bugs.freedesktop.org/show_bug.cgi?id=25535) and aren't now. If we wanted to support those, then yes, we would need to check for both scandir versions, although the check for the POSIX variant could be a simple fallback that doesn't need -Werror. And even then, we could probably simply ignore the result of FcIsFsMtimeBroken as the change addressed FAT file systems on UNIX/Linux only. I mean, the set of UNIX/Linux systems that don't have scandir and at the same time use a font directory on FAT is probably rather small...

Raimund


[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/alphasort.html
[2] http://netbsd.gw.com/cgi-bin/man-cgi?scandir+3+NetBSD-current






On Thu, Feb 12, 2015 at 7:55 AM, Raimund Steger <rs@xxxxxxxx
<mailto:rs@xxxxxxxx>> wrote:

    On 02/11/15 19:40, Michael Felt wrote:

        Yes, xlC, and I was hoping it was just a stray gcc flag.


    If that's indeed the reason, you can:

    (0) To confirm whether it is, replace WERROR_CFLAGS="-Werror" with
    WERROR_CFLAGS="" in configure.ac <http://configure.ac>, run
    autoconf, configure etc.

    If that works:

    (1) find an equivalent flag for XL C and create a patch, just like
    the one for SunPRO [1]. If I understand the documentation right [2],
    this could be "-qmaxerr=1:w" (increase the number 1 if some
    'statement not reached' stuff gets in your way), but it's difficult
    to say without an actual installation to test.

    (2) create a patch similar to (1), but set WERROR_CFLAGS="" or
    disable the scandir check altogether when compiling with XL C. I
    believe before [3] there wasn't even a scandir check, and the change
    was only to silence warnings on NetBSD if I read the commit right. I
    doubt you will have any problem on AIX.

    Actually I'm still somewhat unhappy that configure wants to
    acknowledge the POSIX version of scandir specially when only
    recognizing the NetBSD version would probably have sufficed ...
    would have saved us a lot of if's, maybe even the one for $os_win32.

    But I'll shut my mouth again.

    -Raimund



    [1]
    http://cgit.freedesktop.org/__fontconfig/commit/?id=__694368667a15341ea30b37a36e9540__e6b1492680
    <http://cgit.freedesktop.org/fontconfig/commit/?id=694368667a15341ea30b37a36e9540e6b1492680>
    [2]
    http://www-01.ibm.com/support/__knowledgecenter/SSGH2K_13.1.0/__com.ibm.xlc131.aix.doc/__compiler_ref/opt_maxerr.html?__lang=en
    <http://www-01.ibm.com/support/knowledgecenter/SSGH2K_13.1.0/com.ibm.xlc131.aix.doc/compiler_ref/opt_maxerr.html?lang=en>
    [3]
    http://cgit.freedesktop.org/__fontconfig/commit/?id=__38ab7ab2fbd83c0c62e4b78302b5fe__89da0cb79e
    <http://cgit.freedesktop.org/fontconfig/commit/?id=38ab7ab2fbd83c0c62e4b78302b5fe89da0cb79e>






--
Akira TAGOH


--
Worringer Str 31 Duesseldorf 40211 DE  home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346           work: <rs@xxxxxxxxxxxxxxx>



--
Akira TAGOH
_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/fontconfig

[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux