[LLVMdev] misc CVS patches
Jeff Cohen
jeffc at jolt-lang.org
Thu Apr 21 08:52:29 PDT 2005
Nope. Win32 is not (and does not pretend to be) POSIX compliant. These
functions cannot be used outside of lib/System/Unix. New methods need
to be added to class llvm::sys::Process.
Markus F.X.J. Oberhumer wrote:
> Jeff Cohen wrote:
>
>> Misha Brukman wrote:
>>
>>>> I didn't use get{u,g}id() because that's not portable - I think we
>>>> need another abstraction in the System library for these.
>>>>
>>>
>>>
>>>
>>> Hmm, seems like it's available on the Unices that we support: Linux, OS
>>> X, and SunOS. Man page lists getgid() as conforming to POSIX and BSD
>>> 4.3, so I'm assuming *BSD has them too (can't confirm for lack of a
>>> *BSD
>>> system). As soon as we run into a Unix system that we want to support,
>>> we might have to go the abstraction route, but it seems to work for our
>>> currently-supported platforms.
>>>
>>>
>> FreeBSD has them. According to its man pages, getuid was introduced
>> in Version 7 AT&T Unix. Ancient history. It doesn't say when getgid
>> was introduced, but it's just as old as it's documented in my 1980
>> edition Berkeley VAX UNIX manual, and in any case both are in POSIX.1
>> and therefore ought to be portable by definition.
>
>
> Does windows have these ?
>
> In any case, below is another small patch for lib/Bytecode/Archive.
>
> ~Markus
>
>------------------------------------------------------------------------
>
>Index: Archive.cpp
>===================================================================
>RCS file: /var/cvs/llvm/llvm/lib/Bytecode/Archive/Archive.cpp,v
>retrieving revision 1.6
>diff -u -r1.6 Archive.cpp
>--- Archive.cpp 28 Jan 2005 01:17:07 -0000 1.6
>+++ Archive.cpp 21 Apr 2005 15:13:24 -0000
>@@ -40,8 +40,8 @@
> ArchiveMember::ArchiveMember()
> : next(0), prev(0), parent(0), path("<invalid>"), flags(0), data(0)
> {
>- info.user = 1000;
>- info.group = 1000;
>+ info.user = getuid();
>+ info.group = getgid();
> info.mode = 0777;
> info.fileSize = 0;
> info.modTime = sys::TimeValue::now();
>
>
More information about the llvm-dev
mailing list