I just updated from CVS, and after doing a clean rebuild I get this error:
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static member function ‘static bool llvm::DbgInfoIntrinsic::classof(const llvm::IntrinsicInst*)’:
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h:77: error: ‘dbg_declare’ is not a member of ‘llvm::Intrinsic’
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static member function ‘static bool llvm::DbgDeclareInst::classof(const llvm::IntrinsicInst*)’:
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h:172: error: ‘dbg_declare’ is not a member of ‘llvm::Intrinsic’
make[1]: *** [/Users/bocchino/llvm-checkin/obj/lib/VMCore/Debug/Function.o] Error 1
I just updated from CVS, and after doing a clean rebuild I get this error:
Are you sure that no conflicts prevented updating from going smoothly? How are you building (srcdir ==/!= objdir)?
-Chris
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static member function 'static bool llvm::DbgInfoIntrinsic::classof(const llvm::IntrinsicInst*)':
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h:77: error: 'dbg_declare' is not a member of 'llvm::Intrinsic'
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h: In static member function 'static bool llvm::DbgDeclareInst::classof(const llvm::IntrinsicInst*)':
/Users/bocchino/llvm-checkin/src/include/llvm/IntrinsicInst.h:172: error: 'dbg_declare' is not a member of 'llvm::Intrinsic'
make[1]: *** [/Users/bocchino/llvm-checkin/obj/lib/VMCore/Debug/Function.o] Error 1
Rob
Robert L. Bocchino Jr.
Ph.D. Student, Computer Science
University of Illinois, Urbana-Champaign
I did a utils/cvsupdate, and there are no conflicts. srcdir != objdir. This is on persephone.
Are you not getting this error? Perhaps I should check out a fresh tree and try to compile it?
Nope, I don't think anyone else is getting this error. If you could try a fresh build that would be great, I'll fire off an objdir != srcdir build to see if that is it.
OK, when I copy $(SRCDIR)/include/llvm/Intrinsics.gen to $(OBJDIR)/include/llvm/ by hand after building (and failing) once, the build succeeds. This is definitely a makefile bug.
OK, when I copy $(SRCDIR)/include/llvm/Intrinsics.gen to $(OBJDIR)/include/llvm/ by hand after building (and failing) once, the build succeeds. This is definitely a makefile bug.
It looks like the problem also goes away if I just delete $(OBJDIR)/include/llvm/Intrinsics.gen (and then it doesn’t get regenerated there).
Ah, ok. This sounds like a makefile-bug-that-has-already-been-fixed. In previous cvs versions we kept it in the srcdir, but lately have moved it to objdir. Because of how vpath stuff works (?) the wrong one is getting picked up.
I’m guessing the problem occurred because I hadn’t updated in a while (maybe a couple of weeks?) and I had an old Intrinsics.gen file hanging around in my source directory that was getting picked up by the makefile for some reason. This is a bug, but maybe it’s harmless because there’s a onetime workaround (delete the file by hand) and it won’t be a problem for anyone checking out a fresh tree.
Its not a bug, its just the way things are. By design, the source
directory's include files take precedence over the object directory's
include files. That is, on the command line we use: