Mercurial > hg > aboriginal
changeset 1460:876d4849afa1
New FAQ, "why don't your prebuilt binaries work in my ancient root filesystem". Which is more about ancient kernels not having new system calls, really...
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 20 Oct 2011 02:05:11 -0500 |
parents | 5c29a091278a |
children | ad5303b6d35a |
files | www/FAQ.html |
diffstat | 1 files changed, 26 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/www/FAQ.html Thu Oct 20 02:03:48 2011 -0500 +++ b/www/FAQ.html Thu Oct 20 02:05:11 2011 -0500 @@ -47,6 +47,10 @@ <li><p><a href=#impactlinux>Q: What happened to impactlinux.com?</a></p></li> <li><p><a href=#android>Q: What if I want to play with android?</a></p></li> +<li><p><a href=#new_syscalls>Q: Why don't your prebuilt binaries +work in my ancient system?</a></p></li> + + </ul> </ul> @@ -434,7 +438,8 @@ # Diff the two and write out the patch to sources/patches cd build/packages - diff -ruN $PACKAGE $PACKAGE.bak > ../../sources/patches/$PACKAGE-$NAME.patch + diff -ruN $PACKAGE $PACKAGE.bak > \ + ../../sources/patches/$PACKAGE-$NAME.patch rm -rf $PACKAGE # Run a clean test build @@ -734,5 +739,25 @@ <p>You should be able to take it from there.</p> +<hr /><a name=new_syscalls><h2>Q: Why don't your prebuilt binaries +work in my ancient system?</h2> + +<p>Linux periodically adds new features, and binaries built using those +new features may not run on old kernels. (Linux continues to support old +binaries, known as "backwards compatability", but does not promise that new +programs will always run on old systems.)</p> + +<p>For example, powerpc Linux didn't used to have proper socket system calls +but had to make do with more elaborate/indirect mechanisms. +<a href=http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=86250b9d12caa1>This got fixed</a> during the 2.6.36 development cycle, and +binaries built against a C library using the newer kernel headers will use +the new system() syscall as appropriate, resulting in an -ENOSYS error +on older kernels that doesn't implement the new system call.</p> + +<p>You can use the alternate package mechanism to build against an older +kernel (such as 2.6.35) and then run ./native-build.sh static-tools.hdc in +the resulting system-image-powerpc to get dropbearmulti and busybox binaries +that restrict themselves to the old system calls.</p> + <!--#include file="footer.html" --> </html>