[LLVMdev] Android, llvm-ar and setLastModificationAndAccessTime

Stephen Hines srhines at google.com
Mon Nov 25 10:27:37 PST 2013


futimens() is available in Android KitKat. We work extensively with LLVM
and this allowed us to remove our ugly workaround for not having this
functionality.

Steve


On Mon, Nov 25, 2013 at 8:30 AM, James Lyon <jameslyon0 at gmail.com> wrote:

>  Hi,
>
> I've been trying to get LLVM working as a JIT compiler on Android for a
> while. It works now, except that the setLastModificationAndAccessTime
> function won't build because the Bionic C library lacks both futimes and
> futimens. There doesn't appear to be any "nice" workaround for this
> problem: the only ways I can think of to make
> setLastModificationAndAccessTime work are either to go by /proc/self/fd or
> invoke the system call directly (the second option isn't helped by the fact
> that the Android headers don't define the relevant system call number and
> it varies between platforms).
>
> Right now the only part of LLVM that uses this function is llvm-ar, so
> it's not as if lack of support for this function is a serious shortcoming.
> I don't really know the history of PathV1/PathV2 but I think the simplest
> solutions are:
>
>    1. Have setLastModificationAndAccessTime fail on platforms without
>    futimes/futimens (by ENOSYS). This is pretty ugly because having a function
>    which can never succeed seems likely to confuse users.
>    2. Only declare setLastModificationAndAccessTime if it is actually
>    available (add something to llvm-config.h to indicate this). The downside
>    here is that (in theory at least) users need to know that
>    setLastModificationAndAccessTime might be missing, although in practise
>    they can probably ignore the issue.
>
> (1) is trivial to implement and is what I'm doing now; I can also create a
> patch to do (2), I just thought I'd ask for opinions first.
>
> Regards,
>
> James
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131125/87991d39/attachment.html>


More information about the llvm-dev mailing list