Commit Graph

47 Commits

Author SHA1 Message Date
Axel Naumann
83722a7084 Include etc/cling headers in PCH; improve dependencies. 2014-04-09 12:08:10 +02:00
Axel Naumann
d00d9e8d54 Simplify; adapt to new Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
f2da5f7cb7 Add backend passes (inlining etc) to cling.
They are usually provided by clang's BackendUtil - which we don't use and which
has no support for incremental ("streaming") compilation but runs the passes on
the whole module the whole time, and does end-of-TU cleanup (e.g. "dead" code
removal) that we cannot use because subsequent transactions might create new
uses - think force_inline functions that must stay.

Instead BackendPass wraps what's in clang's BackendUtil into a
TransactionTransformer. It gets added to the IR transformers. In the future this
should only transform the delta of one Transaction instead of the whole Module.

This fixes the libc++ issue we worked around by
templates' symbols are not exported anymore and cause missing symbols with
XCode 5.1.

We include ObjC passes even though this blows up the list of linked libraries to
make it easier to port cling to ObjC(++).
2014-03-28 15:51:03 +01:00
Axel Naumann
b44c7c69c0 MASSIVE reduction in linked libs. Ouch. 2014-03-22 18:39:57 +01:00
Philippe Canal
8bdb34696e Do not pass on -ffunction-sections.
-ffunction-sections breaks the debugger on some platforms ... and does not help libCling at all.
2014-03-19 22:48:58 +01:00
Axel Naumann
4cffcf37a6 And another location for the new dependency. 2014-03-08 19:11:12 +01:00
Axel Naumann
f3c71160a4 Add more runtime llvm headers. 2014-02-18 11:27:59 +01:00
Axel Naumann
60dc035207 Also copy Allocator.h into etc/cling. 2014-02-18 11:01:04 +01:00
Axel Naumann
fae0d4037f Follow changes in llvm/clang. 2014-02-18 08:29:38 +01:00
Axel Naumann
92fbe9671d Delay eval of CLINGCXXFLAGS: llvm-config is not yet built. 2014-02-14 18:06:52 +01:00
Axel Naumann
9c1fa1f2c3 $(LLVMCONFIG) is only created later; evaluate lazily. Fixes full build. 2014-02-10 15:30:08 +01:00
Axel Naumann
759a79ea22 Do not include -I in cling-compiledata.h (ROOT-6048). 2014-02-10 11:00:58 +01:00
Fons Rademakers
1317314d8a force cling compilation to be 32-bit when configuration is for a 32-bit arch (ROOT-5865). 2014-01-22 21:49:53 +01:00
Axel Naumann
702b719bbb Create build directory before operating on it. 2014-01-22 15:59:56 +01:00
Axel Naumann
45911565a5 We can only evaluate CLINGCXXFLAGS once llvm has been built. 2014-01-20 15:13:59 +01:00
Axel Naumann
4d577a9bf2 Generate cling/lib/Interpreter/cling-compiledata.h. 2014-01-14 16:20:14 +01:00
Bertrand Bellenot
098870d14d Fix compilation issues on Windows (use filter instead of findstring) 2013-12-17 20:15:50 +01:00
Fons Rademakers
bca6686c91 add support for win64gcc.
By Bertrand.
2013-12-17 10:38:57 +01:00
Axel Naumann
b62b5d7937 Combine include path -D; pass src and obj for LLVMDEV/ROOT; remove unused -Ds 2013-09-30 18:09:03 +02:00
Philippe Canal
442922f56a Compile RuntimeException.o with -fexception 2013-09-11 21:26:58 +02:00
Vassil Vassilev
7875d921f6 Update the Module.mk. (Sorry for the mess). 2013-09-09 16:10:59 +02:00
Vassil Vassilev
8618646281 Copy the RuntimeExceptions.h over. Should fix the build. 2013-09-05 21:04:53 +02:00
Axel Naumann
c822c7c81d UserInterface must be compiled with -fexceptions. 2013-08-28 09:39:53 +02:00
Philippe Canal
53a85157fd In CLINGCXXFLAGS, put the source include dir first.
This will make sure that the build is 'consistent' and
the source version of the cling include files is not
superseeded by the (possible stale) copy that might
be in interpreter/llvm/inst.
2013-08-08 22:45:52 +02:00
Bertrand Bellenot
ef5b723bef Allow to build out of source on cygwin/gcc 2013-08-02 12:09:56 +02:00
Vassil Vassilev
b00e66a0c2 Add missing separator. 2013-06-26 16:18:25 +02:00
Vassil Vassilev
65ce06c373 NDEBUG stands for NO DEBUG... 2013-06-26 16:18:25 +02:00
Vassil Vassilev
49321363f7 Define NDEBUG for consistency with llvm and clang, when building ROOT in debug mode. 2013-06-25 09:30:35 +02:00
Axel Naumann
737083992f We also need llvm/Config/llvm-config.h for runtime
git-svn-id: http://root.cern.ch/svn/root/trunk@49328 27541ba8-7e3a-0410-8455-c3a389f83636
2013-04-24 19:12:50 +00:00
Axel Naumann
70695fe2be Update to clang/llvm r179269 (llvm vendor branch r49215):
Parser::Scope versus Sema::DeclContext are now checked for cross-vailidity.
Emit the TU-transaction explicitly instead of relying on a first transaction.
The typename extraction now takes a stream instead of a string to write to.
The llvm::Linker has much reduced functionality; use llvm::sys::Path instead to find dynamic libraries.


git-svn-id: http://root.cern.ch/svn/root/trunk@49325 27541ba8-7e3a-0410-8455-c3a389f83636
2013-04-24 16:28:08 +00:00
Philippe Canal
7427626e2b Introduce additional rules to work around an issue (features?) in make that
allows the generation of a product (eg one of the cling.o file) even-though 
one of its dependency (eg. etc/cling/llvm/ADT/OwningPtr.h) has not been 
actually built.  This seems to happens if the rule to make the dependency
is a pattern rule that depend on a file (eg. interpreter/llvm/inst/include/llvm/ADT/OwningPtr.h)
that does not have a specific rule but is the byproduct of another product 
create ($(LLVMLIB)).  This is fixed by adding an explicit dependency of the
byproduct (eg. interpreter/llvm/inst/include/llvm/ADT/OwningPtr.h) on 
the main product (eg $(LLVMLIB))


git-svn-id: http://root.cern.ch/svn/root/trunk@48804 27541ba8-7e3a-0410-8455-c3a389f83636
2013-03-04 22:23:43 +00:00
Axel Naumann
756aceef51 Mke the copy more noisy to debug dependency problem in full builds.
git-svn-id: http://root.cern.ch/svn/root/trunk@48785 27541ba8-7e3a-0410-8455-c3a389f83636
2013-03-01 14:13:04 +00:00
Axel Naumann
8258396916 Add missing headers, included by cling::Interpreter c'tor.
Fixes crash on optimized builds.


git-svn-id: http://root.cern.ch/svn/root/trunk@48731 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-27 15:04:39 +00:00
Axel Naumann
38fd2bc3c5 Copy headers only after llvm has been built, i.e. don't make ALLHDRS depend on it.
Remove unused rule.


git-svn-id: http://root.cern.ch/svn/root/trunk@48697 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-25 16:25:39 +00:00
Axel Naumann
eae6e6b760 Update the *massively* reduced list of headers we need for runtime.
git-svn-id: http://root.cern.ch/svn/root/trunk@48692 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-25 16:00:51 +00:00
Axel Naumann
2ac4022b04 Add missing file.
git-svn-id: http://root.cern.ch/svn/root/trunk@48679 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-25 07:51:21 +00:00
Axel Naumann
711f95413f Fix rules for etc/cling/Interpreter and friends.
git-svn-id: http://root.cern.ch/svn/root/trunk@48664 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-21 17:28:27 +00:00
Vassil Vassilev
d0af24b957 From Axel and me: As a mid-term solution copy some LLVM and clang header files
in ROOT's etc/cling.


git-svn-id: http://root.cern.ch/svn/root/trunk@48641 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-19 14:14:07 +00:00
Axel Naumann
8bdaaf26a7 From Bertrand: fixes for cygwin.
* The PE magic is not within the first 64 bytes (only the DOS "MK" is); need to read more to identify DLLs.
* Use Windows's EnumProcessModules() even on cygwin to enumerate the loaded libraries; needs a Windows library (psapi) to be linked in.
* Filter system libraries on Windows: ignore it if contains "/usr/bin/cyg" or the Windows install path.
* Don't export any symbols from clang and llvm, we don't need them outside libCore. Before, all symbols were exported leading to a symbol table overflow.


git-svn-id: http://root.cern.ch/svn/root/trunk@48500 27541ba8-7e3a-0410-8455-c3a389f83636
2013-02-07 13:11:08 +00:00
Axel Naumann
1a9a90a836 -E does not exist on MacOS. Apparently exporting all symbols is its default.
git-svn-id: http://root.cern.ch/svn/root/trunk@47146 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-10 14:14:27 +00:00
Axel Naumann
0b5e5bda73 Export all symbols from the cling binary, such that the JIT can find them.
git-svn-id: http://root.cern.ch/svn/root/trunk@46996 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-02 11:50:17 +00:00
Philippe Canal
d907f10347 Fix library order
git-svn-id: http://root.cern.ch/svn/root/trunk@46617 27541ba8-7e3a-0410-8455-c3a389f83636
2012-10-17 15:37:38 +00:00
Axel Naumann
ebe948e9b0 If LLVMDEV is set, build a cling executable plus an environment that allows to cd interpreter/obj/tools/cling and run make test. Ugly but both temporary and non-public.
git-svn-id: http://root.cern.ch/svn/root/trunk@46557 27541ba8-7e3a-0410-8455-c3a389f83636
2012-10-16 00:51:45 +00:00
Axel Naumann
842a4520c9 Fix initialization order for "new" binutils that use ctors-in-init-array, by passing -Wl,--no-ctors-in-init-array.
See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770>.
This enforces llvm (at the end of the link line) globals to be initialized before ROOT's, pretty healthy for new TInterpreter in gROOT's initializer.


git-svn-id: http://root.cern.ch/svn/root/trunk@46055 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-19 14:12:07 +00:00
Axel Naumann
fff6b6404c Remove optimization flags coming from llvm build
git-svn-id: http://root.cern.ch/svn/root/trunk@46039 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-19 09:50:56 +00:00
Axel Naumann
752b4d52dd Work on Savannah #97347:
* make is needed (before make install) to copy tablegen files into install area.
* Rewrite has been split and renamed.
* Have cling/Module.mk depend on llvm-config, such that when it gets built CXXFLAGS etc gets re-read.


git-svn-id: http://root.cern.ch/svn/root/trunk@45920 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-10 13:46:36 +00:00
Axel Naumann
05ba8a3a07 Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.)
git-svn-id: http://root.cern.ch/svn/root/trunk@45844 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 09:37:39 +00:00