No crt2.o file found

Hello, Matthew.

My file size matches the patched file. I haven't figured out how to get 7-zip to give me checksum information on windows.

Use md5sum utility. It can be successfully found via google.

I rashly copied all the *.o files from my mingw\lib directory to the llvm\lib directory.
This does enable the hello world binary to compile and to function correctly.

Strange. Seems to be some "paths problem? inside llvm-gcc. It really should find that files automatically.

Aha! I just noted that the archive does in fact have the crt*.o files, but they did not end up in my lib directory after
I built the system.

They shouldn't. They actually should be in llvm-gcc/lib directory.

My final question is just what functionality is disabled with the mingw distribution?
Is it just the use of lli?

As of 1.9 - yes.

This used to work with the msvc compiled tools.

This isn't true, since there were no JIT codegen for dllimported
symbols.

Is it possible to recover the missing functionality of the Jit interpreter using msvc to compile these tools?

Recently I've made several fixes to libSystem & codegen (in CVS head):
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061218/041588.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061218/041643.html

This will enable to run lli on huge amount of applications. Probably,
you have to apply them to your current 1.9 tree (+patches from
llvm-gcc4-1.9-patched) in order to enable lli for 1.9 release.

Anton Korobeynikov wrote:

Hello, Matthew.

Aha! I just noted that the archive does in fact have the crt*.o files,
but they did not end up in my lib directory after
I built the system.

They shouldn't. They actually should be in llvm-gcc/lib directory.

Hmm there is no llvm-gcc directory in either the patch file or what made it
on to my system. Furthermore there are no crt*.o files after my build until
I put them in the lib directory, which where they are in the patch file.
Again the clean must have removed them.

My final question is just what functionality is disabled with the mingw
distribution?
Is it just the use of lli?

As of 1.9 - yes.

This used to work with the msvc compiled tools.

This isn't true, since there were no JIT codegen for dllimported
symbols.

Is it possible to recover the missing functionality of the Jit
interpreter using msvc to compile these tools?

Recently I've made several fixes to libSystem & codegen (in CVS head):
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061218/041588.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061218/041643.html

This will enable to run lli on huge amount of applications. Probably,
you have to apply them to your current 1.9 tree (+patches from
llvm-gcc4-1.9-patched) in order to enable lli for 1.9 release.

--
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.

_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

I think the patch files are dated. After running patch I got the following
failures
$ patch -i X86Subtargetcpp.patch -b
patching file `X86Subtarget.cpp'
Hunk #1 FAILED at 32.
Hunk #2 succeeded at 192 (offset -15 lines).
1 out of 3 hunks FAILED -- saving rejects to X86Subtarget.cpp.rej

$ patch -i X86Subtargeth.patch -b
patching file `X86Subtarget.h'
Hunk #1 succeeded at 60 (offset -1 lines).
Hunk #2 FAILED at 114.
1 out of 2 hunks FAILED -- saving rejects to X86Subtarget.h.rej

$ patch -i X86TargetMachinecpp.patch -b
patching file `X86TargetMachine.cpp'
Hunk #1 FAILED at 166.
1 out of 1 hunk FAILED -- saving rejects to X86TargetMachine.cpp.rej

Not surprisingly after these failures make at the llvm directory level
failed:
make[3]: Entering directory `/d/apps/llvm/lib/Target/X86'
llvm[3]: Compiling X86Subtarget.cpp for Release build
X86Subtarget.cpp:196: error: no `void llvm::X86Subtarget::SetJITMode()'
member function declared in class `llvm::X86Subtarget'
make[3]: *** [/d/apps/llvm/lib/Target/X86/Release/X86Subtarget.o] Error 1
make[3]: Leaving directory `/d/apps/llvm/lib/Target/X86'
make[2]: *** [X86/.makeall] Error 2
make[2]: Leaving directory `/d/apps/llvm/lib/Target'
make[1]: *** [Target/.makeall] Error 2
make[1]: Leaving directory `/d/apps/llvm/lib'
make: *** [all] Error 1

I can provide more details if needed.

Hello, Matthew.

Hmm there is no llvm-gcc directory in either the patch file or what made it
on to my system. Furthermore there are no crt*.o files after my build until
I put them in the lib directory, which where they are in the patch file.
Again the clean must have removed them.

Well. Actually you should have 2 trees:
1. One you're building LLVM in. There is directory Release inside (after
build) with sub-directories bin & lib. Let us call this dir "llvm".
2. The tree with llvm-gcc4 unpacked from tarball. Let us call this dir
"llvm-gcc".

It's highly recommended not to mix them, otherwise you'll get funny
results (e.g. during "make clean"). Note, that crt*.o should be inside
"llvm-gcc/lib" directory, as they're in "lib" subdirectory of llvm-gcc4
tarball.

I think the patch files are dated. After running patch I got the following
failures

Surely. As I've said, they are against current CVS head (2.0cvs), not
1.9. You had 3 merge problems, since files itself changed alot during
last 2 months. Probably, you should apply them by hands.