From patchwork Wed Jun 25 01:29:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland McGrath X-Patchwork-Id: 1709 Received: (qmail 22780 invoked by alias); 25 Jun 2014 01:29:16 -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 22577 invoked by uid 89); 25 Jun 2014 01:29:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: topped-with-meat.com MIME-Version: 1.0 From: Roland McGrath To: David Miller Cc: libc-alpha@sourceware.org Subject: Re: [PATCH roland/nptl-sparc] Move remaining SPARC code out of nptl/. In-Reply-To: David Miller's message of Tuesday, 24 June 2014 16:00:02 -0700 <20140624.160002.1663908055896659968.davem@davemloft.net> References: <20140624201458.D62112C39C4@topped-with-meat.com> <20140624.132842.1255651814055244349.davem@davemloft.net> <20140624203452.A0FD52C3A10@topped-with-meat.com> <20140624.160002.1663908055896659968.davem@davemloft.net> Message-Id: <20140625012908.949DF2C3A22@topped-with-meat.com> Date: Tue, 24 Jun 2014 18:29:08 -0700 (PDT) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=SvUDtp+0 c=1 sm=1 tr=0 a=WkljmVdYkabdwxfqvArNOQ==:117 a=14OXPxybAAAA:8 a=8tsICrydCnQA:10 a=Z6MIti7PxpgA:10 a=kj9zAlcOel0A:10 a=hOe2yjtxAAAA:8 a=E6N3tpvHOVF7XUXa-MoA:9 a=CjuIK1q_8ugA:10 > Your roland/nptl branch results in a new build error, the problem is > that sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c tries to include > the old location of the generic Linux sem_trywait.c file which of > course no longer works. > > What's the best way to handle this? OK, I think I have the clean way out, though I still haven't actually tried a sparc compile. (The known quick and dirty kludge for this problem is "#include ".) I was more conservative than necessary when moving things out of nptl/sysdeps/. I moved things from nptl/sysdeps/foo/bar to sysdeps/foo/bar/nptl pretty formulaically. But there isn't actually a need for nptl/ subdirectories all over the place just because we had the distinction before. Having more than we really need just makes for more hair--especially when the final stage of de-add-on-ification comes and then we'd need sysdeps/unix/sysv/linux/.../Implies files to list each such foo/bar/nptl. There should be a sysdeps/.../nptl when it contains things that would otherwise be picked up by sysdeps/... but should not be. This is not the case for pthread_*, sem_*, etc.--everything that is only picked up at all in the subdir=nptl make stages will not interfere with a configuration that doesn't build nptl at all. For sparc, the only file that actually would interfere is tls.h, so we only need sysdeps/sparc/nptl/ and the others can be collapsed. So, we can get rid of the directories like sparcv9/nptl/ and then they won't foul up an #include. I have done an additional change on roland/nptl-sparc to collapse the unneeded directories, included below for the record (but just use the git branches). (Note I've rebased the branches, so you'll need to force updates.) I've then rebased roland/nptl to be on top of roland/nptl-sparc, and fixed the #include's that were affected (there were one or two others I found by grepping). So you can just check out the roland/nptl branch as is and try building. Let's see how close this gets to working for sparc. Thanks, Roland * sysdeps/sparc/sparc64/nptl/cpu_relax.S: Moved ... * sysdeps/sparc/sparc64/cpu_relax.S: ... here. * sysdeps/sparc/sparc64/nptl/pthread_spin_init.c: Moved ... * sysdeps/sparc/sparc64/pthread_spin_init.c: ... here. * sysdeps/sparc/sparc64/nptl/pthread_spin_lock.S: Moved ... * sysdeps/sparc/sparc64/pthread_spin_lock.S: ... here. * sysdeps/sparc/sparc64/nptl/pthread_spin_trylock.S: Moved ... * sysdeps/sparc/sparc64/pthread_spin_trylock.S: ... here. * sysdeps/sparc/sparc64/nptl/pthread_spin_unlock.S: Moved ... * sysdeps/sparc/sparc64/pthread_spin_unlock.S: ... here. * sysdeps/sparc/sparc64/nptl/pthreaddef.h: Moved ... * sysdeps/sparc/sparc64/pthreaddef.h: ... here. * sysdeps/sparc/sparc32/sparcv9/cpu_relax.S: Update #include. * sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c: Likewise. * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S: Likewise. * sysdeps/sparc/sparc64/nptl/Makefile: File removed, its contents ... * sysdeps/sparc/sparc64/Makefile: ... appended here. * sysdeps/sparc/sparc32/nptl/lowlevellock.c: Moved ... * sysdeps/sparc/sparc32/lowlevellock.c: ... here. * sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c: Moved ... * sysdeps/sparc/sparc32/pthread_barrier_wait.c: ... here. * sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S: Moved ... * sysdeps/sparc/sparc32/pthread_spin_lock.S: ... here. * sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S: Moved ... * sysdeps/sparc/sparc32/pthread_spin_trylock.S: ... here. * sysdeps/sparc/sparc32/nptl/pthreaddef.h: Moved ... * sysdeps/sparc/sparc32/pthreaddef.h: ... here. * sysdeps/sparc/sparc32/nptl/sem_post.c: Moved ... * sysdeps/sparc/sparc32/sem_post.c: ... here. * sysdeps/sparc/sparc32/nptl/sem_timedwait.c: Moved ... * sysdeps/sparc/sparc32/sem_timedwait.c: ... here. * sysdeps/sparc/sparc32/nptl/sem_trywait.c: Moved ... * sysdeps/sparc/sparc32/sem_trywait.c: ... here. * sysdeps/sparc/sparc32/nptl/sem_wait.c: Moved ... * sysdeps/sparc/sparc32/sem_wait.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S: Moved ... * sysdeps/sparc/sparc32/sparcv9/cpu_relax.S: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/pthread_barrier_wait.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S: Moved ... * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S: Moved ... * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S: Moved ... * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/sem_post.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/sem_timedwait.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/sem_trywait.c: ... here. * sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c: Moved ... * sysdeps/sparc/sparc32/sparcv9/sem_wait.c: ... here. diff --git a/sysdeps/sparc/sparc32/nptl/lowlevellock.c b/sysdeps/sparc/sparc32/lowlevellock.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/lowlevellock.c rename to sysdeps/sparc/sparc32/lowlevellock.c diff --git a/sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/pthread_barrier_wait.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c rename to sysdeps/sparc/sparc32/pthread_barrier_wait.c diff --git a/sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S b/sysdeps/sparc/sparc32/pthread_spin_lock.S similarity index 100% rename from sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S rename to sysdeps/sparc/sparc32/pthread_spin_lock.S diff --git a/sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/pthread_spin_trylock.S similarity index 100% rename from sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S rename to sysdeps/sparc/sparc32/pthread_spin_trylock.S diff --git a/sysdeps/sparc/sparc32/nptl/pthreaddef.h b/sysdeps/sparc/sparc32/pthreaddef.h similarity index 100% rename from sysdeps/sparc/sparc32/nptl/pthreaddef.h rename to sysdeps/sparc/sparc32/pthreaddef.h diff --git a/sysdeps/sparc/sparc32/nptl/sem_post.c b/sysdeps/sparc/sparc32/sem_post.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/sem_post.c rename to sysdeps/sparc/sparc32/sem_post.c diff --git a/sysdeps/sparc/sparc32/nptl/sem_timedwait.c b/sysdeps/sparc/sparc32/sem_timedwait.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/sem_timedwait.c rename to sysdeps/sparc/sparc32/sem_timedwait.c diff --git a/sysdeps/sparc/sparc32/nptl/sem_trywait.c b/sysdeps/sparc/sparc32/sem_trywait.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/sem_trywait.c rename to sysdeps/sparc/sparc32/sem_trywait.c diff --git a/sysdeps/sparc/sparc32/nptl/sem_wait.c b/sysdeps/sparc/sparc32/sem_wait.c similarity index 100% rename from sysdeps/sparc/sparc32/nptl/sem_wait.c rename to sysdeps/sparc/sparc32/sem_wait.c diff --git a/sysdeps/sparc/sparc32/sparcv9/cpu_relax.S b/sysdeps/sparc/sparc32/sparcv9/cpu_relax.S new file mode 100644 index 0000000..41a5e72 --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/cpu_relax.S @@ -0,0 +1 @@ +#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S b/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S deleted file mode 100644 index fa88647..0000000 --- a/sysdeps/sparc/sparc32/sparcv9/nptl/cpu_relax.S +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c deleted file mode 100644 index c8edcb0..0000000 --- a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S deleted file mode 100644 index f2b898d..0000000 --- a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S deleted file mode 100644 index b324906..0000000 --- a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S deleted file mode 100644 index 8c56ebe..0000000 --- a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/sparcv9/pthread_barrier_wait.c similarity index 100% rename from sysdeps/sparc/sparc32/sparcv9/nptl/pthread_barrier_wait.c rename to sysdeps/sparc/sparc32/sparcv9/pthread_barrier_wait.c diff --git a/sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c new file mode 100644 index 0000000..1eede86 --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S new file mode 100644 index 0000000..ce53dfa --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S @@ -0,0 +1 @@ +#include diff --git a/sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S new file mode 100644 index 0000000..ffd632d --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S @@ -0,0 +1 @@ +#include diff --git a/sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S new file mode 100644 index 0000000..983c803 --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S @@ -0,0 +1 @@ +#include diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c b/sysdeps/sparc/sparc32/sparcv9/sem_post.c similarity index 100% rename from sysdeps/sparc/sparc32/sparcv9/nptl/sem_post.c rename to sysdeps/sparc/sparc32/sparcv9/sem_post.c diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c b/sysdeps/sparc/sparc32/sparcv9/sem_timedwait.c similarity index 100% rename from sysdeps/sparc/sparc32/sparcv9/nptl/sem_timedwait.c rename to sysdeps/sparc/sparc32/sparcv9/sem_timedwait.c diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c b/sysdeps/sparc/sparc32/sparcv9/sem_trywait.c similarity index 100% rename from sysdeps/sparc/sparc32/sparcv9/nptl/sem_trywait.c rename to sysdeps/sparc/sparc32/sparcv9/sem_trywait.c diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c b/sysdeps/sparc/sparc32/sparcv9/sem_wait.c similarity index 100% rename from sysdeps/sparc/sparc32/sparcv9/nptl/sem_wait.c rename to sysdeps/sparc/sparc32/sparcv9/sem_wait.c diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile index fb161ea..dd3023d 100644 --- a/sysdeps/sparc/sparc64/Makefile +++ b/sysdeps/sparc/sparc64/Makefile @@ -14,3 +14,7 @@ ASFLAGS-.op += -Wa,-Av9d ASFLAGS-.og += -Wa,-Av9d ASFLAGS-.oS += -Wa,-Av9d endif + +ifeq ($(subdir),nptl) +libpthread-routines += cpu_relax +endif diff --git a/sysdeps/sparc/sparc64/nptl/cpu_relax.S b/sysdeps/sparc/sparc64/cpu_relax.S similarity index 100% rename from sysdeps/sparc/sparc64/nptl/cpu_relax.S rename to sysdeps/sparc/sparc64/cpu_relax.S diff --git a/sysdeps/sparc/sparc64/nptl/Makefile b/sysdeps/sparc/sparc64/nptl/Makefile deleted file mode 100644 index ddc9038..0000000 --- a/sysdeps/sparc/sparc64/nptl/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(subdir),nptl) -libpthread-routines += cpu_relax -endif diff --git a/sysdeps/sparc/sparc64/nptl/pthread_spin_init.c b/sysdeps/sparc/sparc64/pthread_spin_init.c similarity index 100% rename from sysdeps/sparc/sparc64/nptl/pthread_spin_init.c rename to sysdeps/sparc/sparc64/pthread_spin_init.c diff --git a/sysdeps/sparc/sparc64/nptl/pthread_spin_lock.S b/sysdeps/sparc/sparc64/pthread_spin_lock.S similarity index 100% rename from sysdeps/sparc/sparc64/nptl/pthread_spin_lock.S rename to sysdeps/sparc/sparc64/pthread_spin_lock.S diff --git a/sysdeps/sparc/sparc64/nptl/pthread_spin_trylock.S b/sysdeps/sparc/sparc64/pthread_spin_trylock.S similarity index 100% rename from sysdeps/sparc/sparc64/nptl/pthread_spin_trylock.S rename to sysdeps/sparc/sparc64/pthread_spin_trylock.S diff --git a/sysdeps/sparc/sparc64/nptl/pthread_spin_unlock.S b/sysdeps/sparc/sparc64/pthread_spin_unlock.S similarity index 100% rename from sysdeps/sparc/sparc64/nptl/pthread_spin_unlock.S rename to sysdeps/sparc/sparc64/pthread_spin_unlock.S diff --git a/sysdeps/sparc/sparc64/nptl/pthreaddef.h b/sysdeps/sparc/sparc64/pthreaddef.h similarity index 100% rename from sysdeps/sparc/sparc64/nptl/pthreaddef.h rename to sysdeps/sparc/sparc64/pthreaddef.h