Bindings to libffi, with (approximatively) the same API as the Ruby
Fiddle stdlib.
This uses a fork with fixes, and hopefully improvements and
maintainership in the future.
While staying compatible with older ones.
These changes are required since recent kernels' nconfig expect that the
Makefile will have setup the environment for *many* things.
We can't simply run nconfig directly anymore.
What's that about `run-nconfig`?
Well, `make nconfig` tries to build again, in a situation where it won't
be able to build. *sigh*. With this, we take the assumedly-fine-to-run
nconfig that is already in our botched up source tree.
This adds the necessary support to better handle other pointing-type
inputs.
* Cursor for non-touch devices
* Handle abs min/max
* Handle touchpads
With this, a tablet-type input, like used by QEMU, now works.
This ensures no dependencies for a gem end up after `mruby-require`.
This is important since anything after `mruby-require` is implicitly
built as a shared library.
This is used to get a slimmer libhybris for adbd for stage-1.
The previous behaviour (before 35976c201741cfc21c114615b8524db5367e034a)
was to rely on a "homegrown" system to get properties.
Starting with that new properties system, it will rely on the vendor
libraries, thus requiring all of them, plus the linker, to get
properties.
Turns out, adbd doesn't actively need anything from the vendor libraries
or from the actual propeties system.
So, it's fine to revert the change to get a working libhybris for
stage-1.
Though, what would be even better is to strip out only the minimum
requirements for adbd, and make a "mini hybris" that we can rely on for
adbd.
This may trip newer kernels, under some unknown circumstances.
As shown here:
[ 10.016001] c7 604 EXT4-fs error (device sda45): ext4_has_uninit_itable:2895: comm mount: Inode table for bg 0 marked as needing zeroing
This happens with the google-walleye device, and unvalidated due to
lack of logs, might be affecting xiaomi-lavender