Print this page
10593 illumos build should not use kernel modules as link-editor input
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/sun4v/genunix/Makefile
+++ new/usr/src/uts/sun4v/genunix/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 2009 Sun Microsystems, Inc. All rights reserved.
24 24 # Use is subject to license terms.
25 25 #
26 26 #
27 27 # This makefile drives the production of the generic
28 28 # unix kernel module.
29 29 #
30 30 # sparc implementation architecture dependent
31 31 #
32 32
33 33 #
34 34 # Path to the base of the uts directory tree (usually /usr/src/uts).
35 35 #
36 36 UTSBASE = ../..
37 37
38 38 #
39 39 # Define the module and object file sets.
40 40 #
41 41 MODULE = genunix
42 42 GENUNIX = $(OBJS_DIR)/$(MODULE)
43 43
44 44 OBJECTS = $(GENUNIX_OBJS:%=$(OBJS_DIR)/%) \
45 45 $(NOT_YET_KMODS:%=$(OBJS_DIR)/%)
46 46
47 47 LINTS = $(GENUNIX_OBJS:%.o=$(LINTS_DIR)/%.ln) \
48 48 $(NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln)
49 49
50 50 ROOTMODULE = $(ROOT_PSM_KERN_DIR)/$(MODULE)
51 51
52 52 PLATFORM = sun4v
53 53 LIBGEN = $(OBJS_DIR)/libgenunix.so
54 54 LIBSTUBS = $(GENSTUBS_OBJS:%=$(OBJS_DIR)/%)
55 55
56 56 # LINTFLAGS will be set to include definitions so that the cpu_t
57 57 # structure is expanded. However this could be set to look at the
58 58 # sun4u version which is not correct for sun4v. Therefore we only
59 59 # want to use the LINTFLAGS modification in this Makefile and so
60 60 # suppress the usage of the LINTFLAGS setting in the Makefile.sparc
61 61 # file.
62 62 #
63 63 LINTFLAGSUPPRESS = $(POUND_SIGN)
64 64
65 65 #
66 66 # Include common rules.
67 67 #
68 68 include $(UTSBASE)/sparc/Makefile.sparc
69 69
70 70 #
71 71 # Define targets
72 72 #
73 73 ALL_TARGET = $(LIBGEN) $(GENUNIX)
74 74 LINT_TARGET = $(MODULE).lint
75 75 INSTALL_TARGET = $(LIBGEN) $(GENUNIX) $(ROOTMODULE)
76 76
77 77 #
78 78 # Override defaults
79 79 #
80 80 CLEANFILES += $(LIBSTUBS) $(LIBGEN)
81 81
82 82 LINT_LIB_DIR = $(UTSBASE)/$(PLATFORM)/lint-libs/$(OBJS_DIR)
83 83 LINT_LIB = $(LINT_LIB_DIR)/llib-lunix.ln
84 84 GEN_LINT_LIB =
85 85
86 86 BINARY =
87 87
88 88 CLOBBERFILES += $(GENUNIX)
89 89
↓ open down ↓ |
89 lines elided |
↑ open up ↑ |
90 90 #
91 91 # Non-patch genunix builds merge a version of the ip module called ipctf. This
92 92 # is to ensure that the common network-related types are included in genunix and
93 93 # can thus be uniquified out of other modules. We don't want to do this for
94 94 # patch builds, since we can't guarantee that ip and genunix will be in the same
95 95 # patch.
96 96 #
97 97 IPCTF_TARGET = $(IPCTF)
98 98 $(PATCH_BUILD)IPCTF_TARGET =
99 99
100 -#
101 -# lint pass one enforcement
102 -#
100 +#
101 +# lint pass one enforcement
102 +#
103 103 CFLAGS += $(CCVERBOSE)
104 104 CPPFLAGS += -I$(SRC)/common
105 105 CPPFLAGS += -I$(SRC)/uts/common/fs/zfs
106 106
107 107 INC_PATH += -I$(UTSBASE)/sun4
108 108
109 109 #
110 110 # For now, disable these lint checks; maintainers should endeavor
111 111 # to investigate and remove these for maximum lint coverage.
112 112 # Please do not carry these forward to new Makefiles.
113 113 #
114 114 LINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
115 115 LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
116 116 LINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
117 117 LINTTAGS += -erroff=E_STATIC_UNUSED
118 118 LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
119 119 LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
120 120
121 121 CERRWARN += -_gcc=-Wno-unused-label
122 122 CERRWARN += -_gcc=-Wno-unused-variable
123 123 CERRWARN += -_gcc=-Wno-unused-value
124 124 CERRWARN += -_gcc=-Wno-unused-function
125 125 CERRWARN += -_gcc=-Wno-parentheses
126 126 CERRWARN += -_gcc=-Wno-switch
127 127 CERRWARN += -_gcc=-Wno-type-limits
128 128 CERRWARN += -_gcc=-Wno-uninitialized
129 129 CERRWARN += -_gcc=-Wno-clobbered
130 130 CERRWARN += -_gcc=-Wno-empty-body
131 131
132 132
133 133 # Ensure that lint sees 'struct cpu' containing a fully declared
134 134 # embedded 'struct machcpu'.
135 135 #
136 136 LINTFLAGS += -D_MACHDEP -I../../sun4 -I../../$(PLATFORM) -I../../sfmmu
137 137
138 138 #
139 139 # Default build targets.
140 140 #
141 141 .KEEP_STATE:
142 142
143 143 .PARALLEL: $(LIBSTUBS)
144 144
145 145 def: $(DEF_DEPS)
146 146
147 147 all: $(ALL_DEPS)
148 148
↓ open down ↓ |
36 lines elided |
↑ open up ↑ |
149 149 clean: $(CLEAN_DEPS)
150 150
151 151 clobber: $(CLOBBER_DEPS)
152 152
153 153 lint: $(LINT_DEPS)
154 154
155 155 modlintlib: $(MODLINTLIB_DEPS)
156 156
157 157 clean.lint: $(CLEAN_LINT_DEPS)
158 158
159 -install: $(INSTALL_DEPS)
159 +install: $(INSTALL_DEPS)
160 160
161 -$(LIBGEN): $(GENUNIX) $(LIBSTUBS)
162 - $(BUILD.SO) $(GENUNIX) $(LIBSTUBS)
161 +$(LIBGEN): $(OBJECTS) $(LIBSTUBS)
162 + $(BUILD.SO) $(OBJECTS) $(LIBSTUBS)
163 163
164 164 $(GENUNIX): $(IPCTF_TARGET) $(OBJECTS)
165 165 @pwd
166 166 $(LD) -r $(LDFLAGS) -o $@ $(OBJECTS)
167 167 $(CTFMERGE_GENUNIX_MERGE)
168 168 $(POST_PROCESS)
169 169
170 170 $(OBJECTS): $(OBJS_DIR)
171 171
172 172 #
173 173 # Include common targets.
174 174 #
175 175 include $(UTSBASE)/sparc/Makefile.targ
176 176
177 177 #
178 178 # Include workarounds.
179 179 #
180 180 include $(UTSBASE)/$(PLATFORM)/Makefile.workarounds
181 181
182 182 ALL_DEFS += $(WORKAROUND_DEFS)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX