VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2018-09-01 01:13:29 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2018-09-01 01:15:33 +0200
commit5455c89a5016ef73c1b91aaf0a93ea30509026c0 (patch)
treef6d74054503fc7a99dbc2533ddcf4371087374c3
parent09afb91c897e8617b632a6c8cbaab0a98e21549b (diff)
downloadVeraCrypt-5455c89a5016ef73c1b91aaf0a93ea30509026c0.tar.gz
VeraCrypt-5455c89a5016ef73c1b91aaf0a93ea30509026c0.zip
Linux/FreeBSD: Add 32-bit build configuration targetting legacy CPUs that don't support SSE2 instructions.
-rwxr-xr-xsrc/Build/build_veracrypt_linux_no_sse2.sh47
-rwxr-xr-xsrc/Main/Main.make13
-rw-r--r--src/Makefile19
3 files changed, 79 insertions, 0 deletions
diff --git a/src/Build/build_veracrypt_linux_no_sse2.sh b/src/Build/build_veracrypt_linux_no_sse2.sh
new file mode 100755
index 00000000..2f78418f
--- /dev/null
+++ b/src/Build/build_veracrypt_linux_no_sse2.sh
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2013-2017 IDRIX
+# Governed by the Apache License 2.0 the full text of which is contained
+# in the file License.txt included in VeraCrypt binary and source
+# code distribution packages.
+#
+
+# Absolute path to this script
+SCRIPT=$(readlink -f "$0")
+# Absolute path this script is in
+SCRIPTPATH=$(dirname "$SCRIPT")
+# source directory which contains the Makefile
+SOURCEPATH=$(readlink -f "$SCRIPTPATH/..")
+# directory where the VeraCrypt has been checked out
+PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..")
+
+# Make sure only root can run our script
+if [ "$(id -u)" != "0" ]; then
+ echo "VeraCrypt must be built by root" 1>&2
+ exit 1
+fi
+
+# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
+echo "Using wxWidgets sources in $WX_ROOT"
+
+cd $SOURCEPATH
+
+echo "Building GUI version of VeraCrypt"
+
+# this will be the temporary wxWidgets directory
+export WX_BUILD_DIR=$PARENTDIR/wxBuildGuiNoSSE2
+
+make WXSTATIC=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package
+
+# Uncomment below and comment line above to reuse existing wxWidgets build
+# make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package
+
+echo "Building console version of VeraCrypt"
+
+# this will be the temporary wxWidgets directory
+export WX_BUILD_DIR=$PARENTDIR/wxBuildConsoleNoSSE2
+
+make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package
+
+# Uncomment below and comment line above to reuse existing wxWidgets build
+# make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package
diff --git a/src/Main/Main.make b/src/Main/Main.make
index b0408805..581eb34a 100755
--- a/src/Main/Main.make
+++ b/src/Main/Main.make
@@ -121,14 +121,27 @@ ifeq "$(PLATFORM)" "Linux"
ifdef TC_NO_GUI
INSTALLER_TYPE := console
+ifeq "$(origin NOSSE2)" "command line"
+PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_console_$(PLATFORM_ARCH)_legacy.tar.gz
+else
PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_console_$(PLATFORM_ARCH).tar.gz
+endif
else
INSTALLER_TYPE := gui
+ifeq "$(origin NOSSE2)" "command line"
+PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(PLATFORM_ARCH)_legacy.tar.gz
+else
PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(PLATFORM_ARCH).tar.gz
endif
+endif
+ifeq "$(origin NOSSE2)" "command line"
+INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH)_legacy.sh
+INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)-legacy
+else
INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH).sh
INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
+endif
endif
#-----------------------------------
diff --git a/src/Makefile b/src/Makefile
index 4f8bb42b..50af3021 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -22,6 +22,7 @@
# WXSTATIC: Use static wxWidgets library
# SSSE3: Enable SSSE3 support in compiler
# SSE41: Enable SSE4.1 support in compiler
+# NOSSE2: Disable SEE2 support in compiler
#------ Targets ------
# all
@@ -158,6 +159,10 @@ else ifeq "$(CPU_ARCH)" "x64"
C_CXX_FLAGS += -D TC_ARCH_X64
endif
+ifeq "$(origin NOSSE2)" "command line"
+ SIMD_SUPPORTED := 0
+endif
+
#------ Linux configuration ------
@@ -211,6 +216,13 @@ ifeq "$(shell uname -s)" "Linux"
WXCONFIG_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0
endif
endif
+
+ ifeq "$(origin NOSSE2)" "command line"
+ CFLAGS += -mno-sse2
+ CXXFLAGS += -mno-sse2
+ WXCONFIG_CFLAGS += -mno-sse2
+ WXCONFIG_CXXFLAGS += -mno-sse2
+ endif
endif
@@ -317,6 +329,13 @@ ifeq "$(shell uname -s)" "FreeBSD"
CXXFLAGS += -mssse3 -msse4.1
endif
endif
+
+ ifeq "$(origin NOSSE2)" "command line"
+ CFLAGS += -mno-sse2
+ CXXFLAGS += -mno-sse2
+ WXCONFIG_CFLAGS += -mno-sse2
+ WXCONFIG_CXXFLAGS += -mno-sse2
+ endif
endif