Currently, clang is divided into the following libraries and tool:
* libsupport - Basic support library, from LLVM.
* libsystem - System abstraction library, from LLVM.
* libbasic - Diagnostics, SourceLocations, SourceBuffer abstraction, file system caching for input source files.
* libast - Provides classes to represent the C AST, the C type system, builtin functions, and various helpers for analyzing and manipulating the AST (visitors, pretty printers, etc).
* liblex - Lexing and preprocessing, identifier hash table, pragma handling, tokens, and macro expansion.
* libparse - Parsing. This library invokes coarse-grained 'Actions' provided by the client (e.g. libsema builds ASTs) but knows nothing about ASTs or other client-specific data structures.
* libsema - Semantic Analysis. This provides a set of parser actions to build a standardized AST for programs.
* libcodegen - Lower the AST to LLVM IR for optimization & code generation.
* librewrite - Editing of text buffers (important for code rewriting transformation, like refactoring).
* libanalysis - Static analysis support.
* libindex - Cross-translation-unit infrastructure and indexing support.
* clang - A driver program, client of the libraries at various levels.
made a build of llvm/llvm-gcc svn and binutils.
includes native python and gdb.
ftp://90.184.233.166:21/LLVM.7z (http://ftp://90.184.233.166:21/LLVM.7z)
can be used with msys also if you add the folder to fstab instead of the normal mingw.
like so C:/LLVM. /mingw
for msys autotool based builds you might have to tell the autotools what C and C++ compilers to use like this CC=llvm-gcc CXX=llvm-g++
mingw32-make is not included but the one from mingw site works just fine.
only handles c/c++ and fortran atm. ada cannot be built with gcc-4.5.1 i use to bootstrap as the version of gcc from llvm is a rather ancient one 4.2.1
For those of you who don't know ... Clang has successfully compiled the Linux Kernel ... hmmm ...great compiler!!!
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html) ... whoop ...
ok new version up, same download link.
hmm havent changed anything on my ftp ? try pasting the url directly.the url becomes like this in my firefox address bar:
ftp://90.184.233.166/LLVM.7z/
-------------- Build: Debug in buildllvmgcctest ---------------
[ 50.0%] llvm-g++.exe -Wall -fexceptions -g -c F:\cb\testCode\buildllvmgcctest\main.cpp -o obj\Debug\main.o
[100.0%] llvm-g++.exe -o bin\Debug\buildllvmgcctest.exe obj\Debug\main.o
F:\cb\testCode\buildllvmgcctest\main.cpp:1:20: error: iostream: No such file or directory
F:\cb\testCode\buildllvmgcctest\main.cpp: In function 'int main()':
F:\cb\testCode\buildllvmgcctest\main.cpp:7: error: 'cout' was not declared in this scope
F:\cb\testCode\buildllvmgcctest\main.cpp:7: error: 'endl' was not declared in this scope
Process terminated with status 1 (0 minutes, 0 seconds)
3 errors, 0 warnings (0 minutes, 0 seconds)
F:\cb\llvm_gcc\LLVM\bin>llvm-gcc -v -x c++ nul -fsyntax-only
Using built-in specs.
Target: i386-mingw32
Configured with: ../llvm-gcc-4.2/configure --prefix=/llvm --host=i386-mingw32 --
build=i386-mingw32 --enable-languages=c,c++,fortran --disable-nls --disable-mult
ilib --disable-win32-registry --disable-werror --disable-bootstrap --disable-sym
vers --program-prefix=llvm- --enable-llvm=/home/ralph/llvm-objects --enable-full
y-dynamic-string --with-gxx-include-dir=/llvm/include/c++/4.2.1 --with-sysroot=/
usr
Thread model: win32
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build)
f:/cb/llvm_gcc/llvm/bin/../libexec/gcc/i386-mingw32/4.2.1/cc1plus.exe -quiet -v
-iprefix f:\cb\llvm_gcc\llvm\bin\../lib/gcc/i386-mingw32/4.2.1/ nul -quiet -dum
pbase nul -mtune=i386 -auxbase nul -version -fsyntax-only -o nul
ignoring nonexistent directory "f:/cb/llvm_gcc/llvm/bin/../lib/gcc/i386-mingw32/
4.2.1/../../../../i386-mingw32/include"
ignoring nonexistent directory "c:/codeblocks/llvm/include/c++/4.2.1"
ignoring nonexistent directory "c:/codeblocks/llvm/include/c++/4.2.1/i386-mingw3
2"
ignoring nonexistent directory "c:/codeblocks/llvm/include/c++/4.2.1/backward"
ignoring nonexistent directory "C:/CodeBlocksc:/codeblocks/llvm/lib/gcc/i386-min
gw32/4.2.1/../../../../include"
ignoring nonexistent directory "c:/codeblocks/llvm/lib/gcc/i386-mingw32/4.2.1/in
clude"
ignoring nonexistent directory "c:/codeblocks/llvm/i386-mingw32/include"
ignoring nonexistent directory "C:/CodeBlocks/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
f:/cb/llvm_gcc/llvm/bin/../lib/gcc/i386-mingw32/4.2.1/include
End of search list.
cc1plus.exe: warning: nul.gch: too short to be a PCH file
GNU C++ version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build) (i386-mingw3
2)
compiled by GNU C version 4.2.1 (Based on Apple Inc. build 5658) (LLVM b
uild).
GGC heuristics: --param ggc-min-expand=150 --param ggc-min-heapsize=131072
Compiler executable checksum: 5faebdeec4705890ed271b3e78d3baee
nul:1: warning: 'nul.gcda' is not a gcov data file
F:\cb\llvm_gcc\LLVM\bin>
new build up on google code.
patched with some of john's older patches for gcc-4.2.1.
it took a war getting it to recognize the c++ directory (wont bootstrap unless the llvm dir is named mingw and in the root) but it seems to compile fine in any dir after its built now.
Just wondering. Is anybody still working on Clang-Support?What exacly do you mean? If you use the GCC "wrapper", provided in this thread you can so it already.