Print this page
5196 The cw wrapper restricts gcc to -O2
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/sparc/Makefile.sparc
+++ new/usr/src/uts/sparc/Makefile.sparc
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
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
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 # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
23 23 # Copyright (c) 2013 Andrew Stormont. All rights reserved.
24 +# Copyright 2014 Gary Mills
24 25
25 -
26 26 #
27 27 # This makefile contains the common definitions for all sparc
28 28 # implementation architecture independent modules.
29 29 #
30 30
31 31 #
32 32 # Define supported builds
33 33 #
34 34 DEF_BUILDS = $(DEF_BUILDS64)
35 35 ALL_BUILDS = $(ALL_BUILDS64)
36 36
37 37 #
38 38 # Everybody needs to know how to build modstubs.o and to locate unix.o.
39 39 # Note that unix.o must currently be selected from among the possible
40 40 # "implementation architectures". Note further, that unix.o is only
41 41 # used as an optional error check for undefines so (theoretically)
42 42 # any "implementation architectures" could be used. We choose sun4u
43 43 # because it is the reference port.
44 44 #
45 45 UNIX_DIR = $(UTSBASE)/sun4u/unix
46 46 GENLIB_DIR = $(UTSBASE)/sun4u/genunix
47 47 IPDRV_DIR = $(UTSBASE)/sparc/ip
48 48 MODSTUBS_DIR = $(UNIX_DIR)
49 49 DSF_DIR = $(UNIX_DIR)
50 50 LINTS_DIR = $(OBJS_DIR)
51 51 LINT_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
52 52
53 53 UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
54 54 MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
55 55 GENLIB = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/libgenunix.so
56 56
57 57 LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
58 58 GEN_LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
59 59
60 60 LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
61 61 GEN_LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
62 62
63 63 LINT_LIB = $(LINT_LIB_$(CLASS))
64 64 GEN_LINT_LIB = $(GEN_LINT_LIB_$(CLASS))
65 65
66 66 LINT32_DIRS = $(LINT32_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
67 67 LINT32_FILES = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln)
68 68
69 69 LINT64_DIRS = $(LINT64_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
70 70 LINT64_FILES = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
71 71
72 72 #
73 73 # Include the makefiles which define build rule templates, the
74 74 # collection of files per module, and a few specific flags. Note
75 75 # that order is significant, just as with an include path. The
76 76 # first build rule template which matches the files name will be
77 77 # used. By including these in order from most machine dependent
78 78 # to most machine independent, we allow a machine dependent file
79 79 # to be used in preference over a machine independent version
80 80 # (Such as a machine specific optimization, which preserves the
81 81 # interfaces.)
82 82 #
83 83 include $(UTSBASE)/sparc/Makefile.files
84 84 include $(UTSBASE)/sparc/v9/Makefile.files
85 85 include $(UTSBASE)/sun/Makefile.files
86 86 include $(UTSBASE)/common/Makefile.files
87 87
88 88 #
89 89 # ----- TRANSITIONAL SECTION --------------------------------------------------
90 90 #
91 91
92 92 #
93 93 # Not everything which *should* be a module is a module yet. The
94 94 # following is a list of such objects which are currently part of
95 95 # genunix but which might someday become kmods. This must be
96 96 # defined before we include Makefile.uts, or else genunix's build
97 97 # won't be as parallel as we might like.
98 98 #
99 99 NOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(VCONS_CONF_OBJS) $(MOD_OBJS)
100 100
101 101 #
102 102 # ----- END OF TRANSITIONAL SECTION -------------------------------------------
103 103 #
104 104 # Include machine independent rules. Note that this does not imply
105 105 # that the resulting module from rules in Makefile.uts is machine
106 106 # independent. Only that the build rules are machine independent.
↓ open down ↓ |
71 lines elided |
↑ open up ↑ |
107 107 #
108 108 include $(UTSBASE)/Makefile.uts
109 109
110 110 #
111 111 # machine specific optimization, override default in Makefile.master
112 112 #
113 113 XARCH_32 = -xarch=v8
114 114 XARCH_64 = -m64
115 115 XARCH = $(XARCH_$(CLASS))
116 116
117 -COPTIMIZE_32 = -xO3
118 -COPTIMIZE_64 = -xO3
117 +COPTIMIZE_32 = -_cc=-xO3 -_gcc=-O2
118 +COPTIMIZE_64 = -_cc=-xO3 -_gcc=-O2
119 119 COPTIMIZE = $(COPTIMIZE_$(CLASS))
120 120
121 121 CCMODE = -Xa
122 122
123 123 CFLAGS_32 = -xcg92
124 124 CFLAGS_64 = -xchip=ultra $(CCABS32) $(CCREGSYM)
125 125 CFLAGS = $(CFLAGS_$(CLASS))
126 126
127 127 CFLAGS += $(XARCH)
128 128 CFLAGS += $(COPTIMIZE)
129 129 CFLAGS += $(EXTRA_CFLAGS)
130 130 CFLAGS += $(XAOPT)
131 131 CFLAGS += $(INLINES) -D_ASM_INLINES
132 132 CFLAGS += $(CCMODE)
133 133 CFLAGS += $(SPACEFLAG)
134 134 CFLAGS += $(CERRWARN)
135 135 CFLAGS += $(CTF_FLAGS_$(CLASS))
136 136 CFLAGS += $(C99MODE)
137 137 CFLAGS += $(CCUNBOUND)
138 138 CFLAGS += $(CCSTATICSYM)
139 139 CFLAGS += $(CC32BITCALLERS)
140 140 CFLAGS += $(CCNOAUTOINLINE)
141 141 CFLAGS += $(IROPTFLAG)
142 142 CFLAGS += $(CGLOBALSTATIC)
143 143 CFLAGS += -xregs=no%float
144 144 CFLAGS += -xstrconst
145 145 CFLAGS += $(CSOURCEDEBUGFLAGS)
146 146 CFLAGS += $(CUSERFLAGS)
147 147
148 148 ASFLAGS += $(XARCH)
149 149
150 150 LINT_DEFS_32 =
151 151 LINT_DEFS_64 = -m64
152 152 LINT_DEFS += $(LINT_DEFS_$(CLASS))
153 153
154 154 #
155 155 # The following must be defined for all implementations:
156 156 #
157 157 # MODSTUBS: Module stubs source file.
158 158 #
159 159 MODSTUBS = $(UTSBASE)/sparc/ml/modstubs.s
160 160
161 161 #
162 162 # Define the actual specific platforms - obviously none.
163 163 #
164 164 MACHINE_DEFS =
165 165
166 166 #
167 167 # Debugging level
168 168 #
169 169 # Special knowledge of which special debugging options effect which
170 170 # file is used to optimize the build if these flags are changed.
171 171 #
172 172 # XXX: The above could possibly be done for more flags and files, but
173 173 # is left as an experiment to the interested reader. Be forewarned,
174 174 # that excessive use could lead to maintenance difficulties.
175 175 #
176 176 DEBUG_DEFS_OBJ32 =
177 177 DEBUG_DEFS_DBG32 = -DDEBUG
178 178 DEBUG_DEFS_OBJ64 =
179 179 DEBUG_DEFS_DBG64 = -DDEBUG
180 180 DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
181 181
182 182 DEBUG_COND_OBJ32 = $(POUND_SIGN)
183 183 DEBUG_COND_DBG32 =
184 184 DEBUG_COND_OBJ64 = $(POUND_SIGN)
185 185 DEBUG_COND_DBG64 =
186 186 IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
187 187
188 188 $(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE
189 189 $(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1
190 190
191 191 # Comment these out if you don't want dispatcher lock statistics.
192 192
193 193 # $(IF_DEBUG_OBJ)disp_lock.o := DEBUG_DEFS += -DDISP_LOCK_STATS
194 194
195 195 #
196 196 # Collect the preprocessor definitions to be associated with *all*
197 197 # files.
198 198 #
199 199 ALL_DEFS = $(MACHINE_DEFS) $(DEBUG_DEFS) $(OPTION_DEFS)
200 200 #
201 201 #
202 202 # The kernels modules which are "implementation architecture"
203 203 # specific for this machine are enumerated below. Note that most
204 204 # of these modules must exist (in one form or another) for each
205 205 # architecture.
206 206 #
207 207 # Common Drivers (usually pseudo drivers) (/kernel/drv):
208 208 #
209 209 DRV_KMODS += aggr arp audio bl blkdev bofi clone cn conskbd consms cpuid
210 210 DRV_KMODS += crypto cryptoadm devinfo dump
211 211 DRV_KMODS += dtrace fasttrap fbt lockstat profile sdt systrace dcpc
212 212 DRV_KMODS += fssnap icmp icmp6 ip ip6 ipnet ipsecah
213 213 DRV_KMODS += ipsecesp iptun iwscn keysock kmdb kstat ksyms llc1
214 214 DRV_KMODS += lofi
215 215 DRV_KMODS += log logindmux kssl mm nca physmem pm poll pool
216 216 DRV_KMODS += pseudo ptc ptm pts ptsl ramdisk random rsm rts sad
217 217 DRV_KMODS += simnet softmac sppp sppptun sy sysevent sysmsg
218 218 DRV_KMODS += spdsock
219 219 DRV_KMODS += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons
220 220 DRV_KMODS += ippctl
221 221 DRV_KMODS += dld
222 222 DRV_KMODS += ipd
223 223 DRV_KMODS += ipf
224 224 DRV_KMODS += rpcib
225 225 DRV_KMODS += dlpistub
226 226 DRV_KMODS += vnic
227 227 DRV_KMODS += xge
228 228 DRV_KMODS += rds
229 229 DRV_KMODS += rdsv3
230 230 DRV_KMODS += chxge
231 231 DRV_KMODS += smbsrv
232 232 DRV_KMODS += vscan
233 233 DRV_KMODS += nsmb
234 234 DRV_KMODS += fm
235 235 DRV_KMODS += nulldriver
236 236 DRV_KMODS += bridge trill
237 237 DRV_KMODS += bpf
238 238 DRV_KMODS += dca
239 239
240 240 #
241 241 # Hardware Drivers in common space
242 242 #
243 243
244 244 DRV_KMODS += afe
245 245 DRV_KMODS += audio1575
246 246 DRV_KMODS += audioens
247 247 DRV_KMODS += audiols
248 248 DRV_KMODS += audiop16x
249 249 DRV_KMODS += audiopci
250 250 DRV_KMODS += audiots
251 251 DRV_KMODS += e1000g
252 252 DRV_KMODS += efe
253 253 DRV_KMODS += hxge
254 254 DRV_KMODS += mxfe
255 255 DRV_KMODS += rge
256 256 DRV_KMODS += rtls
257 257 DRV_KMODS += sfe
258 258 DRV_KMODS += aac
259 259 DRV_KMODS += igb
260 260 DRV_KMODS += ixgbe
261 261 DRV_KMODS += vr
262 262 DRV_KMODS += mr_sas
263 263 DRV_KMODS += yge
264 264
265 265 #
266 266 # Machine Specific Driver Modules (/kernel/drv):
267 267 #
268 268 DRV_KMODS += audiocs
269 269 DRV_KMODS += bge dmfe eri fas hme qfe
270 270 DRV_KMODS += openeepr options sd ses st
271 271 DRV_KMODS += ssd
272 272 DRV_KMODS += ecpp
273 273 DRV_KMODS += hid hubd ehci ohci uhci usb_mid usb_ia scsa2usb usbprn ugen
274 274 DRV_KMODS += usbser usbsacm usbsksp usbsprl
275 275 DRV_KMODS += usb_as usb_ac
276 276 DRV_KMODS += usbskel
277 277 DRV_KMODS += usbvc
278 278 DRV_KMODS += usbftdi
279 279 DRV_KMODS += wusb_df hwahc hwarc wusb_ca
280 280 DRV_KMODS += usbecm
281 281 DRV_KMODS += hci1394 av1394 scsa1394 dcam1394
282 282 DRV_KMODS += sbp2
283 283 DRV_KMODS += ib ibp eibnx eoib rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs
284 284 DRV_KMODS += sol_umad
285 285 DRV_KMODS += pci_pci pcieb pcieb_bcm
286 286 DRV_KMODS += i8042 kb8042 mouse8042
287 287 DRV_KMODS += fcode
288 288 DRV_KMODS += mpt_sas
289 289 DRV_KMODS += socal
290 290 DRV_KMODS += sgen
291 291 DRV_KMODS += myri10ge
292 292 DRV_KMODS += smp
293 293 DRV_KMODS += dad
294 294 DRV_KMODS += scsi_vhci
295 295 DRV_KMODS += fcp
296 296 DRV_KMODS += fcip
297 297 DRV_KMODS += fcsm
298 298 DRV_KMODS += fp
299 299 DRV_KMODS += qlc
300 300 DRV_KMODS += qlge
301 301 DRV_KMODS += stmf
302 302 DRV_KMODS += stmf_sbd
303 303 DRV_KMODS += fct
304 304 DRV_KMODS += fcoe
305 305 DRV_KMODS += fcoet
306 306 DRV_KMODS += fcoei
307 307 DRV_KMODS += qlt
308 308 DRV_KMODS += iscsit
309 309 DRV_KMODS += pppt
310 310 DRV_KMODS += ncall nsctl sdbc nskern sv
311 311 DRV_KMODS += ii rdc rdcsrv rdcstub
312 312 DRV_KMODS += iscsi
313 313 DRV_KMODS += emlxs
314 314 DRV_KMODS += oce
315 315 DRV_KMODS += srpt
316 316 DRV_KMODS += pmcs
317 317 DRV_KMODS += pmcs8001fw
318 318
319 319 #
320 320 # I/O framework test drivers
321 321 #
322 322 DRV_KMODS += pshot
323 323 DRV_KMODS += gen_drv
324 324 DRV_KMODS += tvhci tphci tclient
325 325 DRV_KMODS += emul64
326 326
327 327 #
328 328 # PCMCIA specific module(s)
329 329 #
330 330 DRV_KMODS += pcs
331 331 MISC_KMODS += busra cardbus dada pcmcia
332 332 DRV_KMODS += pcic
333 333
334 334 # Add lvm
335 335 #
336 336 DRV_KMODS += md
337 337 MISC_KMODS += md_mirror md_stripe md_hotspares md_raid md_trans md_notify
338 338 MISC_KMODS += md_sp
339 339
340 340 #
341 341 # Exec Class Modules (/kernel/exec):
342 342 #
343 343 EXEC_KMODS += aoutexec elfexec intpexec shbinexec javaexec
344 344
345 345 #
346 346 # Scheduling Class Modules (/kernel/sched):
347 347 #
348 348 SCHED_KMODS += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL SDC
349 349
350 350 #
351 351 # File System Modules (/kernel/fs):
352 352 #
353 353 FS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs
354 354 FS_KMODS += zut specfs udfs ufs autofs cachefs procfs sockfs mntfs
355 355 FS_KMODS += ctfs objfs sharefs dcfs smbfs
356 356
357 357 #
358 358 # Streams Modules (/kernel/strmod):
359 359 #
360 360 STRMOD_KMODS += bufmod connld dedump ldterm ms pckt pfmod
361 361 STRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod
362 362 STRMOD_KMODS += spppasyn spppcomp
363 363 STRMOD_KMODS += tirdwr ttcompat
364 364 STRMOD_KMODS += usbkbm usbms usbwcm usb_ah
365 365 STRMOD_KMODS += drcompat
366 366 STRMOD_KMODS += cryptmod
367 367 STRMOD_KMODS += vuid3ps2
368 368
369 369 #
370 370 # 'System' Modules (/kernel/sys):
371 371 #
372 372 SYS_KMODS += c2audit
373 373 SYS_KMODS += exacctsys
374 374 SYS_KMODS += inst_sync kaio msgsys semsys shmsys sysacct pipe
375 375 SYS_KMODS += doorfs pset acctctl portfs
376 376
377 377 #
378 378 # 'User' Modules (/kernel/misc):
379 379 #
380 380 MISC_KMODS += ac97
381 381 MISC_KMODS += bignum
382 382 MISC_KMODS += consconfig gld ipc nfs_dlboot nfssrv scsi
383 383 MISC_KMODS += strplumb swapgeneric tlimod
384 384 MISC_KMODS += rpcsec rpcsec_gss kgssapi kmech_dummy
385 385 MISC_KMODS += kmech_krb5
386 386 MISC_KMODS += fssnap_if
387 387 MISC_KMODS += hidparser kbtrans usba usba10 usbs49_fw
388 388 MISC_KMODS += s1394
389 389 MISC_KMODS += hpcsvc pcihp
390 390 MISC_KMODS += rsmops
391 391 MISC_KMODS += kcf
392 392 MISC_KMODS += ksocket
393 393 MISC_KMODS += ibcm
394 394 MISC_KMODS += ibdm
395 395 MISC_KMODS += ibdma
396 396 MISC_KMODS += ibmf
397 397 MISC_KMODS += ibtl
398 398 MISC_KMODS += sol_ofs
399 399 MISC_KMODS += idm
400 400 MISC_KMODS += idmap
401 401 MISC_KMODS += hook
402 402 MISC_KMODS += neti
403 403 MISC_KMODS += ctf
404 404 MISC_KMODS += mac dls
405 405 MISC_KMODS += cmlb
406 406 MISC_KMODS += tem
407 407 MISC_KMODS += pcicfg fcodem fcpci
408 408 MISC_KMODS += scsi_vhci_f_sym scsi_vhci_f_tpgs scsi_vhci_f_asym_sun
409 409 MISC_KMODS += scsi_vhci_f_sym_hds
410 410 MISC_KMODS += scsi_vhci_f_tape scsi_vhci_f_tpgs_tape
411 411 MISC_KMODS += fctl
412 412 MISC_KMODS += emlxs_fw
413 413 MISC_KMODS += qlc_fw_2200
414 414 MISC_KMODS += qlc_fw_2300
415 415 MISC_KMODS += qlc_fw_2400
416 416 MISC_KMODS += qlc_fw_2500
417 417 MISC_KMODS += qlc_fw_6322
418 418 MISC_KMODS += qlc_fw_8100
419 419 MISC_KMODS += spuni
420 420 MISC_KMODS += hwa1480_fw uwba
421 421 MISC_KMODS += mii
422 422
423 423 MISC_KMODS += klmmod klmops
424 424
425 425 #
426 426 # Software Cryptographic Providers (/kernel/crypto):
427 427 #
428 428 CRYPTO_KMODS += aes
429 429 CRYPTO_KMODS += arcfour
430 430 CRYPTO_KMODS += blowfish
431 431 CRYPTO_KMODS += des
432 432 CRYPTO_KMODS += md4
433 433 CRYPTO_KMODS += md5
434 434 CRYPTO_KMODS += ecc
435 435 CRYPTO_KMODS += rsa
436 436 CRYPTO_KMODS += sha1
437 437 CRYPTO_KMODS += sha2
438 438 CRYPTO_KMODS += swrand
439 439
440 440 #
441 441 # IP Policy Modules (/kernel/ipp):
442 442 #
443 443 IPP_KMODS += dlcosmk
444 444 IPP_KMODS += flowacct
445 445 IPP_KMODS += ipgpc
446 446 IPP_KMODS += dscpmk
447 447 IPP_KMODS += tokenmt
448 448 IPP_KMODS += tswtclmt
449 449
450 450 #
451 451 # 'Dacf' modules (/kernel/dacf)
452 452 DACF_KMODS += consconfig_dacf
453 453
454 454 #
455 455 # SVVS Testing Modules (/kernel/strmod):
456 456 #
457 457 # These are streams and driver modules which are not to be
458 458 # delivered with a released system. However, during development
459 459 # it is convenient to build and install the SVVS kernel modules.
460 460 #
461 461 SVVS_KMODS += lmodb lmode lmodr lmodt svvslo tidg tivc tmux
462 462
463 463 #
464 464 # Modules eXcluded from the product:
465 465 #
466 466 XMODS +=
467 467
468 468 #
469 469 # 'Dacf' Modules (/kernel/dacf):
470 470 #
471 471 DACF_KMODS += net_dacf
472 472
473 473 #
474 474 # MAC-Type Plugin Modules (/kernel/mac)
475 475 #
476 476 MAC_KMODS += mac_6to4
477 477 MAC_KMODS += mac_ether
478 478 MAC_KMODS += mac_ipv4
479 479 MAC_KMODS += mac_ipv6
480 480 MAC_KMODS += mac_wifi
481 481 MAC_KMODS += mac_ib
482 482
483 483 #
484 484 # socketmod (kernel/socketmod)
485 485 #
486 486 SOCKET_KMODS += sockpfp
487 487 SOCKET_KMODS += socksctp
488 488 SOCKET_KMODS += socksdp
489 489 SOCKET_KMODS += sockrds
490 490 SOCKET_KMODS += ksslf
491 491
492 492 #
493 493 # kiconv modules (/kernel/kiconv):
494 494 #
495 495 KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc
496 496
497 497 #
498 498 # Ensure that the variable member of the cpu_t (cpu_m) is defined
499 499 # for the lint builds so as not to cause lint errors during the
500 500 # global cross check.
501 501 #
502 502 $(LINTFLAGSUPPRESS)LINTFLAGS += -D_MACHDEP -I$(UTSBASE)/sun4 \
503 503 -I$(UTSBASE)/sun4u -I$(UTSBASE)/sfmmu
↓ open down ↓ |
375 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX