Print this page
9939 Need to stop GCC reordering functions
*** 339,354 ****
# emitted instead of function names
CCNOAUTOINLINE= \
-_gcc=-fno-inline-small-functions \
-_gcc=-fno-inline-functions-called-once \
-_gcc=-fno-ipa-cp \
- -_gcc6=-fno-ipa-icf \
-_gcc7=-fno-ipa-icf \
-_gcc8=-fno-ipa-icf \
- -_gcc6=-fno-clone-functions \
-_gcc7=-fno-clone-functions \
! -_gcc8=-fno-clone-functions
# One optimization the compiler might perform is to turn this:
# #pragma weak foo
# extern int foo;
# if (&foo)
--- 339,362 ----
# emitted instead of function names
CCNOAUTOINLINE= \
-_gcc=-fno-inline-small-functions \
-_gcc=-fno-inline-functions-called-once \
-_gcc=-fno-ipa-cp \
-_gcc7=-fno-ipa-icf \
-_gcc8=-fno-ipa-icf \
-_gcc7=-fno-clone-functions \
! -_gcc8=-fno-clone-functions \
!
! # GCC may put functions in different named sub-sections of .text based on
! # their presumed calling frequency. At least in the kernel, where we actually
! # deliver relocatable objects, we don't want this to happen.
! #
! # Since at present we don't benefit from this even in userland, we disable it globally,
! # but the application of this may move into usr/src/uts/ in future.
! CCNOREORDER= \
! -_gcc7=-fno-reorder-functions \
! -_gcc8=-fno-reorder-functions
# One optimization the compiler might perform is to turn this:
# #pragma weak foo
# extern int foo;
# if (&foo)
*** 564,587 ****
$(SRCDBGBLD)CSOURCEDEBUGFLAGS = -g -xs
$(SRCDBGBLD)CCSOURCEDEBUGFLAGS = -g -xs
CFLAGS= $(COPTFLAG) $($(MACH)_CFLAGS) $(SPACEFLAG) $(CCMODE) \
$(ILDOFF) $(CERRWARN) $(CSTD) $(CCUNBOUND) $(IROPTFLAG) \
! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CSOURCEDEBUGFLAGS) \
! $(CUSERFLAGS)
CFLAGS64= $(COPTFLAG64) $($(MACH64)_CFLAGS) $(SPACEFLAG64) $(CCMODE64) \
$(ILDOFF) $(CERRWARN) $(CSTD) $(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) $(CSTD) $($(NATIVE_MACH)_CCUNBOUND) \
$(IROPTFLAG) $(CGLOBALSTATIC) $(CCNOAUTOINLINE) \
! $(CSOURCEDEBUGFLAGS) $(CUSERFLAGS)
DTEXTDOM=-DTEXT_DOMAIN=\"$(TEXT_DOMAIN)\" # For messaging.
DTS_ERRNO=-D_TS_ERRNO
CPPFLAGS.first= # Please keep empty. Only lower makefiles should set this.
CPPFLAGS.master=$(DTEXTDOM) $(DTS_ERRNO) \
--- 572,595 ----
$(SRCDBGBLD)CSOURCEDEBUGFLAGS = -g -xs
$(SRCDBGBLD)CCSOURCEDEBUGFLAGS = -g -xs
CFLAGS= $(COPTFLAG) $($(MACH)_CFLAGS) $(SPACEFLAG) $(CCMODE) \
$(ILDOFF) $(CERRWARN) $(CSTD) $(CCUNBOUND) $(IROPTFLAG) \
! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CCNOREORDER) \
! $(CSOURCEDEBUGFLAGS) $(CUSERFLAGS)
CFLAGS64= $(COPTFLAG64) $($(MACH64)_CFLAGS) $(SPACEFLAG64) $(CCMODE64) \
$(ILDOFF) $(CERRWARN) $(CSTD) $(CCUNBOUND) $(IROPTFLAG64) \
! $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CCNOREORDER) \
! $(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) $(CSTD) $($(NATIVE_MACH)_CCUNBOUND) \
$(IROPTFLAG) $(CGLOBALSTATIC) $(CCNOAUTOINLINE) \
! $(CCNOREORDER) $(CSOURCEDEBUGFLAGS) $(CUSERFLAGS)
DTEXTDOM=-DTEXT_DOMAIN=\"$(TEXT_DOMAIN)\" # For messaging.
DTS_ERRNO=-D_TS_ERRNO
CPPFLAGS.first= # Please keep empty. Only lower makefiles should set this.
CPPFLAGS.master=$(DTEXTDOM) $(DTS_ERRNO) \