Print this page
8609 want a position independent CRT
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/lib/common/i386/crti.s
+++ new/usr/src/lib/crt/i86/crti.s
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License, Version 1.0 only
6 6 * (the "License"). You may not use this file except in compliance
7 7 * with the License.
8 8 *
9 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 10 * or http://www.opensolaris.org/os/licensing.
11 11 * See the License for the specific language governing permissions
12 12 * and limitations under the License.
13 13 *
14 14 * When distributing Covered Code, include this CDDL HEADER in each
15 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 16 * If applicable, add the following below this CDDL HEADER, with the
17 17 * fields enclosed by brackets "[]" replaced with your own identifying
18 18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 19 *
20 20 * CDDL HEADER END
21 21 */
22 22 /*
23 23 * Copyright (c) 2001 by Sun Microsystems, Inc.
24 24 * All rights reserved.
25 25 */
26 26 /*
27 27 * Copyright (c) 2013, Joyent, Inc. All rights reserved.
28 28 */
29 29
30 30 /*
31 31 * These crt*.o modules are provided as the bare minimum required
32 32 * from a crt*.o for inclusion in building low level system
33 33 * libraries. The are only be to included in libraries which
34 34 * contain *no* C++ code and want to avoid the startup code
35 35 * that the C++ runtime has introduced into the crt*.o modules.
36 36 *
37 37 * For further details - see bug#4433015
38 38 */
39 39
40 40 .file "crti.s"
↓ open down ↓ |
40 lines elided |
↑ open up ↑ |
41 41
42 42 /*
43 43 * Note that when _init and _fini are called the stack needs to be 16-byte
44 44 * aligned with a 4-byte bias. See comment in lib/libc/i386/gen/makectxt.c.
45 45 *
46 46 * Note: If you change it, you need to change it in the following files as
47 47 * well:
48 48 *
49 49 * - lib/libc/i386/threads/machdep.c
50 50 * - lib/libc/i386/gen/makectxt.c
51 - * - lib/common/i386/crt1.s
51 + * - lib/crt/i86/mach-crt1.s
52 52 */
53 53
54 54 /*
55 55 * _init function prologue
56 56 */
57 57 .section .init,"ax"
58 58 .globl _init
59 59 .type _init,@function
60 60 .align 16
61 61 _init:
62 62 pushl %ebp
63 63 movl %esp, %ebp
64 64 andl $-16,%esp
65 65 subl $12,%esp
66 66 pushl %ebx
67 67 call .L1
68 68 .L1: popl %ebx
69 69 addl $_GLOBAL_OFFSET_TABLE_+[.-.L1], %ebx
70 70
71 71 /*
72 72 * _fini function prologue
73 73 */
74 74 .section .fini,"ax"
75 75 .globl _fini
76 76 .type _fini,@function
77 77 .align 16
78 78 _fini:
79 79 pushl %ebp
80 80 movl %esp, %ebp
81 81 andl $-16,%esp
82 82 subl $12,%esp
83 83 pushl %ebx
84 84 call .L2
85 85 .L2: popl %ebx
86 86 addl $_GLOBAL_OFFSET_TABLE_+[.-.L2], %ebx
↓ open down ↓ |
25 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX