[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 ?
http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html
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
obtained.
> >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.
Thanks,
--
Misha Brukman :: http://misha.brukman.net :: http://llvm.cs.uiuc.edu
More information about the llvm-dev
mailing list