Skip to content

Commit ad5b0cd

Browse files
smacksmack
authored andcommitted
Merge branch 'release-1.4.0'
2 parents 2036610 + 04eb752 commit ad5b0cd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+3113
-1648
lines changed

CMakeLists.txt

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
#
2+
# Copyright (c) 2013 Pantazis Deligiannis (p.deligiannis@imperial.ac.uk)
3+
# This file is distributed under the MIT License. See LICENSE for details.
4+
#
5+
6+
cmake_minimum_required(VERSION 2.8)
7+
project(smack)
8+
9+
if (NOT WIN32 OR MSYS OR CYGWIN)
10+
find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config PATHS ${LLVM_CONFIG} NO_DEFAULT_PATH DOC "llvm-config")
11+
12+
if (LLVM_CONFIG_EXECUTABLE STREQUAL "LLVM_CONFIG_EXECUTABLE-NOTFOUND")
13+
message(FATAL_ERROR "llvm-config could not be found!")
14+
endif()
15+
16+
execute_process(
17+
COMMAND ${LLVM_CONFIG_EXECUTABLE} --cxxflags
18+
OUTPUT_VARIABLE LLVM_CXXFLAGS
19+
OUTPUT_STRIP_TRAILING_WHITESPACE
20+
)
21+
22+
set(LLVM_CXXFLAGS "${LLVM_CXXFLAGS} -fno-exceptions -fno-rtti")
23+
24+
execute_process(
25+
COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs
26+
OUTPUT_VARIABLE LLVM_LIBS
27+
OUTPUT_STRIP_TRAILING_WHITESPACE
28+
)
29+
30+
execute_process(
31+
COMMAND ${LLVM_CONFIG_EXECUTABLE} --ldflags
32+
OUTPUT_VARIABLE LLVM_LDFLAGS
33+
OUTPUT_STRIP_TRAILING_WHITESPACE
34+
)
35+
36+
else()
37+
set(LLVM_SRC "" CACHE PATH "LLVM source directory")
38+
set(LLVM_BUILD "" CACHE PATH "LLVM build directory")
39+
set(LLVM_BUILD_TYPE "" CACHE STRING "LLVM build type")
40+
41+
if (NOT EXISTS "${LLVM_SRC}/include/llvm")
42+
message(FATAL_ERROR "Invalid LLVM source directory: ${LLVM_SRC}")
43+
endif()
44+
45+
set(LLVM_LIBDIR "${LLVM_BUILD}/lib/${LLVM_BUILD_TYPE}")
46+
if (NOT EXISTS "${LLVM_LIBDIR}")
47+
message(FATAL_ERROR "Invalid LLVM build directory: ${LLVM_BUILD}")
48+
endif()
49+
50+
set(LLVM_CXXFLAGS "\"/I${LLVM_SRC}/include\" \"/I${LLVM_BUILD}/include\" -D_SCL_SECURE_NO_WARNINGS -wd4146 -wd4244 -wd4355 -wd4482 -wd4800")
51+
set(LLVM_LDFLAGS "")
52+
set(LLVM_LIBS "${LLVM_LIBDIR}/LLVMTransformUtils.lib" "${LLVM_LIBDIR}/LLVMipa.lib" "${LLVM_LIBDIR}/LLVMAnalysis.lib" "${LLVM_LIBDIR}/LLVMTarget.lib" "${LLVM_LIBDIR}/LLVMMC.lib" "${LLVM_LIBDIR}/LLVMObject.lib" "${LLVM_LIBDIR}/LLVMBitReader.lib" "${LLVM_LIBDIR}/LLVMCore.lib" "${LLVM_LIBDIR}/LLVMSupport.lib")
53+
54+
endif()
55+
56+
include_directories(include)
57+
58+
add_library(assistDS STATIC
59+
include/assistDS/ArgCast.h
60+
include/assistDS/FuncSimplify.h
61+
include/assistDS/Int2PtrCmp.h
62+
include/assistDS/SimplifyExtractValue.h
63+
include/assistDS/StructReturnToPointer.h
64+
include/assistDS/DSNodeEquivs.h
65+
include/assistDS/FuncSpec.h
66+
include/assistDS/SimplifyGEP.h
67+
include/assistDS/TypeChecks.h
68+
include/assistDS/DataStructureCallGraph.h
69+
include/assistDS/GEPExprArgs.h
70+
include/assistDS/LoadArgs.h
71+
include/assistDS/SimplifyInsertValue.h
72+
include/assistDS/TypeChecksOpt.h
73+
include/assistDS/Devirt.h
74+
include/assistDS/IndCloner.h
75+
include/assistDS/MergeGEP.h
76+
include/assistDS/SimplifyLoad.h
77+
lib/AssistDS/ArgCast.cpp
78+
lib/AssistDS/Devirt.cpp
79+
lib/AssistDS/GEPExprArgs.cpp
80+
lib/AssistDS/LoadArgs.cpp
81+
lib/AssistDS/SimplifyExtractValue.cpp
82+
lib/AssistDS/StructReturnToPointer.cpp
83+
lib/AssistDS/ArgSimplify.cpp
84+
lib/AssistDS/DynCount.cpp
85+
lib/AssistDS/IndCloner.cpp
86+
lib/AssistDS/SimplifyGEP.cpp
87+
lib/AssistDS/TypeChecks.cpp
88+
lib/AssistDS/DSNodeEquivs.cpp
89+
lib/AssistDS/FuncSimplify.cpp
90+
lib/AssistDS/Int2PtrCmp.cpp
91+
lib/AssistDS/MergeGEP.cpp
92+
lib/AssistDS/SimplifyInsertValue.cpp
93+
lib/AssistDS/TypeChecksOpt.cpp
94+
lib/AssistDS/DataStructureCallGraph.cpp
95+
lib/AssistDS/FuncSpec.cpp
96+
lib/AssistDS/SVADevirt.cpp
97+
lib/AssistDS/SimplifyLoad.cpp
98+
)
99+
100+
add_library(dsa STATIC
101+
include/dsa/AddressTakenAnalysis.h
102+
include/dsa/DSCallGraph.h
103+
include/dsa/DSNode.h
104+
include/dsa/EntryPointAnalysis.h
105+
include/dsa/keyiterator.h
106+
include/dsa/svset.h
107+
include/dsa/AllocatorIdentification.h
108+
include/dsa/DSGraph.h
109+
include/dsa/DSSupport.h
110+
include/dsa/stl_util.h
111+
include/dsa/CallTargets.h
112+
include/dsa/DSGraphTraits.h
113+
include/dsa/DataStructure.h
114+
include/dsa/TypeSafety.h
115+
include/dsa/super_set.h
116+
lib/DSA/AddressTakenAnalysis.cpp
117+
lib/DSA/CallTargets.cpp
118+
lib/DSA/DSTest.cpp
119+
lib/DSA/EquivClassGraphs.cpp
120+
lib/DSA/StdLibPass.cpp
121+
lib/DSA/AllocatorIdentification.cpp
122+
lib/DSA/CompleteBottomUp.cpp
123+
lib/DSA/DataStructure.cpp
124+
lib/DSA/GraphChecker.cpp
125+
lib/DSA/Printer.cpp
126+
lib/DSA/TopDownClosure.cpp
127+
lib/DSA/Basic.cpp
128+
lib/DSA/DSCallGraph.cpp
129+
lib/DSA/DataStructureStats.cpp
130+
lib/DSA/TypeSafety.cpp
131+
lib/DSA/BottomUpClosure.cpp
132+
lib/DSA/DSGraph.cpp
133+
lib/DSA/EntryPointAnalysis.cpp
134+
lib/DSA/Local.cpp
135+
lib/DSA/SanityCheck.cpp
136+
)
137+
138+
add_library(smackTranslator STATIC
139+
include/smack/smack.h
140+
include/smack/BoogieAst.h
141+
include/smack/BplFilePrinter.h
142+
include/smack/BplPrinter.h
143+
include/smack/DSAAliasAnalysis.h
144+
include/smack/SmackInstGenerator.h
145+
include/smack/SmackModuleGenerator.h
146+
include/smack/SmackOptions.h
147+
include/smack/SmackRep.h
148+
include/smack/SmackRep2dMem.h
149+
include/smack/SmackRepFlatMem.h
150+
lib/smack/BoogieAst.cpp
151+
lib/smack/BplFilePrinter.cpp
152+
lib/smack/BplPrinter.cpp
153+
lib/smack/DSAAliasAnalysis.cpp
154+
lib/smack/SmackInstGenerator.cpp
155+
lib/smack/SmackModuleGenerator.cpp
156+
lib/smack/SmackOptions.cpp
157+
lib/smack/SmackRep.cpp
158+
lib/smack/SmackRep2dMem.cpp
159+
lib/smack/SmackRepFlatMem.cpp
160+
)
161+
162+
add_executable(smack
163+
tools/smack/smack.cpp
164+
)
165+
166+
set_target_properties(smack smackTranslator assistDS dsa
167+
PROPERTIES COMPILE_FLAGS "${LLVM_CXXFLAGS}")
168+
169+
target_link_libraries(smackTranslator ${LLVM_LIBS} ${LLVM_LDFLAGS})
170+
target_link_libraries(smack smackTranslator assistDS dsa)
171+
172+
INSTALL(TARGETS smack smackTranslator assistDS dsa
173+
RUNTIME DESTINATION bin
174+
LIBRARY DESTINATION lib
175+
ARCHIVE DESTINATION lib
176+
)
177+
178+
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bin/boogie
179+
${CMAKE_CURRENT_SOURCE_DIR}/bin/corral
180+
${CMAKE_CURRENT_SOURCE_DIR}/bin/llvm2bpl.py
181+
${CMAKE_CURRENT_SOURCE_DIR}/bin/smackgen.py
182+
${CMAKE_CURRENT_SOURCE_DIR}/bin/smack-verify.py
183+
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
184+
GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
185+
DESTINATION bin
186+
)
187+

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# Indicates our relative path to the top of the project's root directory.
99
#
1010
LEVEL = .
11-
DIRS = lib
11+
DIRS = lib tools
1212
EXTRA_DIST = include
1313

1414
#

Makefile.common.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Set the name of the project here
22
PROJECT_NAME := smack
3-
PROJ_VERSION := 1.3.1
3+
PROJ_VERSION := 1.4.0
44

55
# Set this variable to the top of the LLVM source tree.
66
LLVM_SRC_ROOT = @LLVM_SRC@

Makefile.llvm.config.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%
5959
prefix := $(PROJ_INSTALL_ROOT)
6060
PROJ_prefix := $(prefix)
6161
ifndef PROJ_VERSION
62-
PROJ_VERSION := 1.3.1
62+
PROJ_VERSION := 1.4.0
6363
endif
6464

6565
PROJ_bindir := $(PROJ_prefix)/bin

autoconf/config.guess

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,9 @@ EOF
961961
ppc64:Linux:*:*)
962962
echo powerpc64-unknown-linux-gnu
963963
exit ;;
964+
ppc64le:Linux:*:*)
965+
echo powerpc64le-unknown-linux-gnu
966+
exit ;;
964967
ppc:Linux:*:*)
965968
echo powerpc-unknown-linux-gnu
966969
exit ;;

autoconf/config.sub

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,8 @@ case $basic_machine in
251251
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
252252
| am33_2.0 \
253253
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
254-
| be32 | be64 \
254+
| be32 | be64 \
255+
| aarch64 \
255256
| bfin \
256257
| c4x | clipper \
257258
| d10v | d30v | dlx | dsp16xx \
@@ -359,6 +360,7 @@ case $basic_machine in
359360
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
360361
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
361362
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
363+
| aarch64-* \
362364
| avr-* | avr32-* \
363365
| be32-* | be64-* \
364366
| bfin-* | bs2000-* \

0 commit comments

Comments
 (0)