Code Monkey home page Code Monkey logo

wilson0x4d / quickbms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from littlebigbug/quickbms

0.0 0.0 0.0 17.82 MB

QuickBMS (64-bit Fork) [mirror]

Home Page: https://quickbms.com

License: GNU General Public License v2.0

Shell 0.15% JavaScript 0.06% C++ 5.17% Python 0.63% Perl 0.02% C 87.29% Java 0.66% OCaml 0.38% Lua 0.01% Smalltalk 0.01% Tcl 0.01% C# 1.19% Assembly 0.81% Ada 0.12% PowerShell 0.03% Awk 0.01% Logos 0.02% CSS 0.05% Pascal 0.15% xBase 3.28%

quickbms's Introduction

"A 64-bit fork of QuickBMS."

What are the major differences vs. original quickbms?

  • switched from 32-bit to 64-bit builds as an exploration into what needs to be changed to cross-compile for both 32-bit and 64-bit.
  • switched from GCC to LLVM, it solved problems in symbol resolution.
  • added a build option to produce a debugger-friendly build.
  • "amiga stuff" is removed, it was transliterated ASM to begin with and the assembly code is not 64bit compatible. converting it requires more time than i have, and, i don't personally need any of it.
  • created a new Makefile at the repo root to replace the old Makefile under src/, this was done for build performance, you can now do a make clean && make --jobs and it takes about a minute to compile everything. the old makefile is still present, but was renamed to avoid confusion.

Why?

  • i was processing a very large amount of data (100+ files) and wanted to containerize my process so i could distribute the workload across my k8s cluster. rather than pull "random linux binary from internet" into my "production" environment i decided to build from source code something that i could both trust and fix.
  • i was met with nothing but pain building from sources, this is the end-product.

if people find this fork useful/valuable i am willing to continue working on it (fix bugs) since aluigi seems to have abandoned it (?), but the reality is that this fork of quickbms only exists for me. as with many of my projects it is sitting on a private repo/server, and i have decided to make a mirror available in case someone else wants to bang on this version instead of the "0.12" snapshot we've been using for the last couple of years.

Compiling

install clang + llvm. i used v14 toolchain/runtimes. for debian/ubuntu this looks like:

apt-get -y install \
  build-essential \
  zlib1g-dev liblzo2-dev libssl-dev unicode \
  clang llvm lld lldb

once you have the tools you can use make from the repo root (not from src/):

make clean
make build
make rebuild # performs clean+build
make all # an alias for `build`
make install # installs to /usr/local/bin/

and remember, if you don't enjoy waiting 15+ minutes the Makefile is --jobs compatible, thus, you can do..

make clean && make --jobs

..and then appreciate that i went through the trouble of reworking the makefile. the old version had me wasting so much time between builds that i had enough time to reimplement the makefile to improve build times.

Will it run on Windows? macOS?

i have only compiled on linux x86_64, but from what i have seen this code should cross-compile on Linux, macOS, and Windows operating systems targeting aarch64/arm64 and x86_64/amd64 processor architectures. but have i done it yet? no.


The old from the github repository it was forked from can be found in old_readme.md.


quickbms's People

Contributors

wilson0x4d avatar littlebigbug avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.