Go to file
stefan.nickl@gmail.com 0437884e2d package/musl: Make scheduler functions Linux-compatible
The POSIX functions sched_getscheduler(), sched_setscheduler(),
sched_getparam(), sched_setparam() are technically not correctly
implemented by the Linux syscalls of the same name, because what the
kernel calls a PID and what POSIX calls a PID isn't truly the same,
resulting in somewhat different semantics as to what these functions
exactly apply to.
Details: https://sourceware.org/bugzilla/show_bug.cgi?id=14829

Since the musl developers put a high premium on POSIX compliance, they
deliberately implement these functions to return -ENOSYS instead of
relaying them to the respective Linux syscalls as glibc/uClibc do.

Unfortunally this breaks virtually all Linux programs using these
functions under musl. For example running 'chrt -p 1' fails with
'Function not implemented' on a musl-libc based system.
In particular, it affects embedded systems using these interfaces
for scheduling real-time processes.

As it seems unfeasible to fix all affected programs to manually use
syscall wrappers instead of the libc functions, make musl behave the
Linux way.

Signed-off-by: Stefan Nickl <Stefan.Nickl@gmail.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2019-10-27 19:27:36 +01:00
arch
board configs/qemu_arm_vexpress_tz: Armv7-A emulation with TrustZone services 2019-10-27 15:56:16 +01:00
boot
configs configs/qemu_arm_vexpress_tz: Armv7-A emulation with TrustZone services 2019-10-27 15:56:16 +01:00
docs docs/manual/configure.txt: explain how to reuse a Buildroot toolchain as external toolchain 2019-10-27 16:29:07 +01:00
fs fs: don't use := when not needed 2019-10-27 10:35:06 +01:00
linux
package package/musl: Make scheduler functions Linux-compatible 2019-10-27 19:27:36 +01:00
support support/scripts/genimage.sh: pass an empty rootpath to genimage 2019-10-27 12:19:32 +01:00
system
toolchain toolchain/toolchain: set TOOLCHAIN_INSTALL_STAGING only once 2019-10-27 14:56:52 +01:00
utils utils/check-package: report := that appends to variables 2019-10-27 10:35:06 +01:00
.defconfig
.flake8
.gitignore
.gitlab-ci.yml configs/stm32mp157_dk: rename to the sm32mp157c_dk2 2019-10-27 14:09:56 +01:00
.gitlab-ci.yml.in
CHANGES
Config.in packages: host gcc >= 4.8 is now guaranteed 2019-10-27 10:00:29 +01:00
Config.in.legacy
COPYING
DEVELOPERS package/ogre: new package 2019-10-27 16:35:15 +01:00
Makefile
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches