Ryan Houdek
b161a74365
Misc: Adds some missing headers
...
Newer compiler and libraries got angry that these were missing.
2026-08-07 14:52:00 -07:00
LC
37c809471b
ElfContainer: Amend entry iteration in GetDynamicLibs()
...
These were using i in the termination condition, which is for section
headers, not entries.
2026-07-12 00:19:28 -04:00
Tony Wasserka
c67ffb82a8
Core: Support reporting blocks that are uncacheable due to unhandled ELF relocations
2026-03-18 11:59:44 +01:00
Tony Wasserka
1ea24f3d6c
LinuxSyscalls: Enable delayed code cache load for ELF files
...
Specifically this is needed if any ELF relocations cover read-only code
sections, which is indicated in the ELF headers via DT_TEXTREL/DF_TEXTREL.
2026-03-18 11:59:41 +01:00
Tony Wasserka
293568be36
FEXOfflineCompiler: Apply relocations to loaded ELF binaries
2026-03-18 11:57:38 +01:00
Tony Wasserka
152fe81d16
LinuxSyscalls: Parse and provide ELF relocation information to the JIT
2026-03-18 11:57:28 +01:00
crueter
588fec3b89
[cmake] reduce usage of trivial variables
...
Trivial variables like SRCS, NAME, etc. actually do more harm than good.
They *will* make your IDE mad, and are also less readable. Remember:
verbosity is not a bad thing! Usually
Also: did a few tiny cleanups that I missed from my `endpara` PR.
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-27 21:16:51 -05:00
crueter
43173df446
[cmake] prefer end parenthesis on same line, no space after some calls
...
- Some CMake LSPs have aneurysms when you put the end parenthesis on a
different line. Annoying? Yes, but this is all we can really do about
it for now.
- `set`, `option`, and `message` should not have spaces before their
opening parenthesis.
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-24 19:11:42 -05:00
crueter
f2a1243892
[cmake] use MINGW builtin rather than custom detection
...
CMake has had the `MINGW` builtin to describe MinGW targets since at
least version 3.2, so it can safely be used. This variable is also set
for the MSYS2 environments, so CLANGARM64 also correctly sets `MINGW`.
Note that this depends on https://github.com/FEX-Emu/jemalloc/pull/11 .
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-24 15:13:53 -05:00
Billy Laws
86211e18d7
ALookupExecutableFileSection: Take thread argument as an optional pointer
2025-12-23 23:44:58 +00:00
Will Campbell
1876d6b923
Remap cmdline
2025-12-03 18:15:33 -08:00
Will Campbell
0e2629bdd4
Address review feedback
2025-11-25 14:09:29 -08:00
Will Campbell
a67fe561a1
Reflect application changes to argv[0] in /proc/self/cmdline
2025-11-21 16:00:57 -08:00
Ryan Houdek
643dd56b74
FEX: Removes sone hardcoded 4096 constants
...
Use our defined variable instead.
2025-10-21 09:18:07 -07:00
Lioncache
8513c02ec1
ELFParser: Avoid unnecessary copies
...
Gets rid of a few 56 byte copies.
2025-10-08 21:20:46 -04:00
Ryan Houdek
673e826e46
FEX: Remove InlineSyscall and related flags
...
FEXCore no longer optimizes syscalls to be inline.
NFC, just avoids passing around a bunch of data structures for no
reason.
2025-10-08 19:33:58 -07:00
Ryan Houdek
85e67f92c5
FEX: Rebrand FEXInterpreter as FEX
...
Still creates a copy of FEXInterpreter from FEX for downstream projects
to have some time to get off the old name. Creating a symlink is kind of
a pain in cmake so just doing an install copy is easy.
2025-09-15 13:06:48 -07:00
Tony Wasserka
0749477eb9
CodeCache: Introduce revamped interfaces
2025-09-11 17:03:50 +02:00
Lioncache
b2407352a9
IR: Remove unnecessary forward declarations/headers
...
Pares the base IR header down to a modest size and also reveals a few indirect
reliances on the allocator facilities.
2025-09-08 22:03:25 -04:00
Lioncache
17fbe52cf6
CodeLoader: Mark GetStackPointer() as const
...
This isn't intended to modify anything.
2025-09-08 12:19:15 -04:00
Lioncache
ecc526a9d8
CodeLoader: Make GetApplicationArguments() return by reference
...
We don't really need to make this potentially return a null pointer when we could always return a valid instance
that would just happen to be empty if unused.
2025-09-08 12:07:19 -04:00
Lioncache
436f4aa953
CodeLoader: Make GetExecveArguments() return by value
...
Same behavior, but more straightforward.
2025-09-08 12:07:19 -04:00
Lioncache
fd10ce0600
CodeLoader: Return auxv results by value
...
Same behavior, but without the need to care about out values.
2025-09-08 12:07:14 -04:00
Lioncache
d9cd40eb48
CodeLoader: Remove unused AddIR() member function
...
This isn't used in any implementations anymore.
2025-09-08 10:34:13 -04:00
Ryan Houdek
3db1f1e01f
Merge pull request #4826 from Sonicadvance1/classify_features
...
unittests/ASM: Adds support for classifying more requirements
2025-09-04 11:19:41 -07:00
Ryan Houdek
1797c3c617
unittests/ASM: Add support for more feature flags
2025-09-02 18:15:31 -07:00
Lioncache
1f756fb386
General: Replace usages of .at(0) with .data() where applicable
...
This is generally more straightforward in cases where bounds checking isn't necessary.
2025-09-02 13:03:37 -04:00
Ryan Houdek
24ff6bfde5
ELFContainer: Remove tuple usage
2025-07-25 19:33:32 -07:00
Paulo Matos
5267cde60e
Whole-tree reformat with clang-format-19
2025-07-17 08:10:00 +02:00
Billy Laws
261df26cff
DummyHandlers: Stub SyscallHandler executable mapping queries
2025-07-10 16:00:24 +01:00
Ryan Houdek
5c7c959dd9
TestHarnessRunner: Stop setting the guest RSP for ARM test runner.
...
This matches behaviour with the x86 host runner that RSP isn't
guaranteed to be set to a valid memory location. Make sure when running
tests on ARM that it gets the same behaviour.
2025-05-26 13:02:07 -07:00
Billy Laws
23017af874
TestHarnessRunner: Call the frontend mapping callback for created mappings
2025-04-19 15:29:23 +01:00
LC
b145e894e4
Merge pull request #4466 from Sonicadvance1/sanitize_programheader_size
...
ELFParser: Sanity check ELF program headers
2025-03-30 12:23:16 -04:00
Ryan Houdek
a16cc87852
ELFContainer: Removes unused debug print functions
...
These are completely unused since this ELFContainer is significantly
less utilized than original expectations.
More of this code is dead and can be removed in the future.
2025-03-30 09:01:43 -07:00
Ryan Houdek
1050b60057
ELFParser: Sanity check ELF program headers
...
Malformed ELF files could parse in a bad offset.
2025-03-30 08:56:14 -07:00
Ryan Houdek
b0b41d00ee
Various: More static analysis warnings cleanup
...
NFC
2025-03-12 17:27:41 -07:00
Ryan Houdek
afa5ad5f9f
Merge pull request #4351 from Sonicadvance1/fix_pagesize_check
...
Linux: Fixes PAGESIZE checks that could return <= 0
2025-02-13 10:54:01 -08:00
Ryan Houdek
73802492b8
CommonTools: Removes ELFSymbolDatabase
...
This is completely unused.
2025-02-13 00:14:08 -08:00
Ryan Houdek
5d37253e85
Linux: Fixes PAGESIZE checks that could return <= 0
...
If any `sysconf(_SC_PAGESIZE);` errors then we can get bad values, make
sure to at minimum use the x86 page size.
Also changes a hardcoded page size to use the FEX pagesize define.
2025-02-12 23:32:15 -08:00
Ryan Houdek
aff3914a66
FEXServerClient: Fix searching for FEXServer
...
argv[0] is whatever the user passed in and may not directly be
FEXLoader/FEXInterpreter's path. Make sure get the full path.
2025-02-10 01:22:47 -08:00
Ryan Houdek
8e511e7db4
FEXServer: Fixes FEX_PORTABLE usage
...
This was causing FEXServer to look in to global installed paths and
local paths for things when FEXServer was started.
Ensure it listens to FEX_PORTABLE so this doesn't occur.
This also requires us to scan both data directories and config
directories to find them.
2025-02-05 15:59:29 -08:00
Tony Wasserka
e54b9237c6
Drop use of assume-asserting logging macros
2025-01-21 12:01:33 +01:00
Ryan Houdek
f0fa7a5b6a
FEXCore: Moves SignalThread/SignalEvent to Frontend
...
This is purely a Linux frontend construct now, move it.
2024-11-28 00:57:50 -08:00
Ryan Houdek
54fc8cb0bd
TestHarnessRunner: Support querying AFP for features
...
Also fixes desync of flags
2024-07-20 15:34:54 -07:00
Ryan Houdek
add0e7a8db
HostFeatures: Removes distinction between AVX and AVX2
...
We now no longer care about AVX versions, consolidate them in to a
single config option which enables both.
2024-06-26 14:56:01 -07:00
Ryan Houdek
542ed8b6ad
Implement support for querying AES256 support
...
This is a different feature flag than regular AES as the default AES+AVX
only operates on 128-bit wide vectors.
With the newer `VAES` extension this is expanded to 256-bit.
2024-06-19 05:51:47 -07:00
Paulo Matos
905aa935f5
Reformat until fixed-point
...
Followup to 2b4ec88dae .
Some files needed a couple of calls to clang-format 16.0.6 to
reach a fixed point.
2024-04-15 09:40:00 +02:00
Paulo Matos
2b4ec88dae
Whole-tree reformat
...
This follows discussions from #3413 .
Followup commits add clang-format file, script and blame ignore lists.
2024-04-12 16:26:02 +02:00
Ryan Houdek
4214d9bda0
Merge pull request #3538 from pmatos/OffsetofOoB
...
Fix reference to out of bounds address in offsetof
2024-04-01 19:41:57 -07:00
Ryan Houdek
5c29c9d464
Merge pull request #3527 from Sonicadvance1/move_type_defines
...
Moves FHU TypeDefines to FEXCore includes
2024-04-01 08:57:22 -07:00