e8bc78322ee62747808c51302fc9038bd33d75d1
[gcc.git] / gcc / config / pa / pa32-linux.h
1 /* Definitions for PA_RISC with ELF-32 format
2 Copyright (C) 2000, 2002 Free Software Foundation, Inc.
3
4 This file is part of GNU CC.
5
6 GNU CC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU CC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU CC; see the file COPYING. If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 /* Turn off various SOM crap we don't want. */
22 #undef TARGET_ELF32
23 #define TARGET_ELF32 1
24
25 /* Sibcalls are ok when ld is used in single subspace mode. The
26 multiple subspace mode is not compatible with sibcalls to external
27 functions because the linker generated stubs store the return
28 pointer into the frame. This target does not need multiple
29 subspace stubs, so we allow sibcalls to all functions. */
30 #undef FUNCTION_OK_FOR_SIBCALL
31 #define FUNCTION_OK_FOR_SIBCALL(DECL) 1
32
33 /* The libcall __canonicalize_funcptr_for_compare is referenced in
34 crtend.o and the reference isn't resolved in objects that don't
35 compare function pointers. Thus, we need to play games to provide
36 a reference in crtbegin.o. The rest of the define is the same
37 as that in crtstuff.c */
38 #define CTOR_LIST_BEGIN \
39 asm (".type __canonicalize_funcptr_for_compare,@function\n" \
40 " .text\n" \
41 " .word __canonicalize_funcptr_for_compare-$PIC_pcrel$0"); \
42 STATIC func_ptr __CTOR_LIST__[1] \
43 __attribute__ ((__unused__, section(".ctors"), \
44 aligned(sizeof(func_ptr)))) \
45 = { (func_ptr) (-1) }