Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
alpha: Purge __ASSUME_IEEE_RAISE_EXCEPTION
  • Loading branch information
Richard Henderson committed Aug 8, 2012
1 parent 6ee732b commit 5afee2d
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 94 deletions.
5 changes: 5 additions & 0 deletions ports/ChangeLog.alpha
@@ -1,5 +1,10 @@
2012-08-08 Richard Henderson <rth@redhat.com>

* sysdeps/unix/sysv/linux/alpha/kernel-features.h
(__ASSUME_IEEE_RAISE_EXCEPTION): Remove.
* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S: New file.
* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c: Remove.

* sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Use dwarf2
cfi markup for unwind. Adjust stack early so that the normal
syscall error path can be used.
Expand Down
56 changes: 56 additions & 0 deletions ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -0,0 +1,56 @@
/* Copyright (C) 2004-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */

#include <sysdep.h>
#include "kernel_sysinfo.h"


.text

ENTRY(__feraiseexcept)
cfi_startproc
PSEUDO_PROLOGUE

lda sp, -16(sp)
cfi_adjust_cfa_offset(16)

ldi v0, __NR_osf_setsysinfo
stq a0, 0(sp)
mov sp, a1
ldi a0, SSI_IEEE_RAISE_EXCEPTION
call_pal PAL_callsys

lda sp, 16(sp)
cfi_adjust_cfa_offset(-16)

/* Here in libm we can't use SYSCALL_ERROR_LABEL. Nor is it clear
that we'd want to set errno anyway. All we're required to do is
return non-zero on error. Which is exactly A3. */
mov a3, v0
ret

END(__feraiseexcept)
cfi_endproc

#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
strong_alias (__feraiseexcept, __old_feraiseexcept)
compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
#endif

libm_hidden_ver (__feraiseexcept, feraiseexcept)
versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
91 changes: 0 additions & 91 deletions ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c

This file was deleted.

3 changes: 0 additions & 3 deletions ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
Expand Up @@ -25,9 +25,6 @@

#define __ASSUME_UTIMES 1

/* Starting with version 2.6.9, SSI_IEEE_RAISE_EXCEPTION exists. */
#define __ASSUME_IEEE_RAISE_EXCEPTION 1

/* Support for the O_CLOEXEC flag was added for alpha in 2.6.23. */
#if __LINUX_KERNEL_VERSION >= 0x020617
# define __ASSUME_O_CLOEXEC 1
Expand Down

0 comments on commit 5afee2d

Please sign in to comment.