Skip to content
Snippets Groups Projects
Commit 1696d095 authored by Axel Naumann's avatar Axel Naumann
Browse files

Link cling and llvm statically, remove libCling.so:

* no need to export libcling's (and thus clang's) symbols that are used in TCintWithCling.
* properly hides clang, llvm symbols (they are now unreachable through ROOT)
* rootcling_tmp doesn't need to find libCling.so anymore

The order of static initialization is (as always) fragile but relevant, as TCintWithCling is created during static init, but it needs parts of llvm to be set up before. Re-ordering of $(CLINGLIBEXTRA) versus $(COREO) fixes that for me.


git-svn-id: http://root.cern.ch/svn/root/trunk@45778 27541ba8-7e3a-0410-8455-c3a389f83636
parent 4c06e523
No related branches found
No related tags found
No related merge requests found
......@@ -323,9 +323,6 @@ BOOTLIBS := -lCore -lCint
ifneq ($(ROOTDICTTYPE),cint)
BOOTLIBS += -lCintex -lReflex
endif
ifeq ($(BUILDCLING),yes)
BOOTLIBS += -lCling
endif
ROOTLIBS := -lRIO -lHist -lGraf -lGraf3d -lGpad -lTree \
-lMatrix -lNet -lThread -lMathCore $(BOOTLIBS)
RINTLIBS := -lRint
......@@ -336,9 +333,6 @@ BOOTLIBS := $(LPATH)/libCore.lib $(LPATH)/libCint.lib
ifneq ($(ROOTDICTTYPE),cint)
BOOTLIBS += $(LPATH)/libCintex.lib $(LPATH)/libReflex.lib
endif
ifeq ($(BUILDCLING),yes)
BOOTLIBS += $(LPATH)/libCling.lib
endif
ROOTLIBS := $(LPATH)/libRIO.lib $(LPATH)/libHist.lib \
$(LPATH)/libGraf.lib $(LPATH)/libGraf3d.lib \
$(LPATH)/libGpad.lib $(LPATH)/libTree.lib \
......@@ -516,6 +510,11 @@ endif
##### libCore #####
ifeq ($(BUILDCLING),yes)
CORELIBEXTRA = $(CLINGLIBEXTRA)
STATICEXTRALIBS = $(CLINGLIBEXTRA)
endif
COREL = $(BASEL1) $(BASEL2) $(BASEL3) $(CONTL) $(METAL) $(ZIPL) \
$(SYSTEML) $(CLIBL) $(METAUTILSL) $(TEXTINPUTL)
COREO = $(BASEO) $(CONTO) $(METAO) $(SYSTEMO) $(ZIPO) $(LZMAO) \
......@@ -546,9 +545,6 @@ MAINLIBS := $(CORELIB) $(CINTLIB)
ifneq ($(ROOTDICTTYPE),cint)
MAINLIBS += $(CINTEXLIB) $(REFLEXLIB)
endif
ifeq ($(BUILDCLING),yes)
MAINLIBS += $(CLINGLIB)
endif
else
MAINLIBS =
endif
......@@ -823,15 +819,15 @@ endif
touch $@; \
fi)
$(CORELIB): $(COREO) $(COREDO) $(CINTLIB) $(CLINGLIB) $(PCREDEP) $(CORELIBDEP)
$(CORELIB): $(CLINGO) $(COREO) $(COREDO) $(CINTLIB) $(PCREDEP) $(CORELIBDEP)
ifneq ($(ARCH),alphacxx6)
@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
"$(SOFLAGS)" libCore.$(SOEXT) $@ "$(COREO) $(COREDO)" \
"$(CORELIBEXTRA) $(CLINGLIB) $(PCRELDFLAGS) $(PCRELIB) $(CRYPTLIBS)"
"$(SOFLAGS)" libCore.$(SOEXT) $@ "$(CLINGO) $(CLINGLIBEXTRA) $(COREO) $(COREDO)" \
"$(CORELIBEXTRA) $(PCRELDFLAGS) $(PCRELIB) $(CRYPTLIBS)"
else
@$(MAKELIB) $(PLATFORM) $(LD) "$(CORELDFLAGS)" \
"$(SOFLAGS)" libCore.$(SOEXT) $@ "$(COREO) $(COREDO)" \
"$(CORELIBEXTRA) $(CLINGLIB) $(PCRELDFLAGS) $(PCRELIB) $(CRYPTLIBS)"
"$(SOFLAGS)" libCore.$(SOEXT) $@ "$(CLINGO) $(CLINGLIBEXTRA) $(COREO) $(COREDO)" \
"$(CORELIBEXTRA) $(PCRELDFLAGS) $(PCRELIB) $(CRYPTLIBS)"
endif
$(COREMAP): $(RLIBMAP) $(MAKEFILEDEP) $(COREL)
......
......@@ -16,13 +16,10 @@ CLINGO := $(call stripsrc,$(CLINGS:.cpp=.o))
CLINGDEP := $(CLINGO:.o=.d)
CLINGLIB := $(LPATH)/libCling.$(SOEXT)
CLINGETC := $(addprefix etc/cling/Interpreter/,RuntimeUniverse.h ValuePrinter.h ValuePrinterInfo.h) \
$(addprefix etc/cling/cint/,multimap multiset)
# used in the main Makefile
ALLLIBS += $(CLINGLIB)
ALLHDRS += $(CLINGETC)
# include all dependency files
......@@ -33,7 +30,7 @@ INCLUDEFILES += $(CLINGDEP)
# 2) rely on TCling to addIncludePath instead of using CLING_..._INCL below
CLINGCXXFLAGS = $(shell $(LLVMCONFIG) --cxxflags) -I$(CLINGDIR)/include \
-fno-strict-aliasing
CLINGLLVMLIBS = -L$(shell $(LLVMCONFIG) --libdir) \
CLINGLIBEXTRA = -L$(shell $(LLVMCONFIG) --libdir) \
$(addprefix -lclang,\
Frontend Serialization Driver CodeGen Parse Sema Analysis Rewrite AST Lex Basic Edit) \
$(patsubst -lLLVM%Disassembler,,\
......@@ -46,12 +43,7 @@ CLINGLLVMLIBS = -L$(shell $(LLVMCONFIG) --libdir) \
##### local rules #####
.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME)
$(CLINGLIB): $(CLINGO) $(LLVMDEP)
@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
"$(SOFLAGS)" libCling.$(SOEXT) $@ "$(CLINGO)" \
"$(CLINGLLVMLIBS) $(CLINGLIBEXTRA)"
all-$(MODNAME): $(CLINGLIB)
all-$(MODNAME):
clean-$(MODNAME):
@rm -f $(CLINGO)
......@@ -59,7 +51,7 @@ clean-$(MODNAME):
clean:: clean-$(MODNAME)
distclean-$(MODNAME): clean-$(MODNAME)
@rm -f $(CLINGDEP) $(CLINGLIB) $(CLINGETC)
@rm -f $(CLINGDEP) $(CLINGETC)
distclean:: distclean-$(MODNAME)
......
......@@ -38,17 +38,17 @@ $(ROOTCINTTMPEXE): $(CINTTMPO) $(ROOTCINTTMPO) $(METAUTILSO) $(SNPRINTFO) \
$(ROOTCLINGEXE): $(CINTLIB) $(ROOTCLINGO) $(ROOTCLINGUTILO) \
$(METAUTILSO) $(METAUTILSTO) $(SNPRINTFO) $(STRLCPYO) $(IOSENUM) \
$(CLINGLIB)
$(CLINGO)
$(LD) $(LDFLAGS) -o $@ $(ROOTCLINGO) $(ROOTCLINGUTILO) \
$(METAUTILSO) $(METAUTILSTO) $(SNPRINTFO) $(STRLCPYO) $(RPATH) \
-Llib -lCling $(CINTLIBS) $(CILIBS)
$(METAUTILSO) $(METAUTILSTO) $(SNPRINTFO) $(STRLCPYO) \
$(CLINGO) $(CLINGLIBEXTRA) $(RPATH) $(CINTLIBS) $(CILIBS)
$(ROOTCLINGTMPEXE): $(CINTTMPO) $(ROOTCLINGTMPO) $(ROOTCLINGUTILO) \
$(METAUTILSO) $(METAUTILSTO) $(SNPRINTFO) $(STRLCPYO) $(IOSENUM) \
$(CLINGLIB)
$(CLINGO)
$(LD) $(LDFLAGS) -o $@ $(ROOTCLINGTMPO) $(ROOTCLINGUTILO) \
$(METAUTILSO) $(METAUTILSTO) $(SNPRINTFO) $(STRLCPYO) $(CINTTMPO) \
$(CINTTMPLIBS) -Llib -lCling $(CILIBS)
$(CINTTMPLIBS) $(CLINGO) $(CLINGLIBEXTRA) $(CILIBS)
ifneq ($(PLATFORM),win32)
$(RLIBMAP): $(RLIBMAPO)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment