#jira UE-91610
#rb Arciel.Rekman
#ROBOMERGE-SOURCE: CL 12725322 in //UE4/Release-4.25/... via CL 12725325 via CL 12781721
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12782533 by brandon schaefer in Main branch]
- Does not have the changes for new .ini file locations
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 12676628 via CL 12676630 via CL 12676633
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12676637 by josh adams in Main branch]
#jira UE-91573
#rb Arciel.Rekman
#ROBOMERGE-SOURCE: CL 12633891 in //UE4/Release-4.25/... via CL 12633900 via CL 12633917
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12633936 by brandon schaefer in Main branch]
#jira none
#rb Ben.Marsh
[FYI] Andrew.Grant, Brandon.Schaefer
#ROBOMERGE-SOURCE: CL 12224860 in //UE4/Release-4.25/... via CL 12224862
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v663-12210973)
[CL 12224868 by michael sartain in Main branch]
#rb none
#jira
#ROBOMERGE-SOURCE: CL 12038895 in //UE4/Release-4.25/... via CL 12038911
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v657-12064184)
[CL 12076066 by ben marsh in Main branch]
#jira none
#rb Brandon.Schaefer, Arciel.Rekman
#ROBOMERGE-SOURCE: CL 11567407 in //UE4/Release-4.25/... via CL 11567420
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11585112 by michael sartain in Main branch]
#rb Arciel.Rekman, Brandon.Schaefer
#jira none
#ROBOMERGE-SOURCE: CL 11566988 in //UE4/Release-4.25/... via CL 11566997
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11582230 by michael sartain in Main branch]
On my machine, this cuts symbol loading time (breaking at main) from 45 seconds
to 17 seconds (with gdb v8.3.1).
#jira none
#rb Brandon.Schaefer
[FYI] Arciel.Rekman
#ROBOMERGE-SOURCE: CL 11551587 in //UE4/Release-4.25/... via CL 11551601
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11578203 by michael sartain in Main branch]
#jira none
#rb Brandon.Schaefer
[FYI] Arciel.Rekman
#ROBOMERGE-SOURCE: CL 11551479 in //UE4/Release-4.25/... via CL 11551487
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)
[CL 11578201 by michael sartain in Main branch]
#rb Chris.Babcock
[FYI] Bart.Hawthorne
#ROBOMERGE-SOURCE: CL 11556950 via CL 11556967 via CL 11556979
#ROBOMERGE-BOT: (v654-11333218)
[CL 11556986 by brandon schaefer in Main branch]
#rb none
[FYI] Michael.Sartain
#ROBOMERGE-SOURCE: CL 11245851 via CL 11245858 via CL 11245866
#ROBOMERGE-BOT: (v0--1)
[CL 11245871 by brandon schaefer in Main branch]
Enables support for LLVMs Memory Sanitizer (-EnableMSan)
#jira UE-87546
#rb none
[FYI] Michael.Sartain, Bob.Tellez
#ROBOMERGE-SOURCE: CL 11121567 via CL 11121591 via CL 11121594
#ROBOMERGE-BOT: (v640-11091645)
[CL 11121609 by brandon schaefer in Main branch]
#rb Ben.Marsh
#ROBOMERGE-OWNER: michael.lentine
#ROBOMERGE-AUTHOR: michael.lentine
#ROBOMERGE-SOURCE: CL 10727300 via CL 10727303 via CL 10727314 via CL 10727316
#ROBOMERGE-BOT: (v610-10636431)
[CL 10727317 by michael lentine in Main branch]
Now works like this now:
Given a LibraryPath
/some/path/to/engine/root/Engine/Binaries/Linux
Split the LibraryPath to everything but the root path to the engine:
Engine/Binaries/Linux
Given the OuputFile.Location.Directory for the module being produced
/some/path/to/engine/root/Engine/Plugin/Foo/Binaries/Linux/
Make relative from the root engine dir against the OutputFile.Location.Directory to produce how many ../ are needed:
MakeRelative /some/path/to/engine/root To -> /some/path/to/engine/root/Engine/Plugin/Foo/Binaries/Linux/ = ../../../../../
Now just combine ../../../../../ + Engine/Binaries/Linux as our new RPath. So now at runtime we can use this relative path to figure out where the *.so we depend on in that dir exists
#jira UE-85654
#rb none
[FYI] Arciel.Rekman, Michael.Sartain
#ROBOMERGE-SOURCE: CL 10644146 via CL 10644154
#ROBOMERGE-BOT: (v609-10634694)
[CL 10644157 by brandon schaefer in Main branch]
The engine will always be built with it as an error.
#rb none
[FYI] Marc.Audy
#jira none
#ROBOMERGE-SOURCE: CL 9839163 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)
[CL 9839167 by ben marsh in Main branch]
When linking shared libs (DSOs) under Linux, we need the -shared-libsan option. This will cause us to load the libclang_rt.asan-x86_64.so, etc and not static link so we need to add the path to the executable rpath.
https://github.com/google/sanitizers/issues/1086https://www.gitmemory.com/issue/google/sanitizers/1086/509784249
Add linux sanitizer information to build details if set. Should look something like this:
------- Build details --------
Using system toolchain.
Using clang (/usr/bin/clang++) version '8.0.1' (string), 8 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /usr/bin/llvm-ar
Building with: AddressSanitizer
Using fast way to relink circularly dependent libraries (no FixDeps).
------------------------------
Cherry pick 9953880, 2539328
#jira none
#rb Brandon.Schaefer
[CL 9619854 by Michael Sartain in 4.24 branch]
We now only check for and use the system compiler if "-ForceUseSystemCompiler" command line is passed
Also don't default to epic compiler if -ForceUseSystemCompiler specified and we can't find the system compiler
More descriptive error messages when linux sdk toolchain not found
$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram
bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development
Fixing inconsistent case in filenames.
Setting up Mono
Building BlankProgram...
Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu.
ERROR: GetBuildPlatform: No BuildPlatform found for Linux
make: *** [Makefile:183: BlankProgram] Error 5
$ make BlankProgram ARGS="-forceusesystemcompiler"
bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development -forceusesystemcompiler
Fixing inconsistent case in filenames.
Setting up Mono
Building BlankProgram...
Unable to locate system compiler (-ForceUseSystemCompiler specified).
ERROR: GetBuildPlatform: No BuildPlatform found for Linux
make: *** [Makefile:183: BlankProgram] Error 5
$ LINUX_MULTIARCH_ROOT= make BlankProgram
bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development
Fixing inconsistent case in filenames.
Setting up Mono
Building BlankProgram...
Unable to locate Linux SDK toolchain. Please run Setup.sh.
ERROR: GetBuildPlatform: No BuildPlatform found for Linux
make: *** [Makefile:183: BlankProgram] Error 5
Cherry pick 9465561, 9472982, 9602106
#jira UE-81290
#rb Brandon.Schaefer
[CL 9619823 by Michael Sartain in 4.24 branch]