Print this page
11646 fbt entry probes incorrectly placed due to -fshrink-wrap

@@ -23,11 +23,11 @@
 # Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
 # Copyright (c) 2011 Bayard G. Bell. All rights reserved.
 # Copyright (c) 2011,2017 by Delphix. All rights reserved.
 # Copyright (c) 2013 Andrew Stormont.  All rights reserved.
 # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
-# Copyright (c) 2019, Joyent, Inc.
+# Copyright 2019 Joyent, Inc.
 #
 
 #
 #       This Makefile contains the common targets and definitions for
 #       all kernels. It is to be included in the Makefiles for specific

@@ -239,10 +239,18 @@
 # Unfortunately, _IOWR() is regularly used with a third argument of 0,
 # so we have to disable all these smatch checks.
 #
 SMOFF += sizeof
 
+#
+# Ensure that the standard function prologue remains at the very start of a function,
+# so DTrace fbt will instrument the right place.
+#
+CFLAGS_uts_i386 += -_gcc7=-fno-shrink-wrap
+CFLAGS_uts_i386 += -_gcc8=-fno-shrink-wrap
+CFLAGS_uts_i386 += -_gcc9=-fno-shrink-wrap
+
 CSTD = $(CSTD_GNU99)
 
 CFLAGS_uts              =
 CFLAGS_uts              += $(STAND_FLAGS_$(CLASS))
 CFLAGS_uts              += $(CCVERBOSE)

@@ -255,10 +263,11 @@
 CFLAGS_uts              += $(CCNOAGGRESSIVELOOPS)
 CFLAGS_uts              += $(CGLOBALSTATIC)
 CFLAGS_uts              += $(EXTRA_CFLAGS)
 CFLAGS_uts              += $(CSOURCEDEBUGFLAGS)
 CFLAGS_uts              += $(CUSERFLAGS)
+CFLAGS_uts              += $(CFLAGS_uts_$(MACH))
 
 #
 #       Declare that $(OBJECTS) and $(LINTS) can be compiled in parallel.
 #       The DUMMY target is for those instances where OBJECTS and LINTS
 #       are empty (to avoid an unconditional .PARALLEL).