interpreters: start python, create move Node.js in

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-12-11 00:00:00 +00:00
parent e223985eaa
commit 94b3f323c7
5 changed files with 76 additions and 5 deletions

View File

@@ -14249,19 +14249,81 @@ Example: link:userland/c/memory_leak.c[]
=== Interpreted languages === Interpreted languages
Maybe some day someone will use this setup to study the performance of interpreters: Maybe some day someone will use this setup to study the performance of interpreters.
==== Python
Build and install the interpreter on the target:
....
./build-buildroot --config 'BR2_PACKAGE_PYTHON3=y'
....
Usage from guest in full system:
....
./run
....
and then from there get an interactive shell with:
....
python3
....
or run an example with:
....
python3 lkmc/python/hello.py
....
<<user-mode-simulation>> interactive usage:
....
./run --userland "$(./getvar buildroot_target_dir)/usr/bin/python3"
....
Non-interactive usage:
....
./run --userland "$(./getvar buildroot_target_dir)/usr/bin/python3" --userland-args rootfs_overlay/lkmc/python/hello.py
....
LKMC 50ac89b779363774325c81157ec8b9a6bdb50a2f gem5 390a74f59934b85d91489f8a563450d8321b602da arch64:
....
./run \
--arch aarch64 \
--emulator gem5 \
--userland "$(./getvar \
--arch aarch64 buildroot_target_dir)/usr/bin/python3" \
--userland-args rootfs_overlay/lkmc/python/hello.py \
;
....
fails with:
....
fatal: syscall unused#278 (#278) unimplemented.
....
which corresponds to the glorious `getrandom` syscall: https://github.com/torvalds/linux/blob/v4.17/include/uapi/asm-generic/unistd.h#L707
Examples:
* link:rootfs_overlay/lkmc/python/hello.py[]: hello world
==== Node.js ==== Node.js
Parent section: <<interpreted-languages>>. Build and install the interpreter with:
Install the interpreter with:
.... ....
./build-buildroot --config 'BR2_PACKAGE_NODEJS=y' ./build-buildroot --config 'BR2_PACKAGE_NODEJS=y'
.... ....
TODO: broken as of 3c3deb14dc8d6511680595dc42cb627d5781746d + 1: Everything is then the same as the <<python>> interpreter setup, except that the executable name is now `node`!
TODO: build broken as of LKMC 3c3deb14dc8d6511680595dc42cb627d5781746d + 1:
.... ....
ERROR: package host-nodejs installs executables without proper RPATH ERROR: package host-nodejs installs executables without proper RPATH
@@ -14269,6 +14331,7 @@ ERROR: package host-nodejs installs executables without proper RPATH
Examples: Examples:
* link:rootfs_overlay/lkmc/nodejs/hello.js[]: hello world
* String * String
** link:rootfs_overlay/lkmc/nodejs/alphanumeric.js[]: https://stackoverflow.com/questions/4444477/how-to-tell-if-a-string-contains-a-certain-character-in-javascript/58359106#58359106 ** link:rootfs_overlay/lkmc/nodejs/alphanumeric.js[]: https://stackoverflow.com/questions/4444477/how-to-tell-if-a-string-contains-a-certain-character-in-javascript/58359106#58359106
* `process` * `process`

View File

@@ -0,0 +1 @@
https://cirosantilli.com/linux-kernel-module-cheat#node-js

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env node
// https://cirosantilli.com/linux-kernel-module-cheat#node-js
console.log('hello');

View File

@@ -0,0 +1 @@
https://cirosantilli.com/linux-kernel-module-cheat#python

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env python3
# https://cirosantilli.com/linux-kernel-module-cheat#python
print('hello')