Print this page
DLPX-25998 TCP congestion control is inadequate
Reviewed at: http://reviews.delphix.com/r/34808/


   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 (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright (c) 2011 Bayard G. Bell. All rights reserved.
  25 # Copyright (c) 2011 by Delphix. All rights reserved.
  26 # Copyright (c) 2013 Andrew Stormont.  All rights reserved.
  27 # Copyright 2015 Joyent, Inc.
  28 # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
  29 #
  30 
  31 #
  32 #       This Makefile contains the common targets and definitions for
  33 #       all kernels. It is to be included in the Makefiles for specific
  34 #       implementation architectures and processor architecture dependent
  35 #       modules: i.e.: all driving kernel Makefiles.
  36 #
  37 #       Include global definitions:
  38 #
  39 include $(SRC)/Makefile.master
  40 
  41 #
  42 #       No text domain in the kernel.
  43 #
  44 DTEXTDOM =
  45 


 390 ROOT_FS_DIR_32          = $(ROOT_MOD_DIR)/fs
 391 ROOT_SCHED_DIR_32       = $(ROOT_MOD_DIR)/sched
 392 ROOT_SOCK_DIR_32        = $(ROOT_MOD_DIR)/socketmod
 393 ROOT_STRMOD_DIR_32      = $(ROOT_MOD_DIR)/strmod
 394 ROOT_IPP_DIR_32         = $(ROOT_MOD_DIR)/ipp
 395 ROOT_SYS_DIR_32         = $(ROOT_MOD_DIR)/sys
 396 ROOT_MISC_DIR_32        = $(ROOT_MOD_DIR)/misc
 397 ROOT_KGSS_DIR_32        = $(ROOT_MOD_DIR)/misc/kgss
 398 ROOT_SCSI_VHCI_DIR_32   = $(ROOT_MOD_DIR)/misc/scsi_vhci
 399 ROOT_PMCS_FW_DIR_32     = $(ROOT_MOD_DIR)/misc/pmcs
 400 ROOT_QLC_FW_DIR_32      = $(ROOT_MOD_DIR)/misc/qlc
 401 ROOT_EMLXS_FW_DIR_32    = $(ROOT_MOD_DIR)/misc/emlxs
 402 ROOT_NLMISC_DIR_32      = $(ROOT_MOD_DIR)/misc
 403 ROOT_MACH_DIR_32        = $(ROOT_MOD_DIR)/mach
 404 ROOT_CPU_DIR_32         = $(ROOT_MOD_DIR)/cpu
 405 ROOT_TOD_DIR_32         = $(ROOT_MOD_DIR)/tod
 406 ROOT_FONT_DIR_32        = $(ROOT_MOD_DIR)/fonts
 407 ROOT_DACF_DIR_32        = $(ROOT_MOD_DIR)/dacf
 408 ROOT_CRYPTO_DIR_32      = $(ROOT_MOD_DIR)/crypto
 409 ROOT_MAC_DIR_32         = $(ROOT_MOD_DIR)/mac

 410 ROOT_OVERLAY_DIR_32     = $(ROOT_MOD_DIR)/overlay
 411 ROOT_KICONV_DIR_32      = $(ROOT_MOD_DIR)/kiconv
 412 
 413 ROOT_KERN_DIR_64        = $(ROOT_MOD_DIR)/$(SUBDIR64)
 414 ROOT_BRAND_DIR_64       = $(ROOT_MOD_DIR)/brand/$(SUBDIR64)
 415 ROOT_DRV_DIR_64         = $(ROOT_MOD_DIR)/drv/$(SUBDIR64)
 416 ROOT_DTRACE_DIR_64      = $(ROOT_MOD_DIR)/dtrace/$(SUBDIR64)
 417 ROOT_EXEC_DIR_64        = $(ROOT_MOD_DIR)/exec/$(SUBDIR64)
 418 ROOT_FS_DIR_64          = $(ROOT_MOD_DIR)/fs/$(SUBDIR64)
 419 ROOT_SCHED_DIR_64       = $(ROOT_MOD_DIR)/sched/$(SUBDIR64)
 420 ROOT_SOCK_DIR_64        = $(ROOT_MOD_DIR)/socketmod/$(SUBDIR64)
 421 ROOT_STRMOD_DIR_64      = $(ROOT_MOD_DIR)/strmod/$(SUBDIR64)
 422 ROOT_IPP_DIR_64         = $(ROOT_MOD_DIR)/ipp/$(SUBDIR64)
 423 ROOT_SYS_DIR_64         = $(ROOT_MOD_DIR)/sys/$(SUBDIR64)
 424 ROOT_MISC_DIR_64        = $(ROOT_MOD_DIR)/misc/$(SUBDIR64)
 425 ROOT_KGSS_DIR_64        = $(ROOT_MOD_DIR)/misc/kgss/$(SUBDIR64)
 426 ROOT_SCSI_VHCI_DIR_64   = $(ROOT_MOD_DIR)/misc/scsi_vhci/$(SUBDIR64)
 427 ROOT_PMCS_FW_DIR_64     = $(ROOT_MOD_DIR)/misc/pmcs/$(SUBDIR64)
 428 ROOT_QLC_FW_DIR_64      = $(ROOT_MOD_DIR)/misc/qlc/$(SUBDIR64)
 429 ROOT_EMLXS_FW_DIR_64    = $(ROOT_MOD_DIR)/misc/emlxs/$(SUBDIR64)
 430 ROOT_NLMISC_DIR_64      = $(ROOT_MOD_DIR)/misc/$(SUBDIR64)
 431 ROOT_MACH_DIR_64        = $(ROOT_MOD_DIR)/mach/$(SUBDIR64)
 432 ROOT_CPU_DIR_64         = $(ROOT_MOD_DIR)/cpu/$(SUBDIR64)
 433 ROOT_TOD_DIR_64         = $(ROOT_MOD_DIR)/tod/$(SUBDIR64)
 434 ROOT_FONT_DIR_64        = $(ROOT_MOD_DIR)/fonts/$(SUBDIR64)
 435 ROOT_DACF_DIR_64        = $(ROOT_MOD_DIR)/dacf/$(SUBDIR64)
 436 ROOT_CRYPTO_DIR_64      = $(ROOT_MOD_DIR)/crypto/$(SUBDIR64)
 437 ROOT_MAC_DIR_64         = $(ROOT_MOD_DIR)/mac/$(SUBDIR64)

 438 ROOT_OVERLAY_DIR_64     = $(ROOT_MOD_DIR)/overlay/$(SUBDIR64)
 439 ROOT_KICONV_DIR_64      = $(ROOT_MOD_DIR)/kiconv/$(SUBDIR64)
 440 
 441 ROOT_KERN_DIR           = $(ROOT_KERN_DIR_$(CLASS))
 442 ROOT_BRAND_DIR          = $(ROOT_BRAND_DIR_$(CLASS))
 443 ROOT_DRV_DIR            = $(ROOT_DRV_DIR_$(CLASS))
 444 ROOT_DTRACE_DIR         = $(ROOT_DTRACE_DIR_$(CLASS))
 445 ROOT_EXEC_DIR           = $(ROOT_EXEC_DIR_$(CLASS))
 446 ROOT_FS_DIR             = $(ROOT_FS_DIR_$(CLASS))
 447 ROOT_SCHED_DIR          = $(ROOT_SCHED_DIR_$(CLASS))
 448 ROOT_SOCK_DIR           = $(ROOT_SOCK_DIR_$(CLASS))
 449 ROOT_STRMOD_DIR         = $(ROOT_STRMOD_DIR_$(CLASS))
 450 ROOT_IPP_DIR            = $(ROOT_IPP_DIR_$(CLASS))
 451 ROOT_SYS_DIR            = $(ROOT_SYS_DIR_$(CLASS))
 452 ROOT_MISC_DIR           = $(ROOT_MISC_DIR_$(CLASS))
 453 ROOT_KGSS_DIR           = $(ROOT_KGSS_DIR_$(CLASS))
 454 ROOT_SCSI_VHCI_DIR      = $(ROOT_SCSI_VHCI_DIR_$(CLASS))
 455 ROOT_PMCS_FW_DIR        = $(ROOT_PMCS_FW_DIR_$(CLASS))
 456 ROOT_QLC_FW_DIR         = $(ROOT_QLC_FW_DIR_$(CLASS))
 457 ROOT_EMLXS_FW_DIR       = $(ROOT_EMLXS_FW_DIR_$(CLASS))
 458 ROOT_NLMISC_DIR         = $(ROOT_NLMISC_DIR_$(CLASS))
 459 ROOT_MACH_DIR           = $(ROOT_MACH_DIR_$(CLASS))
 460 ROOT_CPU_DIR            = $(ROOT_CPU_DIR_$(CLASS))
 461 ROOT_TOD_DIR            = $(ROOT_TOD_DIR_$(CLASS))
 462 ROOT_FONT_DIR           = $(ROOT_FONT_DIR_$(CLASS))
 463 ROOT_DACF_DIR           = $(ROOT_DACF_DIR_$(CLASS))
 464 ROOT_CRYPTO_DIR         = $(ROOT_CRYPTO_DIR_$(CLASS))
 465 ROOT_MAC_DIR            = $(ROOT_MAC_DIR_$(CLASS))

 466 ROOT_OVERLAY_DIR        = $(ROOT_OVERLAY_DIR_$(CLASS))
 467 ROOT_KICONV_DIR         = $(ROOT_KICONV_DIR_$(CLASS))
 468 ROOT_FIRMWARE_DIR       = $(ROOT_MOD_DIR)/firmware
 469 
 470 ROOT_MOD_DIRS_32        = $(ROOT_BRAND_DIR_32) $(ROOT_DRV_DIR_32)
 471 ROOT_MOD_DIRS_32        = $(ROOT_BRAND_DIR_32) $(ROOT_DRV_DIR_32)
 472 ROOT_MOD_DIRS_32        += $(ROOT_EXEC_DIR_32) $(ROOT_DTRACE_DIR_32)
 473 ROOT_MOD_DIRS_32        += $(ROOT_FS_DIR_32) $(ROOT_SCHED_DIR_32)
 474 ROOT_MOD_DIRS_32        += $(ROOT_STRMOD_DIR_32) $(ROOT_SYS_DIR_32)
 475 ROOT_MOD_DIRS_32        += $(ROOT_IPP_DIR_32) $(ROOT_SOCK_DIR_32)
 476 ROOT_MOD_DIRS_32        += $(ROOT_MISC_DIR_32) $(ROOT_MACH_DIR_32)
 477 ROOT_MOD_DIRS_32        += $(ROOT_KGSS_DIR_32)
 478 ROOT_MOD_DIRS_32        += $(ROOT_SCSI_VHCI_DIR_32)
 479 ROOT_MOD_DIRS_32        += $(ROOT_PMCS_FW_DIR_32)
 480 ROOT_MOD_DIRS_32        += $(ROOT_QLC_FW_DIR_32)
 481 ROOT_MOD_DIRS_32        += $(ROOT_EMLXS_FW_DIR_32)
 482 ROOT_MOD_DIRS_32        += $(ROOT_CPU_DIR_32) $(ROOT_FONT_DIR_32)
 483 ROOT_MOD_DIRS_32        += $(ROOT_TOD_DIR_32) $(ROOT_DACF_DIR_32)
 484 ROOT_MOD_DIRS_32        += $(ROOT_CRYPTO_DIR_32) $(ROOT_MAC_DIR_32)

 485 ROOT_MOD_DIRS_32        += $(ROOT_OVERLAY_DIR_32)
 486 ROOT_MOD_DIRS_32        += $(ROOT_KICONV_DIR_32)
 487 ROOT_MOD_DIRS_32        += $(ROOT_FIRMWARE_DIR)
 488 
 489 USR_MOD_DIR             = $(ROOT)/usr/kernel
 490 
 491 USR_DRV_DIR_32          = $(USR_MOD_DIR)/drv
 492 USR_EXEC_DIR_32         = $(USR_MOD_DIR)/exec
 493 USR_FS_DIR_32           = $(USR_MOD_DIR)/fs
 494 USR_SCHED_DIR_32        = $(USR_MOD_DIR)/sched
 495 USR_SOCK_DIR_32         = $(USR_MOD_DIR)/socketmod
 496 USR_STRMOD_DIR_32       = $(USR_MOD_DIR)/strmod
 497 USR_SYS_DIR_32          = $(USR_MOD_DIR)/sys
 498 USR_MISC_DIR_32         = $(USR_MOD_DIR)/misc
 499 USR_DACF_DIR_32         = $(USR_MOD_DIR)/dacf
 500 USR_PCBE_DIR_32         = $(USR_MOD_DIR)/pcbe
 501 USR_DTRACE_DIR_32       = $(USR_MOD_DIR)/dtrace
 502 USR_BRAND_DIR_32        = $(USR_MOD_DIR)/brand
 503 
 504 USR_DRV_DIR_64          = $(USR_MOD_DIR)/drv/$(SUBDIR64)


 559 USR_PLAT_LINKS_2         = $(PLAT_LINKS_2:%=$(USR_PLAT_DIR)/%)
 560 
 561 #
 562 # Collection of all relevant, delivered kernel modules.
 563 #
 564 # Note that we insist on building genunix first, because everything else
 565 # uniquifies against it.  When doing a 'make' from usr/src/uts/, we'll enter
 566 # the platform directories first.  These will cd into the corresponding genunix
 567 # directory and build it.  So genunix /shouldn't/ get rebuilt when we get to
 568 # building all the kernel modules.  However, due to an as-yet-unexplained
 569 # problem with dependencies, sometimes it does get rebuilt, which then messes
 570 # up the other modules.  So we always force the issue here rather than try to
 571 # build genunix in parallel with everything else.
 572 #
 573 PARALLEL_KMODS = $(DRV_KMODS) $(EXEC_KMODS) $(FS_KMODS) $(SCHED_KMODS) \
 574                  $(TOD_KMODS) $(STRMOD_KMODS) $(SYS_KMODS) $(MISC_KMODS) \
 575                  $(NLMISC_KMODS) $(MACH_KMODS) $(CPU_KMODS) $(GSS_KMODS) \
 576                  $(MMU_KMODS) $(DACF_KMODS) $(EXPORT_KMODS) $(IPP_KMODS) \
 577                  $(CRYPTO_KMODS) $(PCBE_KMODS) \
 578                  $(DRV_KMODS_$(CLASS)) $(MISC_KMODS_$(CLASS)) $(MAC_KMODS) \
 579                  $(BRAND_KMODS) $(KICONV_KMODS) $(OVERLAY_KMODS) \
 580                  $(SOCKET_KMODS)
 581 
 582 KMODS = $(GENUNIX_KMODS) $(PARALLEL_KMODS)
 583 
 584 $(PARALLEL_KMODS): $(GENUNIX_KMODS)
 585 
 586 LINT_KMODS = $(DRV_KMODS) $(EXEC_KMODS) $(FS_KMODS) $(SCHED_KMODS) \
 587           $(TOD_KMODS) $(STRMOD_KMODS) $(SYS_KMODS) $(MISC_KMODS) \
 588           $(MACH_KMODS) $(GSS_KMODS) $(DACF_KMODS) $(IPP_KMODS) \
 589           $(CRYPTO_KMODS) $(PCBE_KMODS) \
 590           $(DRV_KMODS_$(CLASS)) $(MISC_KMODS_$(CLASS)) $(MAC_KMODS) \
 591           $(BRAND_KMODS) $(KICONV_KMODS) $(SOCKET_KMODS)
 592 
 593 #
 594 #       Files to be compiled with -xa, to generate basic block execution
 595 #       count data.
 596 #
 597 #       There are several ways to compile parts of the kernel for kcov:
 598 #               1)  Add targets to BB_FILES here or in other Makefiles
 599 #                       (they must in the form of $(OBJS_DIR)/target.o)
 600 #               2)  setenv BB_FILES '$(XXX_OBJS:%=$(OBJS_DIR)/%)'
 601 #               3)  setenv BB_FILES '$(OBJECTS)'
 602 #
 603 #       Do NOT setenv CFLAGS -xa, as that will cause infinite recursion
 604 #       in unix_bb.o
 605 #
 606 BB_FILES =
 607 $(BB_FILES)     := XAOPT = -xa
 608 
 609 #
 610 #       The idea here is for unix_bb.o to be in all kernels except the
 611 #       kernel which actually gets shipped to customers.  In practice,




   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 (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright (c) 2011 Bayard G. Bell. All rights reserved.
  25 # Copyright (c) 2011,2017 by Delphix. All rights reserved.
  26 # Copyright (c) 2013 Andrew Stormont.  All rights reserved.
  27 # Copyright 2015 Joyent, Inc.
  28 # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
  29 #
  30 
  31 #
  32 #       This Makefile contains the common targets and definitions for
  33 #       all kernels. It is to be included in the Makefiles for specific
  34 #       implementation architectures and processor architecture dependent
  35 #       modules: i.e.: all driving kernel Makefiles.
  36 #
  37 #       Include global definitions:
  38 #
  39 include $(SRC)/Makefile.master
  40 
  41 #
  42 #       No text domain in the kernel.
  43 #
  44 DTEXTDOM =
  45 


 390 ROOT_FS_DIR_32          = $(ROOT_MOD_DIR)/fs
 391 ROOT_SCHED_DIR_32       = $(ROOT_MOD_DIR)/sched
 392 ROOT_SOCK_DIR_32        = $(ROOT_MOD_DIR)/socketmod
 393 ROOT_STRMOD_DIR_32      = $(ROOT_MOD_DIR)/strmod
 394 ROOT_IPP_DIR_32         = $(ROOT_MOD_DIR)/ipp
 395 ROOT_SYS_DIR_32         = $(ROOT_MOD_DIR)/sys
 396 ROOT_MISC_DIR_32        = $(ROOT_MOD_DIR)/misc
 397 ROOT_KGSS_DIR_32        = $(ROOT_MOD_DIR)/misc/kgss
 398 ROOT_SCSI_VHCI_DIR_32   = $(ROOT_MOD_DIR)/misc/scsi_vhci
 399 ROOT_PMCS_FW_DIR_32     = $(ROOT_MOD_DIR)/misc/pmcs
 400 ROOT_QLC_FW_DIR_32      = $(ROOT_MOD_DIR)/misc/qlc
 401 ROOT_EMLXS_FW_DIR_32    = $(ROOT_MOD_DIR)/misc/emlxs
 402 ROOT_NLMISC_DIR_32      = $(ROOT_MOD_DIR)/misc
 403 ROOT_MACH_DIR_32        = $(ROOT_MOD_DIR)/mach
 404 ROOT_CPU_DIR_32         = $(ROOT_MOD_DIR)/cpu
 405 ROOT_TOD_DIR_32         = $(ROOT_MOD_DIR)/tod
 406 ROOT_FONT_DIR_32        = $(ROOT_MOD_DIR)/fonts
 407 ROOT_DACF_DIR_32        = $(ROOT_MOD_DIR)/dacf
 408 ROOT_CRYPTO_DIR_32      = $(ROOT_MOD_DIR)/crypto
 409 ROOT_MAC_DIR_32         = $(ROOT_MOD_DIR)/mac
 410 ROOT_CC_DIR_32          = $(ROOT_MOD_DIR)/cc
 411 ROOT_OVERLAY_DIR_32     = $(ROOT_MOD_DIR)/overlay
 412 ROOT_KICONV_DIR_32      = $(ROOT_MOD_DIR)/kiconv
 413 
 414 ROOT_KERN_DIR_64        = $(ROOT_MOD_DIR)/$(SUBDIR64)
 415 ROOT_BRAND_DIR_64       = $(ROOT_MOD_DIR)/brand/$(SUBDIR64)
 416 ROOT_DRV_DIR_64         = $(ROOT_MOD_DIR)/drv/$(SUBDIR64)
 417 ROOT_DTRACE_DIR_64      = $(ROOT_MOD_DIR)/dtrace/$(SUBDIR64)
 418 ROOT_EXEC_DIR_64        = $(ROOT_MOD_DIR)/exec/$(SUBDIR64)
 419 ROOT_FS_DIR_64          = $(ROOT_MOD_DIR)/fs/$(SUBDIR64)
 420 ROOT_SCHED_DIR_64       = $(ROOT_MOD_DIR)/sched/$(SUBDIR64)
 421 ROOT_SOCK_DIR_64        = $(ROOT_MOD_DIR)/socketmod/$(SUBDIR64)
 422 ROOT_STRMOD_DIR_64      = $(ROOT_MOD_DIR)/strmod/$(SUBDIR64)
 423 ROOT_IPP_DIR_64         = $(ROOT_MOD_DIR)/ipp/$(SUBDIR64)
 424 ROOT_SYS_DIR_64         = $(ROOT_MOD_DIR)/sys/$(SUBDIR64)
 425 ROOT_MISC_DIR_64        = $(ROOT_MOD_DIR)/misc/$(SUBDIR64)
 426 ROOT_KGSS_DIR_64        = $(ROOT_MOD_DIR)/misc/kgss/$(SUBDIR64)
 427 ROOT_SCSI_VHCI_DIR_64   = $(ROOT_MOD_DIR)/misc/scsi_vhci/$(SUBDIR64)
 428 ROOT_PMCS_FW_DIR_64     = $(ROOT_MOD_DIR)/misc/pmcs/$(SUBDIR64)
 429 ROOT_QLC_FW_DIR_64      = $(ROOT_MOD_DIR)/misc/qlc/$(SUBDIR64)
 430 ROOT_EMLXS_FW_DIR_64    = $(ROOT_MOD_DIR)/misc/emlxs/$(SUBDIR64)
 431 ROOT_NLMISC_DIR_64      = $(ROOT_MOD_DIR)/misc/$(SUBDIR64)
 432 ROOT_MACH_DIR_64        = $(ROOT_MOD_DIR)/mach/$(SUBDIR64)
 433 ROOT_CPU_DIR_64         = $(ROOT_MOD_DIR)/cpu/$(SUBDIR64)
 434 ROOT_TOD_DIR_64         = $(ROOT_MOD_DIR)/tod/$(SUBDIR64)
 435 ROOT_FONT_DIR_64        = $(ROOT_MOD_DIR)/fonts/$(SUBDIR64)
 436 ROOT_DACF_DIR_64        = $(ROOT_MOD_DIR)/dacf/$(SUBDIR64)
 437 ROOT_CRYPTO_DIR_64      = $(ROOT_MOD_DIR)/crypto/$(SUBDIR64)
 438 ROOT_MAC_DIR_64         = $(ROOT_MOD_DIR)/mac/$(SUBDIR64)
 439 ROOT_CC_DIR_64          = $(ROOT_MOD_DIR)/cc/$(SUBDIR64)
 440 ROOT_OVERLAY_DIR_64     = $(ROOT_MOD_DIR)/overlay/$(SUBDIR64)
 441 ROOT_KICONV_DIR_64      = $(ROOT_MOD_DIR)/kiconv/$(SUBDIR64)
 442 
 443 ROOT_KERN_DIR           = $(ROOT_KERN_DIR_$(CLASS))
 444 ROOT_BRAND_DIR          = $(ROOT_BRAND_DIR_$(CLASS))
 445 ROOT_DRV_DIR            = $(ROOT_DRV_DIR_$(CLASS))
 446 ROOT_DTRACE_DIR         = $(ROOT_DTRACE_DIR_$(CLASS))
 447 ROOT_EXEC_DIR           = $(ROOT_EXEC_DIR_$(CLASS))
 448 ROOT_FS_DIR             = $(ROOT_FS_DIR_$(CLASS))
 449 ROOT_SCHED_DIR          = $(ROOT_SCHED_DIR_$(CLASS))
 450 ROOT_SOCK_DIR           = $(ROOT_SOCK_DIR_$(CLASS))
 451 ROOT_STRMOD_DIR         = $(ROOT_STRMOD_DIR_$(CLASS))
 452 ROOT_IPP_DIR            = $(ROOT_IPP_DIR_$(CLASS))
 453 ROOT_SYS_DIR            = $(ROOT_SYS_DIR_$(CLASS))
 454 ROOT_MISC_DIR           = $(ROOT_MISC_DIR_$(CLASS))
 455 ROOT_KGSS_DIR           = $(ROOT_KGSS_DIR_$(CLASS))
 456 ROOT_SCSI_VHCI_DIR      = $(ROOT_SCSI_VHCI_DIR_$(CLASS))
 457 ROOT_PMCS_FW_DIR        = $(ROOT_PMCS_FW_DIR_$(CLASS))
 458 ROOT_QLC_FW_DIR         = $(ROOT_QLC_FW_DIR_$(CLASS))
 459 ROOT_EMLXS_FW_DIR       = $(ROOT_EMLXS_FW_DIR_$(CLASS))
 460 ROOT_NLMISC_DIR         = $(ROOT_NLMISC_DIR_$(CLASS))
 461 ROOT_MACH_DIR           = $(ROOT_MACH_DIR_$(CLASS))
 462 ROOT_CPU_DIR            = $(ROOT_CPU_DIR_$(CLASS))
 463 ROOT_TOD_DIR            = $(ROOT_TOD_DIR_$(CLASS))
 464 ROOT_FONT_DIR           = $(ROOT_FONT_DIR_$(CLASS))
 465 ROOT_DACF_DIR           = $(ROOT_DACF_DIR_$(CLASS))
 466 ROOT_CRYPTO_DIR         = $(ROOT_CRYPTO_DIR_$(CLASS))
 467 ROOT_MAC_DIR            = $(ROOT_MAC_DIR_$(CLASS))
 468 ROOT_CC_DIR             = $(ROOT_CC_DIR_$(CLASS))
 469 ROOT_OVERLAY_DIR        = $(ROOT_OVERLAY_DIR_$(CLASS))
 470 ROOT_KICONV_DIR         = $(ROOT_KICONV_DIR_$(CLASS))
 471 ROOT_FIRMWARE_DIR       = $(ROOT_MOD_DIR)/firmware
 472 
 473 ROOT_MOD_DIRS_32        = $(ROOT_BRAND_DIR_32) $(ROOT_DRV_DIR_32)
 474 ROOT_MOD_DIRS_32        = $(ROOT_BRAND_DIR_32) $(ROOT_DRV_DIR_32)
 475 ROOT_MOD_DIRS_32        += $(ROOT_EXEC_DIR_32) $(ROOT_DTRACE_DIR_32)
 476 ROOT_MOD_DIRS_32        += $(ROOT_FS_DIR_32) $(ROOT_SCHED_DIR_32)
 477 ROOT_MOD_DIRS_32        += $(ROOT_STRMOD_DIR_32) $(ROOT_SYS_DIR_32)
 478 ROOT_MOD_DIRS_32        += $(ROOT_IPP_DIR_32) $(ROOT_SOCK_DIR_32)
 479 ROOT_MOD_DIRS_32        += $(ROOT_MISC_DIR_32) $(ROOT_MACH_DIR_32)
 480 ROOT_MOD_DIRS_32        += $(ROOT_KGSS_DIR_32)
 481 ROOT_MOD_DIRS_32        += $(ROOT_SCSI_VHCI_DIR_32)
 482 ROOT_MOD_DIRS_32        += $(ROOT_PMCS_FW_DIR_32)
 483 ROOT_MOD_DIRS_32        += $(ROOT_QLC_FW_DIR_32)
 484 ROOT_MOD_DIRS_32        += $(ROOT_EMLXS_FW_DIR_32)
 485 ROOT_MOD_DIRS_32        += $(ROOT_CPU_DIR_32) $(ROOT_FONT_DIR_32)
 486 ROOT_MOD_DIRS_32        += $(ROOT_TOD_DIR_32) $(ROOT_DACF_DIR_32)
 487 ROOT_MOD_DIRS_32        += $(ROOT_CRYPTO_DIR_32) $(ROOT_MAC_DIR_32)
 488 ROOT_MOD_DIRS_32        += $(ROOT_CC_DIR_32)
 489 ROOT_MOD_DIRS_32        += $(ROOT_OVERLAY_DIR_32)
 490 ROOT_MOD_DIRS_32        += $(ROOT_KICONV_DIR_32)
 491 ROOT_MOD_DIRS_32        += $(ROOT_FIRMWARE_DIR)
 492 
 493 USR_MOD_DIR             = $(ROOT)/usr/kernel
 494 
 495 USR_DRV_DIR_32          = $(USR_MOD_DIR)/drv
 496 USR_EXEC_DIR_32         = $(USR_MOD_DIR)/exec
 497 USR_FS_DIR_32           = $(USR_MOD_DIR)/fs
 498 USR_SCHED_DIR_32        = $(USR_MOD_DIR)/sched
 499 USR_SOCK_DIR_32         = $(USR_MOD_DIR)/socketmod
 500 USR_STRMOD_DIR_32       = $(USR_MOD_DIR)/strmod
 501 USR_SYS_DIR_32          = $(USR_MOD_DIR)/sys
 502 USR_MISC_DIR_32         = $(USR_MOD_DIR)/misc
 503 USR_DACF_DIR_32         = $(USR_MOD_DIR)/dacf
 504 USR_PCBE_DIR_32         = $(USR_MOD_DIR)/pcbe
 505 USR_DTRACE_DIR_32       = $(USR_MOD_DIR)/dtrace
 506 USR_BRAND_DIR_32        = $(USR_MOD_DIR)/brand
 507 
 508 USR_DRV_DIR_64          = $(USR_MOD_DIR)/drv/$(SUBDIR64)


 563 USR_PLAT_LINKS_2         = $(PLAT_LINKS_2:%=$(USR_PLAT_DIR)/%)
 564 
 565 #
 566 # Collection of all relevant, delivered kernel modules.
 567 #
 568 # Note that we insist on building genunix first, because everything else
 569 # uniquifies against it.  When doing a 'make' from usr/src/uts/, we'll enter
 570 # the platform directories first.  These will cd into the corresponding genunix
 571 # directory and build it.  So genunix /shouldn't/ get rebuilt when we get to
 572 # building all the kernel modules.  However, due to an as-yet-unexplained
 573 # problem with dependencies, sometimes it does get rebuilt, which then messes
 574 # up the other modules.  So we always force the issue here rather than try to
 575 # build genunix in parallel with everything else.
 576 #
 577 PARALLEL_KMODS = $(DRV_KMODS) $(EXEC_KMODS) $(FS_KMODS) $(SCHED_KMODS) \
 578                  $(TOD_KMODS) $(STRMOD_KMODS) $(SYS_KMODS) $(MISC_KMODS) \
 579                  $(NLMISC_KMODS) $(MACH_KMODS) $(CPU_KMODS) $(GSS_KMODS) \
 580                  $(MMU_KMODS) $(DACF_KMODS) $(EXPORT_KMODS) $(IPP_KMODS) \
 581                  $(CRYPTO_KMODS) $(PCBE_KMODS) \
 582                  $(DRV_KMODS_$(CLASS)) $(MISC_KMODS_$(CLASS)) $(MAC_KMODS) \
 583                  $(BRAND_KMODS) $(KICONV_KMODS) $(OVERLAY_KMODS) $(CC_KMODS) \
 584                  $(SOCKET_KMODS)
 585 
 586 KMODS = $(GENUNIX_KMODS) $(PARALLEL_KMODS)
 587 
 588 $(PARALLEL_KMODS): $(GENUNIX_KMODS)
 589 
 590 LINT_KMODS = $(DRV_KMODS) $(EXEC_KMODS) $(FS_KMODS) $(SCHED_KMODS) \
 591           $(TOD_KMODS) $(STRMOD_KMODS) $(SYS_KMODS) $(MISC_KMODS) \
 592           $(MACH_KMODS) $(GSS_KMODS) $(DACF_KMODS) $(IPP_KMODS) \
 593           $(CRYPTO_KMODS) $(PCBE_KMODS) \
 594           $(DRV_KMODS_$(CLASS)) $(MISC_KMODS_$(CLASS)) $(MAC_KMODS) \
 595           $(BRAND_KMODS) $(KICONV_KMODS) $(CC_KMODS) $(SOCKET_KMODS)
 596 
 597 #
 598 #       Files to be compiled with -xa, to generate basic block execution
 599 #       count data.
 600 #
 601 #       There are several ways to compile parts of the kernel for kcov:
 602 #               1)  Add targets to BB_FILES here or in other Makefiles
 603 #                       (they must in the form of $(OBJS_DIR)/target.o)
 604 #               2)  setenv BB_FILES '$(XXX_OBJS:%=$(OBJS_DIR)/%)'
 605 #               3)  setenv BB_FILES '$(OBJECTS)'
 606 #
 607 #       Do NOT setenv CFLAGS -xa, as that will cause infinite recursion
 608 #       in unix_bb.o
 609 #
 610 BB_FILES =
 611 $(BB_FILES)     := XAOPT = -xa
 612 
 613 #
 614 #       The idea here is for unix_bb.o to be in all kernels except the
 615 #       kernel which actually gets shipped to customers.  In practice,