chewi / cross-boss Goto Github PK
View Code? Open in Web Editor NEWCross-compile like a boss!
License: GNU General Public License v2.0
Cross-compile like a boss!
License: GNU General Public License v2.0
When binding a file from the host file system into the chroot, bubblewrap helpfully creates all intermediate directories that don't exist in the target. However, cross-boss uses a restrictive umask. As a result, those dirs get created with permission 700, owned by root:root.
Since the binds are typically executables, this causes them to only be executable by root โ other users won't be able to read them even though the permissions of the file itself are fine. If the executable in question is an ELF interpreter such as qemu-user, it causes any execve
of a target-arch ELF to fail with EACCES
, with no other explanation, resulting in an issue that's difficult to diagnose. :-)
Is it possible to
I'm using cross-boss to cross-compile a rootfs for a PowerPC platform in conjunction with QEMU-user. My platform requires me to specify the -cpu
to qemu-ppc when chrooting, otherwise I get illegal instruction errors. To do that, I use a wrapper program that execve
s QEMU with the -cpu
parameter added.
What is the best way of binding both the wrapper and QEMU binaries to the target? cb-bwrap
automatically parses the binfmt_misc
registry and binds the interpreter it finds there. In my case, it therefore binds the wrapper, but not the actual QEMU executable. As a hack, I added a dummy and otherwise unused entry to binfmt_misc
containing qemu-ppc
as the target.
Reading the source code, I see that passing --ro-bind "${qemu_path}" "${qemu_path}"
as extra arguments to cb-bwrap
would perhaps also work, but it's not documented. Is that a supported way, or just an implementation detail?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.