This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [commit] Build memmem with -Wno-error.


> Sorry, I didn't realize you were talking about "-Wno-error" literally.
> This may break non-gcc compilers.  It would be better to come up with
> an $(INTERNAL_CFLAGS) variant that does not include -Werror in the first
> place, and use that instead in the memmem.o rule.  gdb/Makefile.in uses
> INTERNAL_WARN_CFLAGS for exactly that.  I suggest to do the same here.  Take
> a look at the monitor.o rule in gdb/Makefile.in.

Duh - rookie mistake :-(.

Here is a new version that separates the warning flags, -Werror flags
and the rest into 3 separate variables...

Retested on x86_64-linux.

-- 
Joel
commit c16350d2bf3a0fcd4fc6f746837d381c3268eaeb
Author: Joel Brobecker <brobecker@adacore.com>
Date:   Tue Aug 31 11:17:39 2010 -0400

    Compile memmem.o without -Werror.
    
    This reproduces the same approach as in GDB to allow us to build
    specific files without -Werror.
    
    gdb/gdbserver/ChangeLog:
    
            * Makefile.in (INTERNAL_CFLAGS_BASE): New variable. Extracted
            from INTERNAL_CFLAGS.
            (INTERNAL_WARN_CFLAGS): New variable.
            (INTERNAL_CFLAGS): Adjust, using INTERNAL_WARN_CFLAGS.

diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index e397bd7..ffbb14a 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -94,8 +94,10 @@ WERROR_CFLAGS = @WERROR_CFLAGS@
 CFLAGS = @CFLAGS@
 
 # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
-INTERNAL_CFLAGS =  $(WARN_CFLAGS) $(WERROR_CFLAGS) ${CFLAGS} ${GLOBAL_CFLAGS} \
+INTERNAL_CFLAGS_BASE =  ${CFLAGS} ${GLOBAL_CFLAGS} \
 	${PROFILE_CFLAGS} ${INCLUDE_CFLAGS}
+INTERNAL_WARN_CFLAGS =  ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
+INTERNAL_CFLAGS =  ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS)
 
 # LDFLAGS is specifically reserved for setting from the command line
 # when running make.
@@ -347,8 +349,13 @@ gdbreplay.o: gdbreplay.c config.h
 signals.o: ../common/signals.c $(server_h) $(signals_def)
 	$(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< -DGDBSERVER
 
+# We build memmem.c without -Werror because this file is not under
+# our control.  On LynxOS, the compiler generates some warnings
+# because str-two-way.h uses a constant (MAX_SIZE) whose definition
+# makes it ambiguous whether it is signed or unsigned ("warning: this
+# decimal constant is unsigned only in ISO C90").
 memmem.o: ../gnulib/memmem.c
-	$(CC) -o memmem.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $<
+	$(CC) -o memmem.o -c $(CPPFLAGS) $(INTERNAL_WARN_CFLAGS) $<
 
 i386_low_h = $(srcdir)/i386-low.h
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]