FEX-Emu / FEX

A fast usermode x86 and x86-64 emulator for Arm64 Linux
https://fex-emu.com
MIT License
2.36k stars 123 forks source link

How to proceed with building FEX-Emu inside an arm64 container (for testing) #1878

Open Root-voidX opened 2 years ago

Root-voidX commented 2 years ago

Hello,

I am trying to to build FEX inside a CentOS-7 aarch64 container. How do I go about this (i.e. are there sepcific compile options I need to look into)? Next I have created a CentOS-7 x86_64 chroot with all the libraries I need for running my x86_64 program, how do I tell Fex to use the chroot I made?

If all goes well, I want to move this into my proot container as well (is FeX supported inside proot to?)

Thanks

Sonicadvance1 commented 2 years ago

Our wiki page has some information about specific options you would want to follow. https://wiki.fex-emu.com/index.php/Development:Setting_up_FEX#Build_Configuration

For configuring the rootfs there is a small guide here on the wiki about it. Slightly outdated but should be simple enough. https://wiki.fex-emu.com/index.php/Development:Setting_up_RootFS#Setting_RootFS_with_FEXConfig

FEX should work in proot but don't expect the performance to be amazing, Linux applications tend to heavily hit syscalls that Android doesn't support, so you hit the proot syscall emulation path.

Root-voidX commented 2 years ago

I ran into this error:

CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake3 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DENABLE_LLD=True -DBUILD_TESTS=False -DENABLE_ASSERTIONS=False -G Ninja ..
-- The C compiler identification is Clang 3.4.2
-- The CXX compiler identification is Clang 3.4.2
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- broken
CMake Error at /usr/share/cmake3/Modules/CMakeTestCCompiler.cmake:60 (message):
  The C compiler

    "/usr/bin/clang"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /root/FEX/build/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/ninja-build cmTC_578af 
    [1/2] Building C object CMakeFiles/cmTC_578af.dir/testCCompiler.c.o
    [2/2] Linking C executable cmTC_578af
    FAILED: cmTC_578af 
    : && /usr/bin/clang    CMakeFiles/cmTC_578af.dir/testCCompiler.c.o  -o cmTC_578af   && :
    /usr/bin/ld: cannot find crtbegin.o: No such file or directory
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: cannot find -lgcc_s
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    ninja: build stopped: subcommand failed.

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)

-- Configuring incomplete, errors occurred!
See also "/root/FEX/build/CMakeFiles/CMakeOutput.log".
See also "/root/FEX/build/CMakeFiles/CMakeError.log".
Root-voidX commented 2 years ago

Okay, so I made to sure to install all cross gcc packages and I also when in and made symlinks so the libraries that ended with so.X is linked to just .so.

I made it this far:

bash-4.2#  CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake3 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DENABLE_LLD=True -DBUILD_TESTS=False -DENABLE_ASSERTIONS=False -G Ninja ..
-- The C compiler identification is Clang 3.4.2
-- The CXX compiler identification is Clang 3.4.2
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for include file gdb/jit-reader.h
-- Looking for include file gdb/jit-reader.h - not found
-- CCache enabled
-- Performing Test ENUM_ENUM_WARNING
-- Performing Test ENUM_ENUM_WARNING - Failed
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1") 
-- Found Python: /usr/bin/python3.6 (found suitable version "3.6.8", minimum required is "3.0") found components:  Interpreter 
-- Module support is disabled.
-- Version: 8.1.1
-- Build type: RELEASE
-- CXX_STANDARD: 20
-- Performing Test has_std_20_flag
-- Performing Test has_std_20_flag - Success
-- Performing Test has_std_2a_flag
-- Performing Test has_std_2a_flag - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Performing Test FMT_HAS_VARIANT
-- Performing Test FMT_HAS_VARIANT - Failed
-- Required features: cxx_variadic_templates
-- Performing Test HAS_NULLPTR_WARNING
-- Performing Test HAS_NULLPTR_WARNING - Failed
-- Looking for strtod_l
-- Looking for strtod_l - not found
-- Performing Test GCC_COLOR
-- Performing Test GCC_COLOR - Success
-- Performing Test CLANG_COLOR
-- Performing Test CLANG_COLOR - Success
-- Performing Test COMPILER_SUPPORTS_CPU_TYPE
-- Performing Test COMPILER_SUPPORTS_CPU_TYPE - Success
-- Performing Test compiles
-- Performing Test compiles - Failed
-- Found Git: /usr/bin/git (found version "1.8.3.1") 
-- Configuring done
-- Generating done
CMake Warning (dev):
  The detected version of Ninja:

    1.7.2

  is less than the version of Ninja required by CMake for adding restat
  dependencies to the build.ninja manifest regeneration target:

    1.8

  Any pre-check scripts, such as those generated for file(GLOB
  CONFIGURE_DEPENDS), will not be run by Ninja.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Build files have been written to: /root/FEX/build
bash-4.2# 
Root-voidX commented 2 years ago

When i run ninja-build I get this errror:

bash-4.2# ninja-build
[34/325] Building CXX object External/...rc/CMakeFiles/vixl.dir/utils-vixl.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/utils-vixl.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/utils-vixl.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/utils-vixl.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/utils-vixl.cc.o -c ../External/vixl/src/utils-vixl.cc
In file included from ../External/vixl/src/utils-vixl.cc:27:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cstdio:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[35/325] Building CXX object External/...vixl.dir/compiler-intrinsics-vixl.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/compiler-intrinsics-vixl.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/compiler-intrinsics-vixl.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/compiler-intrinsics-vixl.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/compiler-intrinsics-vixl.cc.o -c ../External/vixl/src/compiler-intrinsics-vixl.cc
In file included from ../External/vixl/src/compiler-intrinsics-vixl.cc:27:
In file included from ../External/vixl/src/compiler-intrinsics-vixl.h:32:
../External/vixl/src/globals-vixl.h:31:2: error: VIXL requires C++14
#error VIXL requires C++14
 ^
In file included from ../External/vixl/src/compiler-intrinsics-vixl.cc:27:
In file included from ../External/vixl/src/compiler-intrinsics-vixl.h:32:
In file included from ../External/vixl/src/globals-vixl.h:53:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cstdarg:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
2 errors generated.
[36/325] Building CXX object External/...keFiles/vixl.dir/code-buffer-vixl.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/code-buffer-vixl.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/code-buffer-vixl.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/code-buffer-vixl.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/code-buffer-vixl.cc.o -c ../External/vixl/src/code-buffer-vixl.cc
In file included from ../External/vixl/src/code-buffer-vixl.cc:31:
In file included from ../External/vixl/src/code-buffer-vixl.h:30:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cstring:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[37/325] Building CXX object External/.../CMakeFiles/vixl.dir/cpu-features.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/cpu-features.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/cpu-features.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/cpu-features.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/cpu-features.cc.o -c ../External/vixl/src/cpu-features.cc
In file included from ../External/vixl/src/cpu-features.cc:27:
In file included from /usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/ostream:38:
In file included from /usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/ios:38:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/iosfwd:38:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[38/325] Building CXX object External/....dir/aarch64/instructions-aarch64.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/aarch64/instructions-aarch64.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/aarch64/instructions-aarch64.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/aarch64/instructions-aarch64.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/aarch64/instructions-aarch64.cc.o -c ../External/vixl/src/aarch64/instructions-aarch64.cc
In file included from ../External/vixl/src/aarch64/instructions-aarch64.cc:27:
In file included from ../External/vixl/src/aarch64/instructions-aarch64.h:30:
../External/vixl/src/aarch64/../globals-vixl.h:31:2: error: VIXL requires C++14
#error VIXL requires C++14
 ^
In file included from ../External/vixl/src/aarch64/instructions-aarch64.cc:27:
In file included from ../External/vixl/src/aarch64/instructions-aarch64.h:30:
In file included from ../External/vixl/src/aarch64/../globals-vixl.h:53:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cstdarg:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
2 errors generated.
[39/325] Building CXX object External/...dir/aarch64/assembler-sve-aarch64.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-sve-aarch64.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-sve-aarch64.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-sve-aarch64.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-sve-aarch64.cc.o -c ../External/vixl/src/aarch64/assembler-sve-aarch64.cc
In file included from ../External/vixl/src/aarch64/assembler-sve-aarch64.cc:27:
In file included from ../External/vixl/src/aarch64/assembler-aarch64.h:30:
In file included from ../External/vixl/src/aarch64/../assembler-base-vixl.h:30:
In file included from ../External/vixl/src/code-buffer-vixl.h:30:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cstring:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[40/325] Building CXX object External/...EX_jemalloc.dir/src/jemalloc_cpp.cpp.o
FAILED: External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/jemalloc_cpp.cpp.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -D_GNU_SOURCE -D_M_ARM_64=1 -D_REENTRANT -IExternal/jemalloc -I../External/jemalloc -I../External/jemalloc/pregen/include -I../External/jemalloc/include -O2 -DNDEBUG -flto -fPIC   -fvisibility=hidden -std=gnu++1y -MD -MT External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/jemalloc_cpp.cpp.o -MF External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/jemalloc_cpp.cpp.o.d -o External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/jemalloc_cpp.cpp.o -c ../External/jemalloc/src/jemalloc_cpp.cpp
In file included from ../External/jemalloc/src/jemalloc_cpp.cpp:1:
In file included from /usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/mutex:38:
In file included from /usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/tuple:38:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/utility:68:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[41/325] Building CXX object External/...iles/vixl.dir/aarch64/cpu-aarch64.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/aarch64/cpu-aarch64.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/aarch64/cpu-aarch64.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/aarch64/cpu-aarch64.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/aarch64/cpu-aarch64.cc.o -c ../External/vixl/src/aarch64/cpu-aarch64.cc
In file included from ../External/vixl/src/aarch64/cpu-aarch64.cc:32:
In file included from ../External/vixl/src/aarch64/../utils-vixl.h:30:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cmath:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[42/325] Building CXX object External/...ixl.dir/aarch64/assembler-aarch64.cc.o
FAILED: External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-aarch64.cc.o 
/usr/bin/ccache /usr/bin/clang++  -DENABLE_JEMALLOC=1 -DVIXL_CODE_BUFFER_MMAP=1 -DVIXL_INCLUDE_TARGET_AARCH64=1 -D_M_ARM_64=1 -IExternal/vixl/src -I../External/vixl/src -I../External/jemalloc/pregen/include -I../External/robin-map/include -O2 -DNDEBUG -fomit-frame-pointer -flto -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -ffunction-sections -std=gnu++1y -MD -MT External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-aarch64.cc.o -MF External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-aarch64.cc.o.d -o External/vixl/src/CMakeFiles/vixl.dir/aarch64/assembler-aarch64.cc.o -c ../External/vixl/src/aarch64/assembler-aarch64.cc
In file included from ../External/vixl/src/aarch64/assembler-aarch64.cc:28:
/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5/../../../../include/c++/4.8.5/cmath:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
[43/325] Building C object External/je...keFiles/FEX_jemalloc.dir/src/pages.c.o
FAILED: External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/pages.c.o 
/usr/bin/ccache /usr/bin/clang -DENABLE_JEMALLOC=1 -D_GNU_SOURCE -D_M_ARM_64=1 -D_REENTRANT -IExternal/jemalloc -I../External/jemalloc -I../External/jemalloc/pregen/include -I../External/jemalloc/include -O2 -DNDEBUG -flto -fPIC   -fvisibility=hidden -std=gnu11 -MD -MT External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/pages.c.o -MF External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/pages.c.o.d -o External/jemalloc/CMakeFiles/FEX_jemalloc.dir/src/pages.c.o   -c ../External/jemalloc/src/pages.c
../External/jemalloc/src/pages.c:323:6: error: use of undeclared identifier 'JEMALLOC_MADV_FREE'
            JEMALLOC_MADV_FREE
            ^
1 error generated.
ninja: build stopped: subcommand failed.
bash-4.2# 
Sonicadvance1 commented 2 years ago

/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5 This is because your build environment is significantly older than what we support. We require clang-10 (maybe 11 if we broke something?) and a significantly newer libstdc++. We require a compiler that supports C++20 minimum basically.

Sonicadvance1 commented 2 years ago

CentOS-8 at least has clang-12. Not sure if the rest of its packages are new enough.

Root-voidX commented 2 years ago

/usr/bin/../lib/gcc/aarch64-linux-gnu/4.8.5 This is because your build environment is significantly older than what we support. We require clang-10 (maybe 11 if we broke something?) and a significantly newer libstdc++. We require a compiler that supports C++20 minimum basically.

Ahh, well centos7 is what my x86_64 software im trying to run only supports, it doesnt even work on centos 8. Can i use my centos-7 chroot in a different aarch host and will it work with FEX? If so I can just build this in fedora 35 aarch64 host?

Sonicadvance1 commented 2 years ago

A different distro chroot theoretically should work but you may encounter some weird things. Can only learn by trying.

Root-voidX commented 2 years ago

So i switched to fedora 35 aarch64, I got a bunch of warnings during ninja build, anything of concern?

bash-5.1# ninja    
[0/2] Re-checking globbed directories...
[64/324] Building CXX object External/imgui/CMakeFiles/imgui.dir/imgui_widgets.cpp.o
/root/compile/FEX/External/imgui/imgui_widgets.cpp:5415:98: warning: bitwise operation between different enumeration types ('ImGuiTreeNodeFlags_' and 'ImGuiTreeNodeFlagsPrivate_') is deprecated [-Wdeprecated-enum-enum-conversion]
    flags |= ImGuiTreeNodeFlags_CollapsingHeader | (p_open ? ImGuiTreeNodeFlags_AllowItemOverlap | ImGuiTreeNodeFlags_ClipLabelForTrailingButton : 0);
                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
[146/324] Building CXX object External/FEXCore/So...r/Interface/Core/Dispatcher/Arm64Dispatcher.cpp.o
/root/compile/FEX/External/FEXCore/Source/Interface/Core/Dispatcher/Arm64Dispatcher.cpp:523:31: warning: offset of on non-standard-layout type 'FEXCore::Core::InternalThreadState' [-Winvalid-offsetof]
  emit.ldr(x0, MemOperand(x0, offsetof(FEXCore::Core::InternalThreadState, CTX))); // Get Context
                              ^                                            ~~~
/usr/lib64/clang/13.0.0/include/stddef.h:104:24: note: expanded from macro 'offsetof'
#define offsetof(t, d) __builtin_offsetof(t, d)
                       ^                     ~
/root/compile/FEX/External/FEXCore/Source/Interface/Core/Dispatcher/Arm64Dispatcher.cpp:524:31: warning: offset of on non-standard-layout type 'FEXCore::Context::Context' [-Winvalid-offsetof]
  emit.ldr(w0, MemOperand(x0, offsetof(FEXCore::Context::Context, Config.RunningMode)));
                              ^                                   ~~~~~~
/usr/lib64/clang/13.0.0/include/stddef.h:104:24: note: expanded from macro 'offsetof'
#define offsetof(t, d) __builtin_offsetof(t, d)
                       ^                     ~
2 warnings generated.
[182/324] Building CXX object External/FEXCore/So...dir/Interface/Core/Dispatcher/X86Dispatcher.cpp.o
/root/compile/FEX/External/FEXCore/Source/Interface/Core/Dispatcher/X86Dispatcher.cpp:430:26: warning: offset of on non-standard-layout type 'FEXCore::Context::Context' [-Winvalid-offsetof]
  emit.cmp(dword [rax + (offsetof(FEXCore::Context::Context, Config.RunningMode))], 0);
                         ^                                   ~~~~~~
/usr/lib64/clang/13.0.0/include/stddef.h:104:24: note: expanded from macro 'offsetof'
#define offsetof(t, d) __builtin_offsetof(t, d)
                       ^                     ~
1 warning generated.
[193/324] Building CXX object External/FEXCore/So...re_object.dir/Interface/IR/Passes/ConstProp.cpp.o
/root/compile/FEX/External/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp:381:14: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
        auto mask = getMask(IROp);
             ^
1 warning generated.
[246/324] Building CXX object Source/Tests/LinuxSyscalls/CMakeFiles/LinuxEmulation.dir/Syscalls.cpp.o
/root/compile/FEX/Source/Tests/LinuxSyscalls/Syscalls.cpp:543:14: warning: unused variable 'ok' [-Wunused-variable]
        auto ok = GuestMunmap(reinterpret_cast<void*>(DataSpace + NewSizeAligned), RemainingSize);
             ^
/root/compile/FEX/Source/Tests/LinuxSyscalls/Syscalls.cpp:564:15: warning: unused variable 'ok' [-Wunused-variable]
          int ok = GuestMunmap(reinterpret_cast<void*>(NewBRK), AllocateNewSize);
              ^
2 warnings generated.
[324/324] cd /root/compile/FEX/build/Source/Tests...Loader /root/compile/FEX/build/Bin/FEXInterpreter
bash-5.1# 
Sonicadvance1 commented 2 years ago

Nothing of concern, those are expected warnings during build.