This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Build system cleanup 3/4
- From: Paolo Bonzini <bonzini at gnu dot org>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jeffrey A Law <law at redhat dot com>
- Date: Thu, 27 Mar 2008 11:21:40 +0100
- Subject: [PATCH] Build system cleanup 3/4
This is some preparatory patch to remove most uses of *_CFLAGS and
*_CPPFLAGS. The more complex ones will come in 4/4 which I'll commit in
a few days.
This part prefers using target headers to target makefile fragments (for
m68hc11), and config.gcc/host variables to makefile fragments (for mcore
and alpha).
For Interix, one of the two defines is subsumed by part 2, and the other
(__INTERIX, which the host CC "might not define") is obsolete now.
Interix' UNIX Application Migration Guide, chapter 10 says "To add or
isolate code that implements Interix-specific features, surround it with
#ifdef __INTERIX ... The __INTERIX macro is automatically defined to be
true by the c89 compiler interface and by the gcc compiler. ... The cc
compiler interface defines the symbols __ INTERIX and UNIX to be true."
(http://technet.microsoft.com/en-us/library/bb497022.aspx). I CCed Jeff
who is the original author of config/x-interix (dating back to 1999).
For mcore, T_CFLAGS defined "-DDONT_HAVE_STDIO -DDONT_HAVE_SETJMP" of
which I don't see any traces neither in gcc nor in libgcc. I also added
and used a mechanism to define -Dinhibit_libc from within config.gcc
Committed to gcc.
Paolo
2008-03-27 Paolo Bonzini <bonzini@gnu.org>
* config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
rename tmake_file to m68hc11/t-m68hc11.
(mcore): Set inhibit_libc to true.
* config.host (alpha*-dec-*vms*): Set extra_programs.
(interix3*): Don't use host_xmake_file.
* configure.ac: Let config.gcc override inhibit_libc.
* configure: Regenerate.
* config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
* config/x-interix: Remove.
* config/t-openbsd-thread: Remove commented out lines.
* config/m68hc11/t-m68hc11-gas: Rename to...
* config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
* config/mcore/t-mcore: Remove T_FLAGS.
* config/mcore/t-mcore-pe: Likewise.
Index: config.gcc
===================================================================
--- config.gcc (revision 133635)
+++ config.gcc (working copy)
@@ -1516,19 +1516,19 @@ m32rle-*-linux*)
;;
# m68hc11 and m68hc12 share the same machine description.
m68hc11-*-*|m6811-*-*)
- tm_file="dbxelf.h elfos.h m68hc11/m68hc11.h"
+ tm_file="dbxelf.h elfos.h usegas.h m68hc11/m68hc11.h"
tm_p_file="m68hc11/m68hc11-protos.h"
md_file="m68hc11/m68hc11.md"
out_file="m68hc11/m68hc11.c"
- tmake_file="m68hc11/t-m68hc11-gas"
+ tmake_file="m68hc11/t-m68hc11"
use_fixproto=yes
;;
m68hc12-*-*|m6812-*-*)
- tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h m68hc11/m68hc11.h"
+ tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h usegas.h m68hc11/m68hc11.h"
tm_p_file="m68hc11/m68hc11-protos.h"
md_file="m68hc11/m68hc11.md"
out_file="m68hc11/m68hc11.c"
- tmake_file="m68hc11/t-m68hc11-gas"
+ tmake_file="m68hc11/t-m68hc11"
extra_options="${extra_options} m68hc11/m68hc11.opt"
use_fixproto=yes
;;
@@ -1641,11 +1641,13 @@ mcore-*-elf)
tm_file="dbxelf.h elfos.h svr4.h ${tm_file} mcore/mcore-elf.h"
tmake_file=mcore/t-mcore
use_fixproto=yes
+ inhibit_libc=true
;;
mcore-*-pe*)
tm_file="svr3.h dbxcoff.h ${tm_file} mcore/mcore-pe.h"
tmake_file=mcore/t-mcore-pe
use_fixproto=yes
+ inhibit_libc=true
;;
mips-sgi-irix[56]*)
tm_file="elfos.h ${tm_file} mips/iris.h"
Index: config.host
===================================================================
--- config.host (revision 133635)
+++ config.host (working copy)
@@ -124,6 +124,7 @@ case ${host} in
alpha*-dec-*vms*)
host_xm_file=alpha/xm-vms.h
host_xmake_file="${host_xmake_file} alpha/x-vms"
+ extra_programs="ld.exe decc.exe"
host_exeext=.exe
host_can_use_collect2=no
# This removes the cpu type and manufacturer components and
@@ -191,9 +192,6 @@ case ${host} in
echo "*** linking with posix.dll is not allowed by the GNU GPL."
exit 1
;;
- i[34567]86-*-interix3*)
- host_xmake_file="${host_xmake_file} x-interix"
- ;;
i[34567]86-*-darwin* | x86_64-*-darwin*)
out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
host_xmake_file="${host_xmake_file} i386/x-darwin"
Index: config/alpha/x-vms
===================================================================
--- config/alpha/x-vms (revision 133635)
+++ config/alpha/x-vms (working copy)
@@ -5,7 +5,6 @@ libsubdir=$(libdir)/gcc-lib
# Rules for linker and compiler wrappers. These are only useful on
# a VMS host.
-EXTRA_PROGRAMS=ld.exe decc.exe
vms-ld.o : $(srcdir)/config/alpha/vms-ld.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
ld.exe : vms-ld.o
Index: config/t-openbsd-thread
===================================================================
--- config/t-openbsd-thread (revision 133635)
+++ config/t-openbsd-thread (working copy)
@@ -1,5 +1,3 @@
# This is currently needed to compile libgcc2 for threads support
TARGET_LIBGCC2_CFLAGS=-pthread
-#T_CFLAGS=-pthread
-#T_CPPFLAGS=-pthread
Index: config/x-interix
===================================================================
--- config/x-interix (revision 133635)
+++ config/x-interix (working copy)
@@ -1,3 +0,0 @@
-# Existing CC/GCC may not define -D__INTERIX, so need this here.
-# Since we want to configure with _ALL_SOURCE, we need to build that way too
-X_CFLAGS= -D__INTERIX -D_ALL_SOURCE
Index: configure.ac
===================================================================
--- configure.ac (revision 133635)
+++ configure.ac (working copy)
@@ -1738,7 +1738,7 @@ fi
# then define inhibit_libc in LIBGCC2_CFLAGS.
# This prevents libgcc2 from containing any code which requires libc
# support.
-inhibit_libc=false
+: ${inhibit_libc=false}
if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
test x$with_newlib = xyes ; } &&
{ test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
Index: config/m68hc11/t-m68hc11-gas
===================================================================
--- config/m68hc11/t-m68hc11-gas (revision 133635)
+++ config/m68hc11/t-m68hc11-gas (working copy)
@@ -1,79 +0,0 @@
-RANLIB_FOR_TARGET = ` \
- if [ -f $(objdir)/../binutils/ranlib ] ; then \
- echo $(objdir)/../binutils/ranlib ; \
- else \
- if [ "$(host)" = "$(target)" ] ; then \
- echo ranlib; \
- else \
- if [ -f $(bindir)/$(target_noncanonical)-ranlib ] ; then \
- echo $(bindir)/$(target_noncanonical)-ranlib ; \
- else \
- t='$(program_transform_cross_name)'; echo ranlib | sed -e $$t ; \
- fi; \
- fi; \
- fi`
-
-T_CPPFLAGS = -DUSE_GAS
-
-LIB1ASMSRC = m68hc11/larith.asm
-LIB1ASMFUNCS = _mulsi3 \
- _mulqi3 _ashlsi3 _ashrsi3 _lshrsi3 \
- _divmodhi4 _mulhi3 _mulhi32 \
- _memcpy _memset _negsi2 _one_cmplsi2 \
- _regs_min _regs_frame _regs_d1_2 \
- _regs_d3_4 _regs_d5_6 _regs_d7_8 _regs_d9_16 _regs_d17_32 \
- _premain __exit _abort _cleanup \
- _adddi3 _subdi3 _notdi2 _rotlhi3 _rotrhi3 \
- _ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \
- _ctor _dtor _far_tramp _call_far _return_far
-
-TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC -Dinhibit_libc
-
-# C implementation of 32-bit div/mod.
-LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \
- $(srcdir)/config/divmod.c $(srcdir)/config/udivmod.c
-
-# Don't compile with -g1 this reduces the size of some sections (.eh_frame).
-LIBGCC2_DEBUG_CFLAGS =-g
-LIBGCC2_CFLAGS = -Os -mrelax $(LIBGCC2_INCLUDES) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2
-
-MULTILIB_OPTIONS = m68hc11/m68hc12 mshort fshort-double
-MULTILIB_DIRNAMES =
-MULTILIB_MATCHES = m68hc11=m6811 m68hc12=m6812 m68hc12=m68hcs12
-MULTILIB_EXCEPTIONS = -mnoshort -mno68hc11
-
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
-
-# We want fine grained libraries, so use the new code to build the
-# floating point emulation libraries.
-FPBIT = fp-bit.c
-DPBIT = dp-bit.c
-
-dp-bit.c: $(srcdir)/config/fp-bit.c
- echo '#define SMALL_MACHINE' >> dp-bit.c
- echo '#define CMPtype HItype' >> dp-bit.c
- echo '#ifdef __LITTLE_ENDIAN__' >> dp-bit.c
- echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c
- echo '#endif' >> dp-bit.c
- cat $(srcdir)/config/fp-bit.c >> dp-bit.c
-
-fp-bit.c: $(srcdir)/config/fp-bit.c
- echo '#define FLOAT' > fp-bit.c
- echo '#define CMPtype HItype' >> fp-bit.c
- echo '#define SMALL_MACHINE' >> fp-bit.c
- echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c
- echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c
- echo '#endif' >> fp-bit.c
- cat $(srcdir)/config/fp-bit.c >> fp-bit.c
-
-CRT0_S = $(srcdir)/config/m68hc11/m68hc11-crt0.S
-MCRT0_S= $(srcdir)/config/m68hc11/m68hc11-crt0.S
-
-CRT0STUFF_T_CFLAGS =
-
-# Assemble startup files.
-$(T)crt1.o: $(CRT0_S) $(GCC_PASSES)
- $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o -x assembler-with-cpp $(CRT0_S)
-
-EXTRA_MULTILIB_PARTS = crt1.o
Index: config/m68hc11/t-m68hc11
===================================================================
--- config/m68hc11/t-m68hc11 (revision 133315)
+++ config/m68hc11/t-m68hc11 (working copy)
@@ -13,8 +13,6 @@ RANLIB_FOR_TARGET = ` \
fi; \
fi`
-T_CPPFLAGS = -DUSE_GAS
-
LIB1ASMSRC = m68hc11/larith.asm
LIB1ASMFUNCS = _mulsi3 \
_mulqi3 _ashlsi3 _ashrsi3 _lshrsi3 \
Index: config/mcore/t-mcore
===================================================================
--- config/mcore/t-mcore (revision 133635)
+++ config/mcore/t-mcore (working copy)
@@ -27,7 +27,6 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
echo '#define FLOAT' > fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
-T_CFLAGS = -DDONT_HAVE_STDIO -DDONT_HAVE_SETJMP -Dinhibit_libc
# could use -msifilter to be safe from interrupt/jmp interactions and others.
TARGET_LIBGCC2_CFLAGS=-O3 -DNO_FLOATLIB_FIXUNSDFSI #-msifilter
Index: config/mcore/t-mcore-pe
===================================================================
--- config/mcore/t-mcore-pe (revision 133635)
+++ config/mcore/t-mcore-pe (working copy)
@@ -17,7 +17,6 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
echo '#define FLOAT' > fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
-T_CFLAGS = -DDONT_HAVE_STDIO -DDONT_HAVE_SETJMP -Dinhibit_libc
# could use -msifilter to be safe from interrupt/jmp interactions and others.
TARGET_LIBGCC2_CFLAGS=-O3 -DNO_FLOATLIB_FIXUNSDFSI #-msifilter