0vercl0k / wtf

wtf is a distributed, code-coverage guided, customizable, cross-platform snapshot-based fuzzer designed for attacking user and / or kernel-mode targets running on Microsoft Windows and Linux user-mode (experimental!).
MIT License
1.47k stars 132 forks source link

Compilation Issues with bochscpu and SoftFloat-3e #212

Closed bluestar628 closed 1 week ago

bluestar628 commented 2 months ago

I hope this message finds you well. I am currently working on a project that involves the bochscpu crate and the SoftFloat-3e library, and I have encountered a couple of issues during the compilation process. I would greatly appreciate your assistance in resolving these problems.

Firstly, I noticed that the field names of the Bit64u struct have been changed in the latest version of the library. Specifically, the fraction and exp fields have been renamed to signif and signExp, respectively. To address this, I have made the necessary modifications to the bochscpu/cabi/cpu-cabi.cc file, as shown below:

BOCHSAPI void cpu_get_fp_st(unsigned id, unsigned reg, Bit64u *fraction, Bit16u *exp) {
    const floatx80 f = BX_CPU(id)->the_i387.st_space[reg];
    // *fraction = f.fraction;
    // *exp = f.exp;
    *fraction = f.signif;
    *exp = f.signExp;
}

BOCHSAPI void cpu_set_fp_st(unsigned id, unsigned reg, const Bit64u fraction, const Bit16u exp) {
    floatx80 f;
    // f.fraction = fraction;
    // f.exp = exp;
    f.signif = fraction;
    f.signExp = exp;
    BX_CPU(id)->the_i387.st_space[reg] = f;
}

Secondly, after applying the above changes, the compilation process is failing during the linking stage while executing the build-bochscpu.bat script. I have observed several error messages related to unresolved symbols from the SoftFloat-3e library, such as f16_add, f16_sub, f16_mul, f16_mulAdd, f16_div, f16_min, f16_max, f16_getExp, and f16_sqrt. It appears that the project is unable to link against the compiled SoftFloat-3e library (softfloat3e.lib). However, I have been unable to locate the softfloat3e.lib file in the project directory, and I suspect that the file name may have been changed.

I would be immensely grateful if you could provide guidance on how to resolve these linking issues and ensure that the project successfully links against the SoftFloat-3e library. Thank you in advance for your time and assistance. I am eager to resolve these compilation issues as I need to debug the backends to find what's wrong with my snapshot so that it is trapped into nt!KiPageFaultShadow+0x5 after executing the first instruction, "mov [rsp-8+arg_0], rcx" as I am sure that the rsp is valid.

Compilation error message:

Compiling stderrlog v0.5.4
   Compiling serde_derive v1.0.210
   Compiling ctor v0.1.26
   Compiling toml v0.5.11
   Compiling serde_yaml v0.8.26
warning: field `1` is never read
  --> G:\CurrentRPCTools\WindowsFuzzing\wtf\wtf\src\libs\bochscpu-bins\bxbuild-win\bochscpu\src\params.rs:20:39
   |
20 | pub struct ParamEnum(pub *mut c_void, Vec<*const c_char>);
   |            ---------                  ^^^^^^^^^^^^^^^^^^
   |            |
   |            field in this struct
   |
   = help: consider removing this field
   = note: `#[warn(dead_code)]` on by default

error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\bin\\HostX64\\x64\\link.exe" "/DEF:F:\\.Temp\\rustcWPGiFX\\lib.def" "/NOLOGO" "F:\\.Temp\\rustcWPGiFX\\symbols.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.0.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.1.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.2.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.3.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.4.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.5.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.6.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.7.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.bochscpu.a44aa5266249acb0-cgu.8.rcgu.o" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.f4oguc64hkkbg4gfg55f9dmap.rcgu.rmeta" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\cpu-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\mem-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\instr-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\logfunctions-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\siminterface-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\paramtree.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\devices-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\dbg.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\gui.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\system-cabi.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\apic.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out\\opcode.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu/lib\\cpu.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu/lib\\fpu.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu/lib\\cpudb.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu/lib\\avx.lib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libblake3-23be2d8bb30a750c.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libconstant_time_eq-d04740cb556021d0.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libcfg_if-b5f46f0ea4a6f0fe.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libarrayvec-254dfa84588d9088.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libarrayref-312758f5bc1d85e3.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libfnv-6d8e531065fed56d.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\libserde-34f4334a4a565a81.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\liblog-4b1cb8cf9c197f2b.rlib" "G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\liblazy_static-741aca263e91dc5a.rlib" "C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\std-42f4918e53d612ac.dll.lib" "C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-533d9db2e4b6d054.rlib" "kernel32.lib" "kernel32.lib" "advapi32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "dbghelp.lib" "/defaultlib:msvcrt" "F:\\.Temp\\rustcWPGiFX\\api-ms-win-core-synch-l1-2-0.dll_imports_indirect.lib" "F:\\.Temp\\rustcWPGiFX\\bcryptprimitives.dll_imports_indirect.lib" "/NXCOMPAT" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\bochscpu-b12756553c7abc1b\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu/lib" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\blake3-c1fce7be771b02c0\\out" "/LIBPATH:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\build\\blake3-c1fce7be771b02c0\\out" "/OUT:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.dll" "/OPT:REF,ICF" "/DLL" "/IMPLIB:G:\\CurrentRPCTools\\WindowsFuzzing\\wtf\\wtf\\src\\libs\\bochscpu-bins\\bxbuild-win\\bochscpu-ffi\\target\\release\\deps\\bochscpu.dll.lib" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NATVIS:C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\zyx\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note:    Creating library G:\CurrentRPCTools\WindowsFuzzing\wtf\wtf\src\libs\bochscpu-bins\bxbuild-win\bochscpu-ffi\target\release\deps\bochscpu.dll.lib and object G:\CurrentRPCTools\WindowsFuzzing\wtf\wtf\src\libs\bochscpu-bins\bxbuild-win\bochscpu-ffi\target\release\deps\bochscpu.dll.exp␍
          LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library␍
          cpu.lib(fetchdecode32.o) : error LNK2019: unresolved external symbol "unsigned short __cdecl f16_add(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_add@@YAGGGPEAUsoftfloat_status_t@@@Z) referenced in function "public: static void __cdecl BX_CPU_C::HANDLE_AVX_PFP_2OP<&void __cdecl xmm_addph(union bx_xmm_reg_t *,union bx_xmm_reg_t const *,struct softfloat_status_t &)>(class bxInstruction_c *)" (??$HANDLE_AVX_PFP_2OP@$1?xmm_addph@@YAXPEATbx_xmm_reg_t@@PEBT2@AEAUsoftfloat_status_t@@@Z@BX_CPU_C@@SAXPEAVbxInstruction_c@@@Z)␍
          avx.lib(avx512_pfp16.o) : error LNK2001: unresolved external symbol "unsigned short __cdecl f16_add(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_add@@YAGGGPEAUsoftfloat_status_t@@@Z)␍
          cpu.lib(fetchdecode32.o) : error LNK2019: unresolved external symbol "unsigned short __cdecl f16_sub(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_sub@@YAGGGPEAUsoftfloat_status_t@@@Z) referenced in function "public: static void __cdecl BX_CPU_C::HANDLE_AVX_PFP_2OP<&void __cdecl xmm_subph(union bx_xmm_reg_t *,union bx_xmm_reg_t const *,struct softfloat_status_t &)>(class bxInstruction_c *)" (??$HANDLE_AVX_PFP_2OP@$1?xmm_subph@@YAXPEATbx_xmm_reg_t@@PEBT2@AEAUsoftfloat_status_t@@@Z@BX_CPU_C@@SAXPEAVbxInstruction_c@@@Z)␍
          avx.lib(avx512_pfp16.o) : error LNK2001: unresolved external symbol "unsigned short __cdecl f16_sub(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_sub@@YAGGGPEAUsoftfloat_status_t@@@Z)␍
          cpu.lib(fetchdecode32.o) : error LNK2019: unresolved external symbol "unsigned short __cdecl f16_mul(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_mul@@YAGGGPEAUsoftfloat_status_t@@@Z) referenced in function "public: static void __cdecl BX_CPU_C::HANDLE_AVX_PFP_2OP<&void __cdecl xmm_mulph(union bx_xmm_reg_t *,union bx_xmm_reg_t const *,struct softfloat_status_t &)>(class bxInstruction_c *)" (??$HANDLE_AVX_PFP_2OP@$1?xmm_mulph@@YAXPEATbx_xmm_reg_t@@PEBT2@AEAUsoftfloat_status_t@@@Z@BX_CPU_C@@SAXPEAVbxInstruction_c@@@Z)␍
          avx.lib(avx512_pfp16.o) : error LNK2001: unresolved external symbol "unsigned short __cdecl f16_mul(unsigned short,unsigned short,struct softfloat_status_t *)" (?f16_mul@@YAGGGPEAUsoftfloat_status_t@@@Z)␍
0vercl0k commented 2 months ago

Hey!

Thank you for the detailed report and giving wtf a shot 🙏🏽

I am guessing you are seeing the above with 'latest' Bochs? Because I believe bxcpu uses a set of patches on top of the Bochs sources which means you need to make sure it applies to the right version; in https://github.com/yrp604/bochscpu-build you can see the branch 2.7 / release 2.7; both of those tracks the version 2.7 of Bochs.

Also, I've have never seen those linking errors before (related to softfloat); are you adding softfloat or this is stock Bochs?

Also adding @yrp604 (the author of bxcpu) as he might have encountered this / might have ideas.

Sorry for all the dumb questions!

Cheers

yrp604 commented 2 months ago

I can take a look at this next week. In he meantime I’d suggest trying the version pinned to 2.7 as Axel suggested!

bluestar628 commented 2 months ago

Thanks for your response, I will try the version 2.7 now

wumb0 commented 1 month ago

Hi, I tracked it down. Softfloat is now built with the FPU lib of bochs and for some reason OBJS_SPECIALIZE are NOT built on windows, but still declared as part of ALL_OBJS in bochs/cpu/softfloat3e/Makefile.in

I changed line 266 from

OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)

to

@NMAKE_ONLY@OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_OTHERS)
@GNU_MAKE_ONLY@OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)

edit: looks like bochscpu needs those specialized functions, so the above won't work. need to figure out why the objs in the 8086-SSE dir are not being compiled.

Additionally, it looks like we disable SMP in the configure script, but SMP is required for APIC support (for some reason). We can patch that out too and it seems ok. I'm making changes to bochscpu-build, bochscpu, and wtf as part of #213 so once that is done this issue should be solved.

fyi... softfloat3e.lib aka libsoftfloat.a can be found under bochs/cpu/softfloat3e/libsoftfloat.a after the bochscpu-build step.

yrp604 commented 1 month ago

need to figure out why the objs in the 8086-SSE dir are not being compiled.

https://github.com/bochs-emu/Bochs/commit/a3ff47364244e3d4d888da84470ce547e53d47bb#diff-ce33e77c9c2f891f23701cd835e32a3b309a3bdd1b3857084bdecd000c884aa4

"Since one of the MSVC nmake rules uses curly brackets the shortcut script .conf.win64-vcpp needs to be modified to exclude cpu/softfloat3e/Makefile from removal of these usually unwanted characters."

yrp604 commented 1 month ago

I see, it's this bit you were referring to

@NMAKE_ONLY@{8086-SSE\}.c.o:
@NMAKE_ONLY@    $(COMPILE_C) /Tp$<
0vercl0k commented 1 week ago

I have been away traveling for a while but I am back and catching up on issues filed on Github; sorry for that!

@bluestar628 did the above help you fix your issue? Or you are still stuck? I am trying to figure out how I could help or if this should be closed.

Cheers

bluestar628 commented 1 week ago

Apologies for the delayed response. The issue has been resolved by reverting to an older version of the code. I appreciate all the assistance provided. Thank you!

0vercl0k commented 1 week ago

No worries at all - are you happy if I close this?

Cheers

bluestar628 commented 1 week ago

I am ok with that, thanks again!

---- Replied Message ---- | From | Axel @.> | | Date | 11/04/2024 08:45 | | To | @.> | | Cc | @.>@.> | | Subject | Re: [0vercl0k/wtf] Compilation Issues with bochscpu and SoftFloat-3e (Issue #212) |

No worries at all - are you happy if I close this?

Cheers

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

0vercl0k commented 1 week ago

Of course - feel free to re-open if you want a hand in the future anyways :)

Cheers