Statically linked binaries killed by signal 9 on Yosemite
Michael Crawford
mdcrawford at gmail.com
Sat Nov 15 18:12:21 PST 2014
valgrind does two main things: it emulates the Instruction Set
Architecture of the microprocessor (x86_64 in Yosemite's case), and it
also wraps all - or at least most - of the system and library calls
with its own.
That is, if you call, say, fopen(), when you run your code under
valgrind, you'll actually be calling valgrind's implementation of
fopen(), it will validate the parameters you pass it, then it will
pass the call onto the original Apple-supplied fopen().
OS X has vast numbers of APIs. Some of these, while strictly speaking
they may be well-documented, it can be quite difficult to actually
_find_ the documentation.
Consider the problem I've experienced for a number of years now,
trying to figure out how to do just about anything without using Cocoa
or Objective-C. Those work just fine for many applications but there
are some good reasons not to use them. Ultimately what results is a
system call, or a library implementation that comes from a computer
science text - qsort() say - but Apple, while not exactly leaving
those system or library calls completely undocumented, does not
encourage their use.
Back in the day I figured out how to talk directly to the audio
driver, without going through QuickTime. It actually turned out to
work really, really well but it was a huge PITA to figure out how to
do it. The required APIs were documented, but were very, very
difficult to actually find.
So the challenge facing the valgrind developers is to find all that
obscure documentation every time there is a major release, and to do
so on all the platforms they support. Thus they have good reason to
be slow, as well as to be quite reluctant to take on as-yet
unsupported platforms.
However...
Please do try as someone previously suggested - try altering your
build so that libc and libSystem are dynamically linked. Send a drop
of that to your Yosemite users.
If that actually turns out to work, you might still be able to make a
fully-static build, but you would have to build it on Yosemite. Such
a build would likely not work on Mavericks.
As I said, Apple has always been quite clear that they do not support
statically-linked binaries.
I don't agree that that's the right attitude, but they _have_ always
been clear that they don't support them, and they have always
discouraged developers from using them.
Michael David Crawford
mdcrawford at gmail.com
http://www.warplife.com/mdc/
Available for Software Development in the Portland, Oregon Metropolitan
Area.
On Sat, Nov 15, 2014 at 4:59 PM, Jeremy Lavergne
<jeremy at lavergne.gotdns.org> wrote:
> http://stackoverflow.com/questions/26564125/yosemite-and-valgrind
>
> From the above, "Valgrind is notorious for taking their sweet time supporting new versions of OSX. You're just going to have to wait."
>
>
> On Nov 15, 2014, at 7:11 PM, Dave Horsfall wrote:
>
>> Hmmm... The port for 10.10 not yet available?
>
> _______________________________________________
> macports-users mailing list
> macports-users at lists.macosforge.org
> https://lists.macosforge.org/mailman/listinfo/macports-users
More information about the macports-users
mailing list