[LLVMdev] misc CVS patches

Misha Brukman brukman at uiuc.edu
Wed Apr 20 08:55:31 PDT 2005

On Wed, Apr 20, 2005 at 12:12:54PM +0200, Markus F.X.J. Oberhumer wrote:
> Misha Brukman wrote:
> >On Tue, Apr 19, 2005 at 07:01:40AM +0200, Markus F.X.J. Oberhumer
> >wrote: Have you considered using bugpoint for your codegen debugging
> >needs?  http://llvm.cs.uiuc.edu/docs/Bugpoint.html#codegendebug
> Well, the (critical) bug in question was
> http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=548 , and I'm not sure if
> bugpoint could have helped me reducing the testcase down from a huge
> program. 

Actually, that is the `point' of bugpoint, pun intended.  :)

> But then, I've never looked too closely - is there a small tutorial ?


About the only thing we haven't gotten to `bugpoint' is front-end
miscompilations -- those test cases need to be narrowed down by hand,
but once your code is in LLVM bytecode, bugpoint can rip it into shreds.
> >For the isExecutable patch, you check to see if it's a file first before
> >calling access(), but that precludes that function being used on a
> >directory (which is a valid sys::Path object and could be queried for
> >being executable), so I think it's unnecessary.
> I'm pretty sure that the semantics of isExecutable() means "can I 
> excecute a _file_".  Without this patch FindExecutable() returns 
> directories on $PATH - see 
> http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=545 .

You and Reid have a point.  I'm convinced.  Patched, bug closed.
> > I also applied your patch to ignore dangling symlinks.
> Fine, so http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=543 can be closed.

As per Reid's comment, I'll leave it open until this issue is resolved:

3. Figure out why ThrowErrno isn't appending the standard operating
system error message that would tell us why the status couldn't be

> >Finally, I applied your patch to ArchiveWriter with minor
> >modifications -- please see llvm-commits or the web archive.
> 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.
> Do you really want external patches for this ? A simple Perl script
> that runs on all *.h and *.cpp files, and a local commit from your
> side would be much simpler. The testsuite should also be enhanced to
> daily report files with trailing whitespace. Please note that this not
> purely academic - trailing whitespace are a horror for anyone
> maintaining external patches against a CVS tree.

I'll look into this.

Misha Brukman :: http://misha.brukman.net :: http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list