[LLVMdev] Android, llvm-ar and setLastModificationAndAccessTime
James Lyon
jameslyon0 at gmail.com
Mon Nov 25 08:30:40 PST 2013
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131125/fff5015e/attachment.html>
More information about the llvm-dev
mailing list