Thanks for your reply.

I ran a test using an example thread app. I compiled the cond1.c example from http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html using musl-gcc on Ubuntu 13.04, 2.6 kernel obviously. The executable runs on 2.6 as well as 2.4. I actually expected some kind of failure on 2.4. Did I pick a poor example or am I not understanding still?


On Thu, Mar 20, 2014 at 7:14 PM, Rich Felker <dalias@aerifal.cx> wrote:
On Thu, Mar 20, 2014 at 04:58:49PM -0400, John Mudd wrote:
> Probably a dumb question. Is part of the value of musl that I can build an
> app using musl on linux 2.6 and then run the binary on linux 2.4?

The version of Linux you build on has no bearing on the binary that
comes out, so that's not a problem.

However, Linux 2.4 is not officially supported since it lacks a lot of
functionality needed to provide a modern POSIX conforming environment.
The most notable is that it can't do threads. If you're ok with that,
the other problems might be small enough that you don't mind. I
remember some people in Freenode #musl trying out 2.4 recently and
finding that a few of the busybox applets didn't work right, though,
due to missing statfs64 syscall.

This page has details on which kernel versions added which syscalls:

http://man7.org/linux/man-pages/man2/syscalls.2.html

so it may be helpful in evaluating if there's anything critical you'd
be missing. If a syscall has two versions, one with "64" on the end,
musl needs the one that ends in "64".

This is definitely a topic we could attempt to document better if more
people are interested in trying to use 2.4.

Rich