[PATCH/committed,2/8] sim: ppc: replace filter_filename with lbasename

Message ID 20240101232219.3003-2-vapier@gentoo.org
State New
Headers
Series [PATCH/committed,1/8] sim: ppc: hoist igen compilation into top-level |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_build--master-arm fail Patch failed to apply

Commit Message

Mike Frysinger Jan. 1, 2024, 11:22 p.m. UTC
  The lbasename function from libiberty provides the same API as this
custom function.  The common/ code already made the switch, so make
the same change to the ppc code to avoid target duplication.
---
 sim/ppc/Makefile.in | 11 ++---------
 sim/ppc/debug.h     | 12 ++++++------
 2 files changed, 8 insertions(+), 15 deletions(-)
  

Comments

Tom Tromey Jan. 9, 2024, 2:34 p.m. UTC | #1
>>>>> "Mike" == Mike Frysinger <vapier@gentoo.org> writes:

Mike> The lbasename function from libiberty provides the same API as this
Mike> custom function.  The common/ code already made the switch, so make
Mike> the same change to the ppc code to avoid target duplication.

When updating and rebuilding in an existing tree, some patch -- I guess
probably this one, I didn't bisect -- caused a build failure in sim/ppc
because filter_filename was missing.  Removing sim/ppc/*.o and
rebuilding fixed it, but I suppose this means there is a missing
dependency somewhere.

Tom
  
Mike Frysinger Jan. 9, 2024, 5:41 p.m. UTC | #2
On 09 Jan 2024 07:34, Tom Tromey wrote:
> >>>>> "Mike" == Mike Frysinger <vapier@gentoo.org> writes:
> 
> Mike> The lbasename function from libiberty provides the same API as this
> Mike> custom function.  The common/ code already made the switch, so make
> Mike> the same change to the ppc code to avoid target duplication.
> 
> When updating and rebuilding in an existing tree, some patch -- I guess
> probably this one, I didn't bisect -- caused a build failure in sim/ppc
> because filter_filename was missing.  Removing sim/ppc/*.o and
> rebuilding fixed it, but I suppose this means there is a missing
> dependency somewhere.

ppc/ used to generate a filter_host.c file in the output dir, and compile the
.o from that.  it switched to using the igen/filter_host.c in the source dir.
when i've migrated code like this, i haven't left behind clean rules to delete
files that only mattered to old builds since any new builds would never see
that stuff.  but it means bisect/incremental (re)builds across that timespan
might break.  i don't know what the general policy is in the tree for these
cases, but it seems like we just don't bother.

also a lot of sim rules rely on VPATH to locate sources.  e.g. the makefiles
write ppc/foo.c instead of $(srcdir)/ppc/foo.c.  the only time we really use
$(srcdir) is with generated files we commit to the tree.  i think this pattern
is standard in the binutils-gdb tree.  but it also contributes to incremental
(re)build failures like this.
-mike
  

Patch

diff --git a/sim/ppc/Makefile.in b/sim/ppc/Makefile.in
index f7c37cc68f79..b8e7fbfd45f1 100644
--- a/sim/ppc/Makefile.in
+++ b/sim/ppc/Makefile.in
@@ -198,8 +198,7 @@  CPU_H = \
 	cpu.c
 
 DEBUG_H = \
-	debug.h \
-	$(FILTER_FILENAME_H)
+	debug.h
 
 DEVICE_H = \
 	device.h
@@ -240,9 +239,6 @@  EMUL_UNIX_H = \
 EVENTS_H = \
 	events.h
 
-FILTER_FILENAME_H = \
-	filter_filename.h
-
 FILTER_H = \
 	filter.h
 
@@ -304,8 +300,7 @@  LF_H = \
 
 MISC_H = \
 	misc.h \
-	$(CONFIG_H) \
-	$(FILTER_FILENAME_H)
+	$(CONFIG_H)
 
 MON_H = \
 	mon.h \
@@ -466,7 +461,6 @@  COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/%)
 #       first
 LIB_OBJ = \
 	debug.o \
-	filter_filename.o \
 	bits.o \
 	sim-endian.o \
 	os_emul.o \
@@ -519,7 +513,6 @@  psim.o: psim.c $(CPU_H) $(IDECODE_H) $(OPTIONS_H) $(TREE_H) $(BFD_H)
 bits.o: bits.c $(BASICS_H)
 
 debug.o: debug.c $(CONFIG_H) $(BASICS_H)
-filter_filename.o: filter_filename.c $(CONFIG_H) $(FILTER_FILENAME_H)
 
 sim-endian.o: sim-endian.c $(CONFIG_H) $(BASICS_H) $(SIM_ENDIAN_N_H)
 
diff --git a/sim/ppc/debug.h b/sim/ppc/debug.h
index 28e42c7bb753..e221ce553d36 100644
--- a/sim/ppc/debug.h
+++ b/sim/ppc/debug.h
@@ -21,7 +21,7 @@ 
 #ifndef _DEBUG_H_
 #define _DEBUG_H_
 
-#include "filter_filename.h"
+#include "libiberty.h"
 
 typedef enum {
   trace_invalid,
@@ -87,7 +87,7 @@  extern int ppc_trace[nr_trace_options];
 do { \
   if (WITH_TRACE) { \
     if (ppc_trace[OBJECT]) { \
-      sim_io_printf_filtered("%s:%d: ", filter_filename(__FILE__), __LINE__); \
+      sim_io_printf_filtered("%s:%d: ", lbasename(__FILE__), __LINE__); \
       sim_io_printf_filtered ARGS; \
     } \
   } \
@@ -113,7 +113,7 @@  do { \
 	|| ppc_trace[trace_##OBJECT##_device] \
 	|| trace_device) { \
       sim_io_printf_filtered("%s:%d:%s:%s%s ",					\
-			     filter_filename(__FILE__), __LINE__, #OBJECT, \
+			     lbasename(__FILE__), __LINE__, #OBJECT, \
 			     trace_device ? device_path(me) : "",	\
 			     trace_device ? ":" : "");			\
       sim_io_printf_filtered ARGS; \
@@ -131,7 +131,7 @@  do { \
 	|| ppc_trace[trace_##OBJECT##_device] \
 	|| trace_device) { \
       sim_io_printf_filtered("%s:%d:%s:%s%s ", \
-			     filter_filename(__FILE__), __LINE__, #OBJECT, \
+			     lbasename(__FILE__), __LINE__, #OBJECT, \
 			     trace_device ? device_path(_me) : "",	\
 			     trace_device ? ":" : "");			\
       sim_io_printf_filtered ARGS; \
@@ -144,7 +144,7 @@  do { \
 do { \
   if (WITH_TRACE) { \
     if (ppc_trace[trace_##OBJECT##_package]) { \
-      sim_io_printf_filtered("%s:%d:%s: ", filter_filename(__FILE__), __LINE__, #OBJECT); \
+      sim_io_printf_filtered("%s:%d:%s: ", lbasename(__FILE__), __LINE__, #OBJECT); \
       sim_io_printf_filtered ARGS; \
     } \
   } \
@@ -156,7 +156,7 @@  do { \
   if (WITH_ASSERT) { \
     if (!(EXPRESSION)) { \
       error("%s:%d: assertion failed - %s\n", \
-	    filter_filename(__FILE__), __LINE__, #EXPRESSION); \
+	    lbasename(__FILE__), __LINE__, #EXPRESSION); \
     } \
   } \
 } while (0)