# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright 2020 Joyent, Inc. # # Definitions common to tool source. # include $(SRC)/Makefile.master FILEMODE= 0555 TOOLS= $(SRC)/tools TOOLS_PROTO= $(TOOLS)/proto/root_$(MACH)-nd ROOTOPT= $(TOOLS_PROTO)/opt ROOTONBLD= $(ROOTOPT)/onbld ROOTONBLDBIN= $(ROOTONBLD)/bin ROOTONBLDBINMACH= $(ROOTONBLD)/bin/$(MACH) ROOTONBLDBINMACH64= $(ROOTONBLD)/bin/$(MACH64) ROOTONBLDETC= $(ROOTONBLD)/etc ROOTONBLDLIB= $(ROOTONBLD)/lib ROOTONBLDLIBMACH= $(ROOTONBLD)/lib/$(MACH) ROOTONBLDLIBMACH64= $(ROOTONBLD)/lib/$(MACH)/64 ROOTONBLDLIBPERL= $(ROOTONBLD)/lib/perl ROOTONBLDLIBPY= $(ROOTONBLD)/lib/python ROOTONBLDENV= $(ROOTONBLD)/env ROOTONBLDMAN= $(ROOTONBLD)/man ROOTONBLDMAN1ONBLD= $(ROOTONBLD)/man/man1onbld ROOTONBLDETCABI= $(ROOTONBLD)/etc/abi ROOTONBLDETCEXCEPT= $(ROOTONBLD)/etc/exception_lists ROOTONBLDSHARE= $(ROOTONBLD)/share CC = $(NATIVECC) CCC = $(NATIVECCC) CFLAGS = $(NATIVE_CFLAGS) CPPFLAGS= -D_TS_ERRNO ELFSIGN_O= $(TRUE) LDLIBS= LDFLAGS= $(MAPFILE.NES:%=-Wl,-M%) $(MAPFILE.NED:%=-Wl,-M%) \ $(MAPFILE.PGA:%=-Wl,-M%) \ $(BDIRECT) NATIVE_LIBS += libc.so # To work around a bootstrapping problem, we can't rely on cw(1) knowing how # to translate -shared as we may be using an older one to build the current # tools. GSHARED = -_cc=-G -_gcc=-shared # # To work around a bootstrapping problem, we don't assume that the # compiler or environment are properly configured to make the stack # protector work. Disable it right now for the tools. # STACKPROTECT = none # Unset CW_LINKER so we run the default. We don't set LD here to avoid taking # the journey through LD_ALTEXEC unnecessarily. CW_LINKER= ROOTONBLDPROG= $(PROG:%=$(ROOTONBLDBIN)/%) ROOTONBLDSCRIPTS= $(SCRIPTS:%=$(ROOTONBLDBIN)/%) ROOTONBLDMACHPROG= $(PROG:%=$(ROOTONBLDBINMACH)/%) ROOTONBLDMACH64PROG= $(PROG:%=$(ROOTONBLDBINMACH64)/%) ROOTONBLDSHFILES= $(SHFILES:%=$(ROOTONBLDBIN)/%) ROOTONBLDMAKEFILES= $(MAKEFILES:%=$(ROOTONBLDBIN)/%) ROOTONBLDMACHSHFILES= $(SHFILES:%=$(ROOTONBLDBINMACH)/%) ROOTONBLDMACHBINARIES= $(BINARIES:%=$(ROOTONBLDBINMACH)/%) ROOTONBLDETCFILES= $(ETCFILES:%=$(ROOTONBLDETC)/%) ROOTONBLDENVFILES= $(ENVFILES:%=$(ROOTONBLDENV)/%) ROOTONBLDPERLFILES= $(PERLFILES:%=$(ROOTONBLDBIN)/%) ROOTONBLDPERLMODULES= $(PERLMODULES:%=$(ROOTONBLDLIBPERL)/%) ROOTONBLDPYFILES= $(PYFILES:%=$(ROOTONBLDBIN)/%) ROOTONBLDMAN1ONBLDFILES=$(MAN1ONBLDFILES:%=$(ROOTONBLDMAN1ONBLD)/%) ROOTONBLDABIAUDITFILES= $(ABI_AUDITFILES:%=$(ROOTONBLDETCABI)/%) ROOTONBLDEXCEPTFILES= $(EXCEPTFILES:%=$(ROOTONBLDETCEXCEPT)/%) # Break a chicken-and-egg dependency cycle for the tools build SCCSCHECK=@echo would sccscheck $(ROOTONBLDETCABI)/%: % $(INS.file) $(ROOTONBLDETCEXCEPT)/%: $(CODEMGR_WS)/exception_lists/% $(INS.file) $(ROOTONBLDBIN)/%: % $(INS.file) $(ROOTONBLDBINMACH)/%: % $(INS.file) $(ROOTONBLDBINMACH64)/%: % $(INS.file) $(ROOTONBLDETC)/%: % $(INS.file) $(ROOTONBLDLIBPERL)/%: % $(INS.file) $(ROOTONBLDMAN1ONBLD)/%: % $(INS.file) $(ROOTONBLDENV)/%: % $(INS.file)