freebsd-ports/lang/compaq-cc/files/ieee_fp_control.c
David E. O'Brien 6da9f52720 * Remove the Linux -dynamic-linker specification from the `ld' execution.
Luckly our `ld' knows the name of our dynamic linker and DTRT.
* Remove the DECpaq shared libs from the standard search dir as linking
  with them gives unresolved symbols.  Thus we'll use the .a's for now.
* Add the symbols __errno_location, __ieee_get_fp_control, and
  __ieee_set_fp_control (mapped to native interfaces) to the static
  Compaq Portable Math Library.  Thus all symbols are resolved.

This allows `CC=ccc' to build fully native FreeBSD Alpha binaries.
2000-12-08 13:27:29 +00:00

50 lines
1.8 KiB
C

/*-
* Copyright (c) 2000 Andrew Gallatin and David O'Brien
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
/*
* A pretty detailed Digital description of ieee_get_fp_control is at:
* http://decline.epfl.ch/docs/DUV40E/HTML/MAN/MAN3/1089____.HTM
* and examples at:
* http://www.physik.fu-berlin.de/DOKU/DEC_Unix_4.0/HTML/AA-PS30D-TET1_html/peg12.html
*/
#include <sys/types.h>
#include <ieeefp.h>
u_int64_t
__ieee_get_fp_control(void)
{
return fpgetmask();
}
void
__ieee_set_fp_control(u_int64_t fpc)
{
fpsetmask((fp_except_t)fpc);
return;
}