Coder Social home page Coder Social logo

mkblob's Introduction

mkblob

Tool to make executables independent from libraries.

Make with makeall_el8.sh on x86_64 version of CentOS 8 or Red Hat Enterprise 8.

You might have to tweak the script to make it compile on other distributions. Also glibc-static is needed to compile. (dnf install glibc-static) Precompiled binary is included in directory binary_x86_64 as well as rpm and deb files.

mkblob should run on any x86_64 as it is statically compiled and includes all files it needs.

With mkblob you can make new library independent executable which you can move around different Linux distributions. It will gather all the dependecies it needs to run and other files your program uses.

Project was originally started to make opencv programs able to run without recompiling/rebuilding/installing.

Example: mkblob /bin/ls -o ls.blob -static

mkblob can be used on not only binaries, but scripts as well, like shell, perl and python and so on. If you need or want to pass arguments to your (binary) program you should create a script which does this and then run this script with mkblob.

There is also a Raspberry Pi version at: https://github.com/sigurd-dev/mkblob-rpi

For more information please visit: http://www.dagestad.info/mkblob

License is for now GPLv3.

mkblob's People

Contributors

sigurd-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mkblob's Issues

Uncaught exception: Couldn't create SDL window?

I'm really new to linux packaging. I compiled https://github.com/jorio/Bugdom on Tumbleweed, ran mkblob /home/tuxpeng/Bugdom/build-release/Bugdom -o Bugdom.static -static The result ran great on the host system. Then I tried the binary on a Ubuntu 20.04 VM

Uncaught exception: Couldn't create SDL window

So, I tried compiling o n Ubuntu and running on Tumbleweed, same error. Is there any way to make this work?

Build from OpenSUSE: https://filedn.com/lHGef0SOQKnBTotcJeEfshJ/Games/Bugdom/Bugdom.tar.gz

Race condition: Execute the blob concurrent: Failed.

Hi there, it works all fine here, but only if i not execute the generated blob concurrently.

The Error happens on any generated ELF/Blob.

For example:

mkblob /bin/echo -o echo-blob -static`
parallel --jobs 10 ./echo-blob ::: {1..100} > /dev/null
# this will execute echo-blob 10 times parallel ... on ie. Ubuntu you can install the 'parallel' Tool with: apt-get install parallel

Many Errors like.. see below:

It looks that the temporary folder should be random and unique for each execute. Currently the temporary folder ist always the same which triggers the racecondition.

Is there any fix for it?

Thank you

tar: cde-root/lib/x86_64-linux-gnu/libc-2.19.so: Cannot open: No such file or directory
tar: cde-root: Cannot mkdir: No such file or directory
tar: cde-root/lib/x86_64-linux-gnu/libc.so.6: Cannot create symlink to ‘libc-2.19.so’: No such file or directory
tar: Exiting with failure status due to previous errors
chmod: cannot access ‘/tmp/.9t9nriecwt’: No such file or directory
Segmentation fault
tar: .9t9nriecwt: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
chmod: cannot access ‘/tmp/.9t9nriecwt’: No such file or directory
Segmentation fault
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
/tmp/.9t9nriecwt/execute.cde: 3: /tmp/.9t9nriecwt/execute.cde: /tmp/.9t9nriecwt/cde-exec: not found
tar: cde.options: Cannot open: No such file or directory
tar: cde-root: Cannot mkdir: No such file or directory
tar: cde-root: Cannot mkdir: No such file or directory

Fails to statify ELF 64-bit LSB executable, x86-64, version 1 (SYSV)

mkblob ./mybin -o blob
->
./mybin does not seem to be an executable file.


file ./mybin
->
./mybin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=<xxxxhiddenxxxx>, stripped

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.