From 2a7897c3661e03db2e6c1e0e42d2362b654790a2 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Fri, 29 Mar 2024 15:03:40 -0400 Subject: [PATCH] GP-0 revised FileSystems lzfse build and C source placement within module --- .../Features/Decompiler/buildNatives.gradle | 1 - .../Features/FileFormats/buildNatives.gradle | 34 ++++++++++++++++++- .../FileFormats/src/lzfse/{ => c}/lzfse.h | 0 .../src/lzfse/{ => c}/lzfse_decode.c | 0 .../src/lzfse/{ => c}/lzfse_decode_base.c | 0 .../src/lzfse/{ => c}/lzfse_encode.c | 0 .../src/lzfse/{ => c}/lzfse_encode_base.c | 0 .../src/lzfse/{ => c}/lzfse_encode_tables.h | 0 .../FileFormats/src/lzfse/{ => c}/lzfse_fse.c | 0 .../FileFormats/src/lzfse/{ => c}/lzfse_fse.h | 0 .../src/lzfse/{ => c}/lzfse_internal.h | 0 .../src/lzfse/{ => c}/lzfse_main.c | 0 .../src/lzfse/{ => c}/lzfse_tunables.h | 0 .../src/lzfse/{ => c}/lzvn_decode_base.c | 0 .../src/lzfse/{ => c}/lzvn_decode_base.h | 0 .../src/lzfse/{ => c}/lzvn_encode_base.c | 0 .../src/lzfse/{ => c}/lzvn_encode_base.h | 0 17 files changed, 33 insertions(+), 2 deletions(-) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_decode.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_decode_base.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_encode.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_encode_base.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_encode_tables.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_fse.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_fse.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_internal.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_main.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzfse_tunables.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzvn_decode_base.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzvn_decode_base.h (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzvn_encode_base.c (100%) rename Ghidra/Features/FileFormats/src/lzfse/{ => c}/lzvn_encode_base.h (100%) diff --git a/Ghidra/Features/Decompiler/buildNatives.gradle b/Ghidra/Features/Decompiler/buildNatives.gradle index 2fcf9f7aea..626b9d7771 100644 --- a/Ghidra/Features/Decompiler/buildNatives.gradle +++ b/Ghidra/Features/Decompiler/buildNatives.gradle @@ -246,7 +246,6 @@ model { b.cCompiler.args "/Oy" // Omit frame pointer b.cCompiler.define "_CRT_SECURE_NO_DEPRECATE" b.cCompiler.define "_CRT_NONSTDC_NO_DEPRECATE" - b.cCompiler.define "WIN64" b.cCompiler.define "ZLIB_WINAPI" } else if (b.toolChain in Clang) { diff --git a/Ghidra/Features/FileFormats/buildNatives.gradle b/Ghidra/Features/FileFormats/buildNatives.gradle index 70c9d6bfaf..37bba0fdff 100644 --- a/Ghidra/Features/FileFormats/buildNatives.gradle +++ b/Ghidra/Features/FileFormats/buildNatives.gradle @@ -39,7 +39,7 @@ model { sources { c { source { - srcDir "src/lzfse" + srcDir "src/lzfse/c" include "lzfse_encode.c" include "lzfse_decode.c" include "lzfse_encode_base.c" @@ -53,4 +53,36 @@ model { } } } + + binaries { + all{ b -> + if (b.toolChain in Gcc) { + b.cCompiler.args "-std=c99" + b.cCompiler.args "-Wall" + b.cCompiler.args "-O2" + if (b.targetPlatform.operatingSystem.linux) { + b.cCompiler.define "LINUX" + b.cCompiler.define "_LINUX" + } + } + else if (b.toolChain in VisualCpp) { + if (b.targetPlatform.operatingSystem.windows) { + b.cCompiler.define "WINDOWS" + b.cCompiler.define "_WINDOWS" + b.cCompiler.define "WIN32" + b.cCompiler.define "_WIN32" + if (b.targetPlatform.name == "win_x86_64") { + b.cCompiler.define "WIN64" + b.cCompiler.define "_WIN64" + } + } + b.cCompiler.args "/O2" + } + else if (b.toolChain in Clang) { + b.cCompiler.args "-std=c99" + b.cCompiler.args "-Wall" + b.cCompiler.args "-O2" + } + } + } } diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_decode.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_decode.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_decode.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_decode.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_decode_base.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_decode_base.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_decode_base.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_decode_base.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_encode.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_encode.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_encode_base.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode_base.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_encode_base.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode_base.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_encode_tables.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode_tables.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_encode_tables.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_encode_tables.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_fse.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_fse.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_fse.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_fse.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_fse.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_fse.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_fse.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_fse.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_internal.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_internal.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_internal.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_internal.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_main.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_main.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_main.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_main.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzfse_tunables.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzfse_tunables.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzfse_tunables.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzfse_tunables.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzvn_decode_base.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzvn_decode_base.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzvn_decode_base.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzvn_decode_base.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzvn_decode_base.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzvn_decode_base.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzvn_decode_base.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzvn_decode_base.h diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzvn_encode_base.c b/Ghidra/Features/FileFormats/src/lzfse/c/lzvn_encode_base.c similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzvn_encode_base.c rename to Ghidra/Features/FileFormats/src/lzfse/c/lzvn_encode_base.c diff --git a/Ghidra/Features/FileFormats/src/lzfse/lzvn_encode_base.h b/Ghidra/Features/FileFormats/src/lzfse/c/lzvn_encode_base.h similarity index 100% rename from Ghidra/Features/FileFormats/src/lzfse/lzvn_encode_base.h rename to Ghidra/Features/FileFormats/src/lzfse/c/lzvn_encode_base.h