--- llvm.src/projects/compiler-rt/test/asan/Unit/lit.site.cfg.py.in
+++ llvm.src/projects/compiler-rt/test/asan/Unit/lit.site.cfg.py.in
@@ -1,6 +1,7 @@
 @LIT_SITE_CFG_IN_HEADER@
 
 import os
+import platform
 
 # Load common config for all compiler-rt unit tests.
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/unittests/lit.common.unit.configured")
@@ -10,6 +11,11 @@ def push_ld_library_path(config, new_path):
     (new_path, config.environment.get('LD_LIBRARY_PATH', '')))
   config.environment['LD_LIBRARY_PATH'] = new_ld_library_path
 
+  if platform.system() == 'FreeBSD':
+    new_ld_32_library_path = os.path.pathsep.join(
+      (new_path, config.environment.get('LD_32_LIBRARY_PATH', '')))
+    config.environment['LD_32_LIBRARY_PATH'] = new_ld_32_library_path
+
 # Setup config name.
 config.name = 'AddressSanitizer-Unit'
 
--- llvm.src/projects/compiler-rt/test/asan/lit.cfg.py
+++ llvm.src/projects/compiler-rt/test/asan/lit.cfg.py
@@ -36,6 +36,12 @@ def push_dynamic_library_lookup_path(config, new_path):
     (new_path, config.environment.get(dynamic_library_lookup_var, '')))
   config.environment[dynamic_library_lookup_var] = new_ld_library_path
 
+  if platform.system() == 'FreeBSD':
+    dynamic_library_lookup_var = 'LD_32_LIBRARY_PATH'
+    new_ld_32_library_path = os.path.pathsep.join(
+      (new_path, config.environment.get(dynamic_library_lookup_var, '')))
+    config.environment[dynamic_library_lookup_var] = new_ld_32_library_path
+
 # Setup config name.
 config.name = 'AddressSanitizer' + config.name_suffix
 
@@ -111,7 +120,7 @@ config.substitutions.append( ("%clangxx ", build_invocation(target_cxxflags)) )
 config.substitutions.append( ("%clang_asan ", build_invocation(clang_asan_cflags)) )
 config.substitutions.append( ("%clangxx_asan ", build_invocation(clang_asan_cxxflags)) )
 if config.asan_dynamic:
-  if config.host_os in ['Linux', 'NetBSD', 'SunOS']:
+  if config.host_os in ['Linux', 'FreeBSD', 'NetBSD', 'SunOS']:
     shared_libasan_path = os.path.join(config.compiler_rt_libdir, "libclang_rt.asan{}.so".format(config.target_suffix))
   elif config.host_os == 'Darwin':
     shared_libasan_path = os.path.join(config.compiler_rt_libdir, 'libclang_rt.asan_{}_dynamic.dylib'.format(config.apple_platform))
--- llvm.src/projects/compiler-rt/test/xray/Unit/lit.site.cfg.py.in
+++ llvm.src/projects/compiler-rt/test/xray/Unit/lit.site.cfg.py.in
@@ -1,6 +1,7 @@
 @LIT_SITE_CFG_IN_HEADER@
 
 import os
+import platform
 
 # Load common config for all compiler-rt unit tests.
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/unittests/lit.common.unit.configured")
@@ -22,3 +23,10 @@ if 'LD_LIBRARY_PATH' in os.environ:
   config.environment['LD_LIBRARY_PATH'] = libdirs
 else:
   config.environment['LD_LIBRARY_PATH'] = config.llvm_lib_dir
+
+if platform.system() == 'FreeBSD':
+  if 'LD_32_LIBRARY_PATH' in os.environ:
+    libdirs = os.path.pathsep.join((config.llvm_lib_dir, os.environ['LD_32_LIBRARY_PATH']))
+    config.environment['LD_32_LIBRARY_PATH'] = libdirs
+  else:
+    config.environment['LD_32_LIBRARY_PATH'] = config.llvm_lib_dir
--- llvm.src/utils/lit/lit/TestingConfig.py
+++ llvm.src/utils/lit/lit/TestingConfig.py
@@ -28,7 +28,8 @@ class TestingConfig:
                      'TEMPDIR', 'AVRLIT_BOARD', 'AVRLIT_PORT',
                      'FILECHECK_DUMP_INPUT_ON_FAILURE', 'FILECHECK_OPTS',
                      'VCINSTALLDIR', 'VCToolsinstallDir', 'VSINSTALLDIR',
-                     'WindowsSdkDir', 'WindowsSDKLibVersion']
+                     'WindowsSdkDir', 'WindowsSDKLibVersion',
+                     'LD_32_LIBRARY_PATH']
 
         if sys.platform == 'win32':
             pass_vars.append('INCLUDE')
