public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Alex Zarochentsev <zam@namesys.com>
To: Paul Jackson <pj@sgi.com>
Cc: reiser@namesys.com, linux-kernel@vger.kernel.org, akpm@osdl.org
Subject: Re: 2.6.9-rc1-mm4 sparc reiser4 build broken - undefined atomic_sub_and_test
Date: Sun, 12 Sep 2004 23:48:39 +0400	[thread overview]
Message-ID: <20040912194839.GV6294@backtop.namesys.com> (raw)
In-Reply-To: <20040912114948.49095cd2.pj@sgi.com>

On Sun, Sep 12, 2004 at 11:49:48AM -0700, Paul Jackson wrote:
> Alex writes:
> > please try this patch:
> > ...
> > +++ reiser4-linux-2.6/fs/reiser4/flush_queue.c
> > ...
> > +#include <asm/atomic.h>
> 
> This patch doesn't help.
> 
> Both with and without this patch, I observe the following:
> 
>  1) include/asm/atomic.h is listed in fs/reiser4/.flush_queue.o.cmd
>     (apparently it is included indirectly, even if not explicitly so)
>  2) The command:
> 	make fs/reiser4/flush_queue.o
>     produces the output:
> 	fs/reiser4/flush_queue.c: In function `end_io_handler':
> 	fs/reiser4/flush_queue.c:451: warning: implicit declaration of function `atomic_sub_and_test'
>  3) include/asm/atomic.h (which is include/asm-sparc/atomic.h via the asm symlink)
>     does _not_ mention atomic_sub_and_test
>  4) include/asm-sparc64/atomic.h _does_ mention atomic_sub_and_test (and build ok)
>  5) the final kernel link fails with:
> 	fs/built-in.o(.text+0x58618): In function `end_io_handler':
> 	: undefined reference to `atomic_sub_and_test'
> 	make[1]: *** [arch/sparc/boot/image] Error 1
> 
> I also saw an email from Bill Irwin go by, explaining that he did not
> choose to add atomic_sub_and_test to include/asm-sparc/atomic.h, which
> email is consistent with my observation that sparc atomic.h does not
> define atomic_sub_and_test.
> 
> It would seem that your asm-sparc/atomic.h is not the same as mine.
> 
> I believe that mine is the one in 2.6.9-rc1-mm4, which is the same as
> the latest one in Linus' bk tree, since its most recent change of:
> 
>   1.10 04/05/14 19:00:05 akpm@osdl.org[torvalds] +10 -0
>   Implement atomic_inc_and_test() on various architectures
> 
> and continuing through now.  This atomic.h is 4550 bytes long, with an
> md5sum of:
> 
> 	90eb38997e21e579fc1cd1617180d630  include/asm-sparc/atomic.h
> 
> And, to repeat myself, it has no mention of atomic_sub_and_test.

ah, that was atomic24_sub_and_test(), marked as
/* This is the old 24-bit implementation. ... */

I think adding the wrappers for atomic_sub_and_test() wouldn't be wrong:

===== include/asm-sparc/atomic.h 1.10 vs edited =====
--- 1.10/include/asm-sparc/atomic.h	Sat May 15 06:00:05 2004
+++ edited/include/asm-sparc/atomic.h	Sun Sep 12 23:37:05 2004
@@ -44,8 +44,9 @@
  * other cases.
  */
 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
 #define atomic_dec_and_test(v) (atomic_dec_return(v) == 0)
+#define atomic_add_and_test(i, v) (atomic_add_return(i, v) == 0)
+#define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
 
 /* This is the old 24-bit implementation.  It's still used internally
  * by some sparc-specific code, notably the semaphore implementation.
=============================

Interesting that asm-sparc64/atomic.h defines atomic_add/sub_and_test().

>                           I won't rest till it's the best ...
>                           Programmer, Linux Scalability
>                           Paul Jackson <pj@sgi.com> 1.650.933.1373

-- 
Alex.

  reply	other threads:[~2004-09-12 19:57 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-12 10:12 2.6.9-rc1-mm4 sparc reiser4 build broken - undefined atomic_sub_and_test Paul Jackson
2004-09-12 10:54 ` William Lee Irwin III
2004-09-12 16:33 ` Alex Zarochentsev
2004-09-12 18:49   ` Paul Jackson
2004-09-12 19:48     ` Alex Zarochentsev [this message]
2004-09-13 12:42       ` Hugh Dickins
2004-09-13 13:25         ` Roman Zippel
2004-09-13 13:51           ` Hugh Dickins
2004-09-13 14:10             ` Roman Zippel
2004-09-13 14:58               ` Hugh Dickins
2004-09-13 16:03                 ` Roman Zippel
2004-09-13 16:20                   ` Hugh Dickins
2004-09-13 20:03                   ` Tonnerre
2004-09-13 20:18                     ` Roman Zippel
2004-09-13 20:18                     ` 2.6.9-rc1-mm4 sparc reiser4 build broken - undefined atomic_s ub_and_test Hugh Dickins
2004-09-13 17:19                 ` 2.6.9-rc1-mm4 sparc reiser4 build broken - undefined atomic_sub_and_test Alex Zarochentsev
2004-09-14  2:06                   ` William Lee Irwin III
2004-09-14  9:00                     ` Roman Zippel
2004-09-14  9:10                       ` William Lee Irwin III
2004-09-14  9:15                         ` [sparc32] add atomic_sub_and_test() to make reiser4 code microoptimized for x86 compile on sparc32 William Lee Irwin III
2004-09-14 15:38                           ` William Lee Irwin III
  -- strict thread matches above, loose matches on Subject: below --
2004-09-13 17:14 2.6.9-rc1-mm4 sparc reiser4 build broken - undefined atomic_sub_and_test Martin Schwidefsky
2004-09-13 17:26 ` Roman Zippel
     [not found] <OF6D4E73AE.1DB1AD2F-ON42256F0F.003132FF-42256F0F.00321365@de.ibm.com>
2004-09-14  9:40 ` Roman Zippel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040912194839.GV6294@backtop.namesys.com \
    --to=zam@namesys.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pj@sgi.com \
    --cc=reiser@namesys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox