Print this page
crt: Need a position-independent CRT for PIE
- Implement the greatest possible part of the crt1 in C
- Implement SPARC versions of the ASM sections of crt1
- Build crt1 position-independently, minor ASM updates to be position
independent
- Implement crt1 with the hook expected by modern GCC to support
profiling, make gcrt1 a symlink for source compatibility (older GCC
initializes profiling at firsnt use of _mcount if necessary, so
doesn't need the gcrt)
- Split the CRT out of developer/library/lint into a separate c-runtime package
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/cmd/sgs/rtld/sparcv9/Makefile
+++ new/usr/src/cmd/sgs/rtld/sparcv9/Makefile
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 (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21
22 22 #
23 23 # Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 #
25 25
26 26 # Object lists are organized into primary (most frequently used code) and
27 27 # secondary lists (less frequently used code, ie. a.out support).
28 28
29 29 P_COMOBJS= debugdata.o \
30 30 analyze.o elf.o external.o globals.o \
31 31 malloc.o paths.o setup.o util.o \
32 32 dlfcns.o config_elf.o locale.o tsort.o \
33 33 remove.o move.o tls.o cap.o
34 34
35 35 S_COMOBJS= debug.o audit.o object.o
36 36
37 37 G_MACHOBJS= doreloc.o
38 38
↓ open down ↓ |
38 lines elided |
↑ open up ↑ |
39 39 P_MACHOBJS= sparc_elf.o _setup.o
40 40
41 41 CP_MACHOBJS= common_sparc.o
42 42
43 43 S_MACHOBJS=
44 44
45 45 P_ASOBJS= boot.o boot_elf.o caller.o
46 46
47 47 S_ASOBJS=
48 48
49 -CRTSRCS= ../../../../lib/common/sparcv9
49 +CRTSRCS= ../../../../lib/crt/sparcv9
50 50 CRTI= pics/crti.o
51 51 CRTN= pics/crtn.o
52 52 CRTS= $(CRTI) $(CRTN)
53 53
54 54 CHKSRCS= $(SRCBASE)/uts/common/krtld/reloc.h
55 55
56 56 BASEPLAT = sparc
57 57
58 58 include $(SRC)/Makefile.master
59 59
60 60 # We build sparc objects with cc by default
61 61 MAPFILE-ORDER = ../common/mapfile-order-devpro
62 62 $(__GNUC64)MAPFILE-ORDER = ../common/mapfile-order-gcc
63 63
64 64 include $(SRC)/cmd/sgs/rtld/Makefile.com
65 65 include $(SRC)/lib/Makefile.lib.64
66 66
67 67 # Add any machine specific flags.
68 68
69 69 CPPFLAGS += -I../../../../uts/sparc/krtld
70 70 CFLAGS += -xregs=no%appl
71 71 ASFLAGS += -s -K pic -D__sparcv9 -D_ELF64 $(sparcv9_XARCH)
72 72 ADBGENFLAGS += -mlp64
73 73 ADBGENCFLAGS += -erroff=%all
74 74 ADBSUB= $(ADBSUB64)
75 75 CPPFLAGS += -D_ELF64
76 76 LINTFLAGS64 += $(VAR_LINTFLAGS64)
77 77 SONAME= /lib/sparcv9/ld.so.1
78 78
79 79 SGSMSGTARG += $(SGSMSGSPARC) $(SGSMSGSPARC64) $(SGSMSG64)
80 80
81 81 LDLIB = -L ../../libld/$(MACH64)
82 82 RTLDLIB = -L ../../librtld/$(MACH64)
83 83
84 84 CPICLIB = $(CPICLIB64)
85 85 LDDBGLIBDIR = $(LDDBGLIBDIR64)
86 86 CONVLIBDIR = $(CONVLIBDIR64)
87 87
88 88
89 89 .KEEP_STATE:
90 90
91 91 all: $(RTLD)
92 92
93 93 install: all $(ROOTDYNLIB64)
94 94
95 95 lint: $(LINTOUT64)
96 96
97 97 adbmacros: adb .WAIT $(ADBSCRIPTS)
98 98
99 99 adbinstall: adbmacros .WAIT $(ROOTADB64)
100 100
101 101 pics/%.o: ../sparc/%.c
102 102 $(COMPILE.c) -o $@ $<
103 103 $(POST_PROCESS_O)
104 104
105 105 include $(SRC)/cmd/sgs/rtld/Makefile.targ
106 106 include ../../Makefile.sub.64
↓ open down ↓ |
47 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX