summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build/mkrules/cc.rules.mk6
-rw-r--r--src/build/trace/tracehash.c10
2 files changed, 13 insertions, 3 deletions
diff --git a/src/build/mkrules/cc.rules.mk b/src/build/mkrules/cc.rules.mk
index b837b56a3..79a475125 100644
--- a/src/build/mkrules/cc.rules.mk
+++ b/src/build/mkrules/cc.rules.mk
@@ -34,7 +34,7 @@ $(OBJDIR)/%.o : %.C
$(C2) " CXX $(notdir $<)"
$(C1)$(CXX) -c $(call FLAGS_FILTER, $(CXXFLAGS), $<) $< \
-o $@.trace $(INCFLAGS) -iquote .
- $(C1)$(TRACE_HASHER) $@
+ $(C1)$(TRACE_HASHER) $@ $(TRACE_FLAGS)
@rm $@.trace
# Compiling *.cc files
@@ -42,7 +42,7 @@ $(OBJDIR)/%.o : %.cc
@mkdir -p $(OBJDIR)
$(C2) " CXX $(notdir $<)"
$(C1)$(CXX) -c $(CXXFLAGS) $< -o $@.trace $(INCFLAGS) -iquote .
- $(C1)$(TRACE_HASHER) $@
+ $(C1)$(TRACE_HASHER) $@ $(TRACE_FLAGS)
@rm $@.trace
@@ -59,7 +59,7 @@ else
$(C1)$(CXX) -c $(call FLAGS_FILTER, $(CXXFLAGS), $<) $< \
-o $@.trace $(INCFLAGS) -iquote .
endif
- $(C1)$(TRACE_HASHER) $@
+ $(C1)$(TRACE_HASHER) $@ $(TRACE_FLAGS)
@rm $@.trace
$(OBJDIR)/%.o : %.S
diff --git a/src/build/trace/tracehash.c b/src/build/trace/tracehash.c
index 27bbc9c40..562d8bddc 100644
--- a/src/build/trace/tracehash.c
+++ b/src/build/trace/tracehash.c
@@ -174,6 +174,9 @@ size_t format_offset = 0;
/** Content to place into the format string section. */
char* format_content = NULL;
+/** Keep the full strings in the code rather than reduce to format strings. */
+int full_strings = 0;
+
///--------- Forward Declarations ------------------///
void create_sections(bfd*, asection*, void*);
void copy_relocs(bfd*, asection*, void*);
@@ -199,6 +202,11 @@ int main(int argc, char** argv)
char* outFileName = strdup(argv[1]);
+ if ((argc == 3) && (0 == strcmp("--full-strings", argv[2])))
+ {
+ full_strings = 1;
+ }
+
char* inFileName = (char*) malloc(strlen(outFileName) +
strlen(inFileSuffix) + 1);
strcpy(inFileName, outFileName);
@@ -472,6 +480,8 @@ void copy_content(bfd* inFile, asection* s, void* param)
*/
char* create_format_string(const char* string)
{
+ if (full_strings) { return strdup(string); }
+
size_t length = strlen(string) + 1;
char* result = malloc(length);
OpenPOWER on IntegriCloud