diff options
-rw-r--r-- | gold/ChangeLog | 10 | ||||
-rw-r--r-- | gold/errors.cc | 20 | ||||
-rw-r--r-- | gold/errors.h | 4 | ||||
-rw-r--r-- | gold/gold.h | 4 | ||||
-rw-r--r-- | gold/object.cc | 2 |
5 files changed, 39 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 9d591df..e6c0d92 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,15 @@ 2021-03-19 Cary Coutant <ccoutant@gmail.com> + PR gold/27615 + * errors.cc (Errors::trace): New method. + (gold_trace): New function. + * errors.h (Errors::trace): New method. + * gold.h (gold_trace): New function. + * object.cc (Input_objects::add_object): Use gold_trace to print + object file names. + +2021-03-19 Cary Coutant <ccoutant@gmail.com> + PR gold/pr23870 * testsuite/aarch64_pr23870_bar.c: Return a magic value. * testsuite/aarch64_pr23870_foo.c: Check the magic value and return diff --git a/gold/errors.cc b/gold/errors.cc index 755e65d..156fd69 100644 --- a/gold/errors.cc +++ b/gold/errors.cc @@ -128,6 +128,15 @@ Errors::info(const char* format, va_list args) fputc('\n', stderr); } +// Print a trace message. + +void +Errors::trace(const char* format, va_list args) +{ + vfprintf(stdout, format, args); + fputc('\n', stdout); +} + // Report an error at a reloc location. template<int size, bool big_endian> @@ -275,6 +284,17 @@ gold_info(const char* format, ...) va_end(args); } +// Print a trace message (to stdout). + +void +gold_trace(const char* format, ...) +{ + va_list args; + va_start(args, format); + parameters->errors()->trace(format, args); + va_end(args); +} + // Report an error at a location. template<int size, bool big_endian> diff --git a/gold/errors.h b/gold/errors.h index 34f05cc..a6b528c 100644 --- a/gold/errors.h +++ b/gold/errors.h @@ -68,6 +68,10 @@ class Errors void info(const char* format, va_list); + // Print a trace message and continue. + void + trace(const char* format, va_list); + // Report an error at a reloc location. template<int size, bool big_endian> void diff --git a/gold/gold.h b/gold/gold.h index aa00255..f27542d 100644 --- a/gold/gold.h +++ b/gold/gold.h @@ -99,6 +99,10 @@ gold_warning(const char* msg, ...) ATTRIBUTE_PRINTF_1; extern void gold_info(const char* msg, ...) ATTRIBUTE_PRINTF_1; +// This function is called to print a trace message. +extern void +gold_trace(const char* msg, ...) ATTRIBUTE_PRINTF_1; + // This function is called to emit an error message and then // immediately exit with fallback status (e.g., when // --incremental-update fails and the link needs to be restarted diff --git a/gold/object.cc b/gold/object.cc index 5fa6487..45cf30d 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -3199,7 +3199,7 @@ Input_objects::add_object(Object* obj) { // Print the filename if the -t/--trace option is selected. if (parameters->options().trace()) - gold_info("%s", obj->name().c_str()); + gold_trace("%s", obj->name().c_str()); if (!obj->is_dynamic()) this->relobj_list_.push_back(static_cast<Relobj*>(obj)); |