All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: sparclinux@vger.kernel.org
Subject: Re: div, udiv, mul, umul, rem, urem broken again?!?
Date: Tue, 11 Oct 2005 10:03:36 +0000	[thread overview]
Message-ID: <1129025016.8218.38.camel@localhost.localdomain> (raw)
In-Reply-To: <1128550254.2140.103.camel@localhost.localdomain>

On Mon, 2005-10-10 at 11:22 -0700, David S. Miller wrote:
> From: Rusty Russell <rusty@rustcorp.com.au>
> Date: Mon, 10 Oct 2005 20:20:52 +1000
> 
> > #define __EXPORT_SPECIAL_SYMBOL(name, sym) \
> > 	static const char __kstrtab_##name[]			\
> > 	__attribute__((section("__ksymtab_strings")))		\
> > 	= MODULE_SYMBOL_PREFIX #name;    			\
> > 	static const struct kernel_symbol __ksymtab_##name	\
> > 	__attribute_used__					\
> > 	__attribute__((section("__ksymtab"), unused))	\
> > 	= { (unsigned long)&sym, __kstrtab_##name }
> > 
> > Note, PPC64 still needs the dot hack because it changes the name of
> > *every* function symbol.
> 
> The reason we did the ".foo" --> "_Foo" transformation was
> exactly because we didn't want to do crap like this any more.
> 
> It's error prone, and is nearly impossible to get working with
> every version of the compiler.
> 
> Why don't we just put an ifdef __sparc__ thing into modutils
> which understands the ".foo" --> "_Foo" translation?

Um.  We could do that.  It's not clear to me why putting it in modutils
will make it less "error prone" or portable.  Exporting symbol with
correct name need only be done in one place.  Mangling needs to be done
in three places (where it's exported, modprobe.c, and modutils).

The only reasons we can't export symbols like ".div" are (1) because the
export macros use the symbol names to build temporary unique variable
names.  This is merely an implementation detail in the EXPORT_SYMBOL
macro (we could use __LINE__ instead).

And (2) for PPC64, we put in the "ignore ." hack.  Everyone used to be
happy with that, so it wasn't made PPC64 specific.  In retrospect, that
was a mistake.

Look, I don't *actually* care.  Send me whatever hack patch you want for
sparc modutils.  Then wait for me to do a new module-init-tools release
to sync up.  Repeat every time you change your mind.

Rusty.
-- 
A bad analogy is like a leaky screwdriver -- Richard Braakman


  parent reply	other threads:[~2005-10-11 10:03 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-05 22:10 div, udiv, mul, umul, rem, urem broken again?!? Tom 'spot' Callaway
2005-10-05 22:17 ` Tom 'spot' Callaway
2005-10-06  0:24 ` David S. Miller
2005-10-06 13:21 ` Tom 'spot' Callaway
2005-10-10 10:20 ` Rusty Russell
2005-10-10 14:35 ` Tom 'spot' Callaway
2005-10-10 18:22 ` David S. Miller
2005-10-11 10:03 ` Rusty Russell [this message]
2005-11-06  0:40 ` David S. Miller
2005-11-06  4:13 ` Tom 'spot' Callaway
2005-11-06  6:27 ` Rusty Russell
2005-11-06 20:56 ` David S. Miller
2005-11-06 20:58 ` David S. Miller
2006-02-08 20:25 ` Martin Habets
2006-02-08 20:51 ` Tom 'spot' Callaway
2006-02-08 20:56 ` Al Viro
2006-02-09  1:29 ` Rusty Russell

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=1129025016.8218.38.camel@localhost.localdomain \
    --to=rusty@rustcorp.com.au \
    --cc=sparclinux@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.