[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: