This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
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