From patchwork Fri May 16 18:06:25 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 976 Return-Path: X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx21.g.dreamhost.com (peon2454.g.dreamhost.com [208.113.200.127]) by wilcox.dreamhost.com (Postfix) with ESMTP id 6E82136007A for ; Fri, 16 May 2014 11:06:37 -0700 (PDT) Received: by homiemail-mx21.g.dreamhost.com (Postfix, from userid 14307373) id 211941A73035; Fri, 16 May 2014 11:06:37 -0700 (PDT) X-Original-To: glibc@patchwork.siddhesh.in Delivered-To: x14307373@homiemail-mx21.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx21.g.dreamhost.com (Postfix) with ESMTPS id A74E91A5B3BB for ; Fri, 16 May 2014 11:06:36 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:mime-version :content-type; q=dns; s=default; b=SSjmutVvyAnmJvZIZaBLsnDWFyymo iHBBTDZkiibk3wjFb+qmJe2Fs2qV4WzQ1PSs/e1u2PSTUXZjFUSbcNU89nASghuo j6L0fOHMEtFO6pt2hF75MOUaTFuEVJmf/sGBjtuVhH19/+Ln+QYhPrInXxHK8SkB 3CX4IVP7vTpsMo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:mime-version :content-type; s=default; bh=sSGwUhXCwaiv8VopMTjnUA5+Nfs=; b=iKN VrJQtKbi+MYgXIyIUCNsoozxKZN3mOBReGmrbc31oraNlcFvjOILvemBPuzxmjMJ hpoVaxatXO0e7piSVwFVGKCpRcUtsgCX1n9BS7FePKLk+wyoqWSg2qECx326uduQ KiGN55O7vKTuCmOE7ZIseFTe2/LUCKFAXSF5Zsw0= Received: (qmail 3297 invoked by alias); 16 May 2014 18:06:34 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 3283 invoked by uid 89); 16 May 2014 18:06:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Fri, 16 May 2014 18:06:25 +0000 From: "Joseph S. Myers" To: Subject: Use existing makefile variables for dependencies on glibc libraries Message-ID: MIME-Version: 1.0 X-DH-Original-To: glibc@patchwork.siddhesh.in glibc's Makeconfig defines some variables such as $(libm) and $(libdl) for linking with libraries built by glibc, and nptl/Makeconfig (included by the toplevel Makeconfig) defines others such as $(shared-thread-library). In some places glibc's Makefiles use those variables when linking against the relevant libraries, but in other places they hardcode the location of the libraries in the build tree. This patch cleans up various places to use the variables that already exist (in the case of libm, replacing several duplicate definitions of a $(link-libm) variable in subdirectory Makefiles). (It's not necessarily exactly equivalent to what the existing code does - in particular, $(shared-thread-library) includes libpthread_nonshared, but is replacing places that just referred to libpthread.so. But I think that change is desirable on the general principle of linking things as close as possible to the way in which they would be linked with an installed library, unless there is a clear reason not to do so.) To support running tests with an installed copy of glibc without needing the full build tree from when that copy was built, I think it will be useful to use such variables more generally and systematically - every time the rules for building a test refer to some file from the build tree that's also installed by glibc, use a makefile variable so that the installed-testing case can point those variables to installed copies of the files. This patch just deals with straightforward cases where such variables already exist. It's quite possible some uses of $(shared-thread-library) should actually be a new $(thread-library) variable that's set appropriately in the --disable-shared case, if those uses would in fact work without shared libraries. I didn't change the status quo that those cases hardcode use of a shared library whether or not it's actually needed (but other uses such as $(libm) and $(libdl) would now get the static library if the shared library isn't built, when some previously hardcoded use of the shared library - if they actually need shared libraries, the test itself needs an enable-shared conditional anyway). Tested x86_64. 2014-05-16 Joseph Myers * benchtests/Makefile ($(addprefix $(objpfx)bench-,$(bench-math))): Depend on $(libm), not $(common-objpfx)math/libm.so. ($(addprefix $(objpfx)bench-,$(bench-pthread))): Depend on $(shared-thread-library), not $(common-objpfx)nptl/libpthread.so. * elf/Makefile ($(objpfx)noload): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. ($(objpfx)tst-audit8): Depend on $(libm), not $(common-objpfx)math/libm.so. * malloc/Makefile ($(objpfx)libmemusage.so): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. * math/Makefile ($(addprefix $(objpfx),$(filter-out $(tests-static),$(tests)))): Depend on $(libm), not $(objpfx)libm.so. Do not condition on [$(build-shared) = yes]. ($(objpfx)test-fenv-tls): Depend on $(shared-thread-library), not $(common-objpfx)nptl/libpthread.so. * misc/Makefile ($(objpfx)tst-tsearch): Depend on $(libm), not $(common-objpfx)math/libm.so$(libm.so-version) or $(common-objpfx)math/libm.a depending on [$(build-shared) = yes]. * nptl/Makefile ($(objpfx)tst-unload): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. * setjmp/Makefile (link-libm): Remove variable. ($(objpfx)tst-setjmp-fp): Depend on $(libm), not $(link-libm). * stdio-common/Makefile (link-libm): Remove variable. ($(objpfx)tst-printf-round): Depend on $(libm), not $(link-libm). * stdlib/Makefile (link-libm): Remove variable. ($(objpfx)bug-getcontext): Depend on $(libm), not $(link-libm). ($(objpfx)tst-strtod-round): Likewise. ($(objpfx)tst-tininess): Likewise. ($(objpfx)tst-strtod-underflow): Likewise. ($(objpfx)tst-strtod6): Likewise. ($(objpfx)tst-tls-atexit): Depend on $(shared-thread-library) and $(libdl), not $(common-objpfx)nptl/libpthread.so and $(common-objpfx)dlfcn/libdl.so. diff --git a/benchtests/Makefile b/benchtests/Makefile index a0954cd..cdbb15e 100644 --- a/benchtests/Makefile +++ b/benchtests/Makefile @@ -44,9 +44,9 @@ benchset := $(string-bench-all) $(stdlib-bench) CFLAGS-bench-ffs.c += -fno-builtin CFLAGS-bench-ffsll.c += -fno-builtin -$(addprefix $(objpfx)bench-,$(bench-math)): $(common-objpfx)math/libm.so +$(addprefix $(objpfx)bench-,$(bench-math)): $(libm) $(addprefix $(objpfx)bench-,$(bench-pthread)): \ - $(common-objpfx)nptl/libpthread.so + $(shared-thread-library) diff --git a/elf/Makefile b/elf/Makefile index 084abca..4dcc78a 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -653,7 +653,7 @@ $(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so) $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so) vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so) -$(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so +$(objpfx)noload: $(objpfx)testobj1.so $(libdl) LDFLAGS-noload = -rdynamic $(no-as-needed) $(objpfx)noload.out: $(objpfx)testobj5.so @@ -1011,7 +1011,7 @@ $(objpfx)tst-audit9: $(libdl) $(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so -$(objpfx)tst-audit8: $(common-objpfx)math/libm.so +$(objpfx)tst-audit8: $(libm) $(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so diff --git a/malloc/Makefile b/malloc/Makefile index d962331..7a716f9 100644 --- a/malloc/Makefile +++ b/malloc/Makefile @@ -148,7 +148,7 @@ $(objpfx)memusage: memusage.sh # The implementation uses `dlsym' -$(objpfx)libmemusage.so: $(common-objpfx)dlfcn/libdl.so +$(objpfx)libmemusage.so: $(libdl) # Extra dependencies $(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c diff --git a/math/Makefile b/math/Makefile index c13ca80..f337a0e 100644 --- a/math/Makefile +++ b/math/Makefile @@ -219,12 +219,8 @@ $(objpfx)libieee.a: $(objpfx)ieee-math.o $(patsubst %/,cd % &&,$(objpfx)) \ $(LN_S) $( $@; \ $(evaluate-test) -ifeq ($(build-shared),yes) -link-libm = $(common-objpfx)math/libm.so -else -link-libm = $(common-objpfx)math/libm.a -endif -$(objpfx)tst-printf-round: $(link-libm) +$(objpfx)tst-printf-round: $(libm) diff --git a/stdlib/Makefile b/stdlib/Makefile index 42482a2..22b34c3 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -150,19 +150,14 @@ $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os $(link-libc-deps) $(build-module) CFLAGS-tst-putenvmod.c = -DNOT_IN_libc=1 -ifeq ($(build-shared),yes) -link-libm = $(common-objpfx)math/libm.so -else -link-libm = $(common-objpfx)math/libm.a -endif -$(objpfx)bug-getcontext: $(link-libm) -$(objpfx)tst-strtod-round: $(link-libm) -$(objpfx)tst-tininess: $(link-libm) -$(objpfx)tst-strtod-underflow: $(link-libm) -$(objpfx)tst-strtod6: $(link-libm) +$(objpfx)bug-getcontext: $(libm) +$(objpfx)tst-strtod-round: $(libm) +$(objpfx)tst-tininess: $(libm) +$(objpfx)tst-strtod-underflow: $(libm) +$(objpfx)tst-strtod6: $(libm) tst-tls-atexit-lib.so-no-z-defs = yes -$(objpfx)tst-tls-atexit: $(common-objpfx)nptl/libpthread.so \ - $(common-objpfx)dlfcn/libdl.so +$(objpfx)tst-tls-atexit: $(shared-thread-library) \ + $(libdl) $(objpfx)tst-tls-atexit.out: $(objpfx)tst-tls-atexit-lib.so