Parcourir la source

[profile] Allow profiling to be globally enabled or disabled

As with assertions, profiling is enabled for objects built with any
debug level (including an explicit debug level of zero).

Allow profiling to be globally enabled or disabled by adding PROFILE=1
or PROFILE=0 respectively to the build command line.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown il y a 8 ans
Parent
révision
5430465185
2 fichiers modifiés avec 29 ajouts et 0 suppressions
  1. 27
    0
      src/Makefile.housekeeping
  2. 2
    0
      src/include/ipxe/profile.h

+ 27
- 0
src/Makefile.housekeeping Voir le fichier

@@ -747,6 +747,33 @@ include/assert.h : $(ASSERT_LIST)
747 747
 
748 748
 .PRECIOUS : include/assert.h
749 749
 
750
+# (Single-element) list of profiling configuration
751
+#
752
+PROFILE_LIST := $(BIN)/.profile.list
753
+ifeq ($(wildcard $(PROFILE_LIST)),)
754
+PROFILE_OLD := <invalid>
755
+else
756
+PROFILE_OLD := $(shell cat $(PROFILE_LIST))
757
+endif
758
+ifneq ($(PROFILE_OLD),$(PROFILE))
759
+$(shell $(ECHO) "$(PROFILE)" > $(PROFILE_LIST))
760
+endif
761
+
762
+$(PROFILE_LIST) : $(MAKEDEPS)
763
+
764
+VERYCLEANUP += $(PROFILE_LIST)
765
+
766
+# Profiling configuration
767
+#
768
+ifneq ($(PROFILE),)
769
+CFLAGS	+= -DPROFILING=$(PROFILE)
770
+endif
771
+
772
+include/ipxe/profile.h : $(PROFILE_LIST)
773
+	$(Q)$(TOUCH) $@
774
+
775
+.PRECIOUS : include/ipxe/profile.h
776
+
750 777
 # These files use .incbin inline assembly to include a binary file.
751 778
 # Unfortunately ccache does not detect this dependency and caches
752 779
 # builds even when the binary file has changed.

+ 2
- 0
src/include/ipxe/profile.h Voir le fichier

@@ -12,11 +12,13 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
12 12
 #include <bits/profile.h>
13 13
 #include <ipxe/tables.h>
14 14
 
15
+#ifndef PROFILING
15 16
 #ifdef NDEBUG
16 17
 #define PROFILING 0
17 18
 #else
18 19
 #define PROFILING 1
19 20
 #endif
21
+#endif
20 22
 
21 23
 /**
22 24
  * A data structure for storing profiling information

Chargement…
Annuler
Enregistrer