This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

[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
 

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