Re: __FreeBSD_version
On Wednesday, November 23, 2011 1:27:00 pm Robert Millan wrote:
> 2011/11/23 Christoph Egger <christoph@debian.org>:
> > I'm one of those who do use this kind of `hack` in sbcl. However the
> > sbcl code here would be broken in squeeze if __FreeBSD_version was set
> > to 8 as it made assumptions about SIGNAL handlers based on this that
> > IIRC were based on libc stuff (squeeze glibc targetting FreeBSD 7 ABI or
> > something). This might be misuse of the macro and I don't care that much
> > if it's set in glibc or not, just wanting to mention.
>
> Uhm I see. This is clearly an example of the situation I described:
>
> /* FPU state is saved per context on post-KSE systems.
> * On earlier systems, it is shared in a whole process.
> */
> #if defined(__FreeBSD_version) && __FreeBSD_version >= 500040
> struct envxmm *ex = (struct envxmm *)(context->uc_mcontext.mc_fpstate);
> __asm__ __volatile__ ("fldcw %0" : : "m" (ex->en_cw));
> #endif
Is this code in a Debian-specific package or from another party, and is this
dependent on something that is unique to FreeBSD but not GNU/kFreeBSD? (That
is, which syscall ABI does GNU/kFreeBSD use and is this change something that
is specific to the "native" ABI?) If this is a 3rd party package I would
say it is still broken as I would assume that __FreeBSD_version doesn't have
it's requisite meaning unless __FreeBSD__ is defined.
--
John Baldwin
Reply to: