Print this page
Arrange things Gordon's way, and be sure to pass -xs
3735 should include an empty make variable in the default CFLAGS/CCFLAGS
3844 the build should make source-level debugging easier
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>

*** 533,555 **** amd64_XREGSFLAG = XREGSFLAG = $($(MACH)_XREGSFLAG) XREGSFLAG64 = $($(MACH64)_XREGSFLAG) CFLAGS= $(COPTFLAG) $($(MACH)_CFLAGS) $(SPACEFLAG) $(CCMODE) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG) \ ! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) CFLAGS64= $(COPTFLAG64) $($(MACH64)_CFLAGS) $(SPACEFLAG64) $(CCMODE64) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG64) \ ! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) # # Flags that are used to build parts of the code that are subsequently # run on the build machine (also known as the NATIVE_BUILD). # NATIVE_CFLAGS= $(COPTFLAG) $($(NATIVE_MACH)_CFLAGS) $(CCMODE) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $($(NATIVE_MACH)_CCUNBOUND) \ ! $(IROPTFLAG) $(CGLOBALSTATIC) $(CCNOAUTOINLINE) DTEXTDOM=-DTEXT_DOMAIN=\"$(TEXT_DOMAIN)\" # For messaging. DTS_ERRNO=-D_TS_ERRNO CPPFLAGS.master=$(DTEXTDOM) $(DTS_ERRNO) \ $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) $(ENVCPPFLAGS4) --- 533,582 ---- amd64_XREGSFLAG = XREGSFLAG = $($(MACH)_XREGSFLAG) XREGSFLAG64 = $($(MACH64)_XREGSFLAG) + # dmake SOURCEDEBUG=yes ... enables source-level debugging information, and + # avoids stripping it. + SOURCEDEBUG = $(POUND_SIGN) + SRCDBGBLD = $(SOURCEDEBUG:yes=) + + # + # These variables are intended ONLY for use by developers to safely pass extra + # flags to the compilers without unintentionally overriding Makefile-set + # flags. They should NEVER be set to any value in a Makefile. + # + # They come last in the associated FLAGS variable such that they can + # explicitly override things if necessary, there are gaps in this, but it's + # the best we can manage. + # + CUSERFLAGS = + CUSERFLAGS64 = $(CUSERFLAGS) + CCUSERFLAGS = + CCUSERFLAGS64 = $(CCUSERFLAGS) + + CSOURCEDEBUGFLAGS = + CCSOURCEDEBUGFLAGS = + $(SRCDBGBLD)CSOURCEDEBUGFLAGS = -g -xs + $(SRCDBGBLD)CCSOURCEDEBUGFLAGS = -g -xs + CFLAGS= $(COPTFLAG) $($(MACH)_CFLAGS) $(SPACEFLAG) $(CCMODE) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG) \ ! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CSOURCEDEBUGFLAGS) \ ! $(CUSERFLAGS) CFLAGS64= $(COPTFLAG64) $($(MACH64)_CFLAGS) $(SPACEFLAG64) $(CCMODE64) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG64) \ ! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CSOURCEDEBUGFLAGS) \ ! $(CUSERFLAGS64) # # Flags that are used to build parts of the code that are subsequently # run on the build machine (also known as the NATIVE_BUILD). # NATIVE_CFLAGS= $(COPTFLAG) $($(NATIVE_MACH)_CFLAGS) $(CCMODE) \ $(ILDOFF) $(CERRWARN) $(C99MODE) $($(NATIVE_MACH)_CCUNBOUND) \ ! $(IROPTFLAG) $(CGLOBALSTATIC) $(CCNOAUTOINLINE) \ ! $(CSOURCEDEBUGFLAGS) $(CUSERFLAGS) DTEXTDOM=-DTEXT_DOMAIN=\"$(TEXT_DOMAIN)\" # For messaging. DTS_ERRNO=-D_TS_ERRNO CPPFLAGS.master=$(DTEXTDOM) $(DTS_ERRNO) \ $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) $(ENVCPPFLAGS4)
*** 607,618 **** i386_CCOPTFLAG= -O amd64_CCOPTFLAG= -O CCOPTFLAG= $($(MACH)_CCOPTFLAG) CCOPTFLAG64= $($(MACH64)_CCOPTFLAG) ! CCFLAGS= $(CCOPTFLAG) $($(MACH)_CCFLAGS) ! CCFLAGS64= $(CCOPTFLAG64) $($(MACH64)_CCFLAGS) # # # ELFWRAP_FLAGS = --- 634,647 ---- i386_CCOPTFLAG= -O amd64_CCOPTFLAG= -O CCOPTFLAG= $($(MACH)_CCOPTFLAG) CCOPTFLAG64= $($(MACH64)_CCOPTFLAG) ! CCFLAGS= $(CCOPTFLAG) $($(MACH)_CCFLAGS) $(CCSOURCEDEBUGFLAGS) \ ! $(CCUSERFLAGS) ! CCFLAGS64= $(CCOPTFLAG64) $($(MACH64)_CCFLAGS) $(CCSOURCEDEBUGFLAGS) \ ! $(CCUSERFLAGS64) # # # ELFWRAP_FLAGS =
*** 885,900 **** # # Default label for CTF sections # CTFCVTFLAGS= -i -L VERSION # ! # Override to pass module-specific flags to ctfmerge. Currently used ! # only by krtld to turn on fuzzy matching. # CTFMRGFLAGS= CTFCONVERT_O = $(CTFCONVERT) $(CTFCVTFLAGS) $@ ELFSIGN_O= $(TRUE) ELFSIGN_CRYPTO= $(ELFSIGN_O) --- 914,933 ---- # # Default label for CTF sections # CTFCVTFLAGS= -i -L VERSION + $(SRCDBGBLD)CTFCVTFLAGS += -g # ! # Override to pass module-specific flags to ctfmerge. Currently used only by ! # krtld to turn on fuzzy matching, and source-level debugging to inhibit ! # stripping. # CTFMRGFLAGS= + $(SRCDBGBLD)CTFMRGFLAGS += -g + CTFCONVERT_O = $(CTFCONVERT) $(CTFCVTFLAGS) $@ ELFSIGN_O= $(TRUE) ELFSIGN_CRYPTO= $(ELFSIGN_O)
*** 973,982 **** --- 1006,1016 ---- $(STRIP_COMMENTS)PROCESS_COMMENT= @?${MCS} -d -a $(RELEASE_CM) -a $(DEV_CM) $(RELEASE_BUILD)PROCESS_COMMENT= @?${MCS} -d -a $(RELEASE_CM) STRIP_STABS= : $(RELEASE_BUILD)STRIP_STABS= $(STRIP) -x $@ + $(SRCDBGBLD)STRIP_STABS= : POST_PROCESS_O= $(PROCESS_COMMENT) $@ POST_PROCESS_A= POST_PROCESS_SO= $(PROCESS_COMMENT) $@ ; $(STRIP_STABS) ; \ $(ELFSIGN_OBJECT)