|
Message-ID: <20150701142106.GA1829@newbook> Date: Wed, 1 Jul 2015 07:21:07 -0700 From: Isaac Dunham <ibid.ag@...il.com> To: musl@...ts.openwall.com Subject: ABI compat report: or, how to get a Debian ksh93 binary running Hello, For some reason I decided to try getting a ksh93 binary running (once again); this time, it seems to work right. Steps: - fetch ksh_93u+20120801-1_i386.deb; list of mirrors: https://packages.debian.org/jessie/i386/ksh/download - get musl source from git, create new branch - apply the patch to add *_chk Message-Id: <1434509291-28997-1-git-send-email-josiahw@...il.com> http://www.openwall.com/lists/musl/2015/06/17/1 - apply the attached patch to fix a few build errors and add __strcpy_chk() (I'm aware that there are still some possible issues with correctness); configure and compile musl. - build the attached library, which provides: semi-working substitutes for glibc's [jy][n01]l() functions (I just cast long double to double, which will result in degraded range and accuracy compared to the full implementations for 12- and 16-byte long doubles in glibc. Other sizes of long double get a stub error function in glibc.) stub function pointer variables __memalign_hook, __malloc_hook, __realloc_hook, and __free_hook; these are unused. a few math symbols corresonding to isfinite() and isinf(): {__,}{finitel,isinfl}, __isinf, __isnan, isnanl scalbl(), a nonstandard extension of scalb() which is obsolete. - extract bin/ksh93 from the deb - test with your new libc: LD_PRELOAD=../compat-libc/compat.so lib/libc.so ./ksh93 - Once you've tested, you can replace "libm.so.6" with "compat.so" to make it stick. Thanks, Isaac Dunham View attachment "0001-src-compat-_chk.c-fix-build-add-__strcpy_chk.patch" of type "text/plain" (3233 bytes) Download attachment "compat-libc.tgz" of type "application/octet-stream" (1980 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.