From 72c41589771584da6693ca8a340a19d1cd6bef06 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 19 Apr 2004 06:51:29 +0000 Subject: Update. 2004-04-18 Randolph Chung * sysdeps/hppa/elf/entry.h: New file. * sysdeps/hppa/machine-gmon.h: New file. * sysdeps/unix/sysv/linux/hppa/profil-counter.h: Don't use x86 version. --- sysdeps/hppa/elf/entry.h | 10 ++++++++++ sysdeps/hppa/machine-gmon.h | 25 +++++++++++++++++++++++++ sysdeps/unix/sysv/linux/hppa/profil-counter.h | 27 +++++++++++++++++++++++++-- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 sysdeps/hppa/elf/entry.h create mode 100644 sysdeps/hppa/machine-gmon.h (limited to 'sysdeps') diff --git a/sysdeps/hppa/elf/entry.h b/sysdeps/hppa/elf/entry.h new file mode 100644 index 0000000000..b024db2be7 --- /dev/null +++ b/sysdeps/hppa/elf/entry.h @@ -0,0 +1,10 @@ +#ifndef __ASSEMBLY__ +extern void _start (void); +#endif + +/* The function's entry point is stored in the first word of the + function descriptor (plabel) of _start(). */ +#define ENTRY_POINT __canonicalize_funcptr_for_compare(_start) + +/* We have to provide a special declaration. */ +#define ENTRY_POINT_DECL(class) class void _start (void); diff --git a/sysdeps/hppa/machine-gmon.h b/sysdeps/hppa/machine-gmon.h new file mode 100644 index 0000000000..3eeef67377 --- /dev/null +++ b/sysdeps/hppa/machine-gmon.h @@ -0,0 +1,25 @@ +/* Machine-specific calling sequence for `mcount' profiling function. PA-RISC + Copyright (C) 1995, 1996, 1997, 2000 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* We can call _mcount directly since gcc supplies the correct + * arguments */ +#define _MCOUNT_DECL(from, self) \ + void _mcount (u_long from, u_long self) + +#define MCOUNT diff --git a/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/sysdeps/unix/sysv/linux/hppa/profil-counter.h index 8a6a0bcf3d..b108be8a36 100644 --- a/sysdeps/unix/sysv/linux/hppa/profil-counter.h +++ b/sysdeps/unix/sysv/linux/hppa/profil-counter.h @@ -1,2 +1,25 @@ -/* We can use the ix86 version. */ -#include +/* Machine-dependent SIGPROF signal handler. PA-RISC version + Copyright (C) 1996, 1997, 2000 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +static void +profil_counter (int signr, siginfo_t *si, struct ucontext *uctx) +{ + unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3; + profil_count ((void *) ip); +} -- cgit 1.4.1