From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15628 invoked by alias); 29 Jul 2013 16:24:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15510 invoked by uid 89); 29 Jul 2013 16:24:42 -0000 X-Spam-SWARE-Status: No, score=-4.8 required=5.0 tests=AWL,BAYES_50,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RDNS_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.1 Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 29 Jul 2013 16:24:41 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r6TGOYYZ022229 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 29 Jul 2013 12:24:34 -0400 Received: from barimba.redhat.com (ovpn-113-128.phx2.redhat.com [10.3.113.128]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r6TGOXGx016555; Mon, 29 Jul 2013 12:24:34 -0400 From: Tom Tromey To: gcc-patches@gcc.gnu.org Cc: Tom Tromey Subject: [PATCH v2 01/18] clean up SHLIB so subshells are not needed Date: Mon, 29 Jul 2013 16:25:00 -0000 Message-Id: <1375115069-31143-2-git-send-email-tromey@redhat.com> In-Reply-To: <1375115069-31143-1-git-send-email-tromey@redhat.com> References: <1375115069-31143-1-git-send-email-tromey@redhat.com> X-SW-Source: 2013-07/txt/msg01401.txt.bz2 This changes the handling of SHLIB so that it is inlined into DRIVER_DEFINES. This is ok because SHLIB is defined in a Makefile fragment that is included by the generated Makefile. The rationale for this is that it simplifies some .o targets, so that we can share more code. * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code, to add -DENABLE_SHARED_LIBGCC. (gcc.o): Don't use subshell. * Make-lang.in (c/gccspec.o): Don't use subshell. * Make-lang.in (g++spec.o): Don't use subshell. * Make-lang.in (gfortranspec.o): Don't use subshell. * Make-lang.in (gospec.o): Don't use subshell. * Make-lang.in (jvspec.o): Don't use subshell. --- gcc/Makefile.in | 5 ++--- gcc/c/Make-lang.in | 3 +-- gcc/cp/Make-lang.in | 3 +-- gcc/fortran/Make-lang.in | 3 +-- gcc/go/Make-lang.in | 3 +-- gcc/java/Make-lang.in | 3 +-- 6 files changed, 7 insertions(+), 13 deletions(-) diff --git a/gcc/Makefile.in b/gcc/Makefile.in index fb0cb4b..ce5b159 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -2056,16 +2056,15 @@ DRIVER_DEFINES = \ -DTOOLDIR_BASE_PREFIX=\"$(libsubdir_to_prefix)$(prefix_to_exec_prefix)\" \ @TARGET_SYSTEM_ROOT_DEFINE@ \ $(VALGRIND_DRIVER_DEFINES) \ - `test "X$${SHLIB}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \ + $(and $(SHLIB),$(filter yes,@enable_shared@),-DENABLE_SHARED_LIBGCC) \ -DCONFIGURE_SPECS="\"@CONFIGURE_SPECS@\"" gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \ Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \ configargs.h $(OBSTACK_H) $(OPTS_H) $(DIAGNOSTIC_H) $(VEC_H) $(PARAMS_H) - (SHLIB='$(SHLIB)'; \ $(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \ $(DRIVER_DEFINES) \ - -c $(srcdir)/gcc.c $(OUTPUT_OPTION)) + -c $(srcdir)/gcc.c $(OUTPUT_OPTION) specs.h : s-specs ; @true s-specs : Makefile diff --git a/gcc/c/Make-lang.in b/gcc/c/Make-lang.in index 1161742..86deb1d 100644 --- a/gcc/c/Make-lang.in +++ b/gcc/c/Make-lang.in @@ -46,10 +46,9 @@ c: cc1$(exeext) # is to cc1 as e.g. g++ is to cc1plus, or gfortran is to f951). c/gccspec.o: c/gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ $(OPTS_H) - (SHLIB='$(SHLIB)'; \ $(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \ $(DRIVER_DEFINES) \ - -c $(srcdir)/c/gccspec.c $(OUTPUT_OPTION)) + -c $(srcdir)/c/gccspec.c $(OUTPUT_OPTION) # The C compiler itself. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 2cb919a..da8e87b 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -53,9 +53,8 @@ c++: cc1plus$(exeext) g++spec.o: $(srcdir)/cp/g++spec.c $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ $(CONFIG_H) $(OPTS_H) - (SHLIB='$(SHLIB)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ - $(INCLUDES) $(srcdir)/cp/g++spec.c) + $(INCLUDES) $(srcdir)/cp/g++spec.c # Create the compiler driver for g++. GXX_OBJS = $(GCC_OBJS) g++spec.o diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in index ee70423..035a1d5 100644 --- a/gcc/fortran/Make-lang.in +++ b/gcc/fortran/Make-lang.in @@ -78,9 +78,8 @@ fortran: f951$(exeext) gfortranspec.o: $(srcdir)/fortran/gfortranspec.c $(SYSTEM_H) $(TM_H) $(GCC_H) \ $(CONFIG_H) coretypes.h intl.h $(OPTS_H) - (SHLIB='$(SHLIB)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ - $(INCLUDES) $(srcdir)/fortran/gfortranspec.c) + $(INCLUDES) $(srcdir)/fortran/gfortranspec.c # Create the compiler driver gfortran. GFORTRAN_D_OBJS = $(GCC_OBJS) gfortranspec.o diff --git a/gcc/go/Make-lang.in b/gcc/go/Make-lang.in index 3cb18d6..015ed7a 100644 --- a/gcc/go/Make-lang.in +++ b/gcc/go/Make-lang.in @@ -32,9 +32,8 @@ go: go1$(exeext) gospec.o: $(srcdir)/go/gospec.c $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ $(CONFIG_H) opts.h - (SHLIB='$(SHLIB)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ - $(INCLUDES) $(srcdir)/go/gospec.c) + $(INCLUDES) $(srcdir)/go/gospec.c GCCGO_OBJS = $(GCC_OBJS) gospec.o gccgo$(exeext): $(GCCGO_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS) diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in index 8a6210f..078f6d4 100644 --- a/gcc/java/Make-lang.in +++ b/gcc/java/Make-lang.in @@ -57,9 +57,8 @@ JAVA_TARGET_INDEPENDENT_BIN_TOOLS = jcf-dump jvspec.o: $(srcdir)/java/jvspec.c $(SYSTEM_H) coretypes.h $(TM_H) \ $(GCC_H) $(CONFIG_H) java/jcf.h java/javaop.h $(OPTS_H) - (SHLIB='$(SHLIB)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ - $(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION)) + $(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION) # Create the compiler driver for $(XGCJ). $(XGCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o \ -- 1.8.1.4