7029 want per-process exploit mitigation features (secflags)
7030 want basic address space layout randomization (aslr)
7031 noexec_user_stack should be a secflag
7032 want a means to forbid mappings around NULL.
1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26
27 PROG:sh = basename `cd ..; pwd`
28
29 OBJS = $(PROG).o
30
31 SRCS = ../$(PROG).c
32
33 FILEMODE = 0555
34
35 # libproc is added individually as pwait doesn't need it.
36 # These are defined this way so lint can use them
37 LDLIBS_pargs = -lproc
38 LDLIBS_pcred = -lproc
39 LDLIBS_pfiles = -lproc -lnsl
40 LDLIBS_pflags = -lproc
41 LDLIBS_pldd = -lproc
42 LDLIBS_plgrp = -lproc -llgrp
43 LDLIBS_pmap = -lproc
44 LDLIBS_pmadvise = -lproc
45 LDLIBS_ppriv = -lproc
46 LDLIBS_preap = -lproc
47 LDLIBS_prun = -lproc
48 LDLIBS_psecflags = -lproc -lproject
49 LDLIBS_psig = -lproc
50 LDLIBS_pstack = -lproc -lc_db
51 LDLIBS_pstop = -lproc
52 LDLIBS_ptime = -lproc
53 LDLIBS_ptree = -lproc -lcontract
54 LDLIBS_pwdx = -lproc
55
56 LDLIBS += $(LDLIBS_$(PROG))
57
58 CERRWARN_plgrp += -_gcc=-Wno-parentheses
59
60 CERRWARN_ppriv += -_gcc=-Wno-parentheses
61 CERRWARN_ppriv += -_gcc=-Wno-uninitialized
62
63 CERRWARN_ptree += -_gcc=-Wno-parentheses
64
65 CERRWARN_pstack += -_gcc=-Wno-uninitialized
66 CERRWARN_pstack += -_gcc=-Wno-clobbered
67
68 CERRWARN_pargs += -_gcc=-Wno-clobbered
69 CERRWARN_pargs += -_gcc=-Wno-type-limits
70
71 CERRWARN += $(CERRWARN_$(PROG))
72
73 # pargs depends on ../../common/elfcap components
74 # pmadvise depends on pmap components
75
76 ELFCAP = $(SRC)/common/elfcap
77 PMAP = $(SRC)/cmd/ptools/pmap
78
79 CPPFLAGS_pargs = -I$(ELFCAP)
80 OBJS_pargs = elfcap.o
81 SRCS_pargs = $(ELFCAP)/elfcap.c
82
83 CPPFLAGS_pmap = -I$(PMAP)
84 OBJS_pmap = pmap_common.o
85 SRCS_pmap = $(PMAP)/pmap_common.c
86
87 CPPFLAGS_pmadvise = -I$(PMAP)
88 OBJS_pmadvise = pmap_common.o
89 SRCS_pmadvise = $(PMAP)/pmap_common.c
90
91 CPPFLAGS += $(CPPFLAGS_$(PROG))
92 OBJS += $(OBJS_$(PROG))
93 SRCS += $(SRCS_$(PROG))
94
95 INSTALL_NEW=
96 INSTALL_LEGACY=$(RM) $(ROOTPROCBINSYMLINK) ; \
97 $(LN) -s ../../bin/$(PROG) $(ROOTPROCBINSYMLINK)
98
99 .KEEP_STATE:
100
101 elfcap.o: $(ELFCAP)/elfcap.c
102 $(COMPILE.c) -o $@ $(ELFCAP)/elfcap.c
103
104 pmap_common.o: $(PMAP)/pmap_common.c
105 $(COMPILE.c) -o $@ $(PMAP)/pmap_common.c
106
107 %.o: ../%.c
108 $(COMPILE.c) $<
109
110 all: $(PROG)
111
112 ROOTBINPROG=$(ROOTBIN)/$(PROG)
113 ROOTPROCBINSYMLINK=$(ROOT)/usr/proc/bin/$(PROG)
114
115 $(PROG): $$(OBJS)
116 $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
117 $(POST_PROCESS)
118
119 #
120 # Install the ptool, symlinking it into /usr/proc/bin if PTOOL_TYPE is set
121 # to LEGACY.
122 #
123 install: all $(ROOTISAPROG)
124 -$(RM) $(ROOTBINPROG)
125 -$(LN) $(ISAEXEC) $(ROOTBINPROG)
126 -$(INSTALL_$(PTOOL_TYPE))
127
128 clean:
129 $(RM) $(OBJS)
130
131 lint:
132 $(LINT.c) $(SRCS) $(LDLIBS)
--- EOF ---