[1174] in linux-net channel archive

home help back first fref pref prev next nref lref last post

Re: Linux-1.3.32

daemon@ATHENA.MIT.EDU (Michael H. Warfield)
Sat Oct 7 23:22:08 1995

To: Linus.Torvalds@cs.Helsinki.FI (Linus Torvalds)
Date: Sat, 7 Oct 1995 16:04:39 -0400 (EDT)
From: "Michael H. Warfield" <mhw@wittsend.com>
Cc: linux-kernel@vger.rutgers.edu, linux-net@vger.rutgers.edu
In-Reply-To: <199510061250.OAA09630@keos.cs.Helsinki.FI> from "Linus Torvalds" at Oct 6, 95 02:50:18 pm

Hello,

	I've been having a problem with modules support in some of the
latest kernels.

	In patch-1.3.31 several of the network drivers where changed
and calls to "eth_copy_and_sum" or "eth_io_copy_and_sum" where added.
On the 386 archictecture, a macro maps the eth_io_copy_and_sum to
the eth_copy_and_sum.  Now, any time I try and load a network module,
such as the wd or smc-ultra, I get an unresolved external of
"eth_copy_and_sum".  This symbol does show up in an nm of vmlinux
and is present in the net/ethernet/eth.c source file.  The kernel
links fine if I include the desired driver in the kernel itself
so it's a problem linking the driver module with the kernel symbols.
This is a problem since I have several systems with WD8003's and
a few with NE2000's.  Hate having to compile separate builds for
each and modules has been an ideal solution.

	I'm assuming that the change was either for the alpha development
or was for some optimization.

	1) Why am I getting an unresolved external even though
eth_copy_and_sum does appears in an nm listing of the kernel?

	2) What was the purpose of the changes?

	3) How do I fix it???!!!

	4) Can that change be safely backed out pending a permanent fix?

	5) I presume there is some method which determines which symbols
are globally visible and which are not (no I don't mean in-line or
static, this appears to be neither).  What determines which symbols are
visible and can be called by loadable modules?

	Obviously (from earlier comments) I'm on 386 architecture.
I'm currently running gcc 2.7.0 on one system for doing elf builds and
gcc 2.5.8 on another system for old style binaries.  I compile and test
first on the elf system.

	Maybe I missed something and I'm doing something wrong but I'm
pretty well baffled as to what it is at this point.

	Regards,
	Mike
-- 
 Michael H. Warfield    |  (770) 985-6132   |  mhw@WittsEnd.com
  (The Mad Wizard)      |  (770) 925-8248   |  http://www.wittsend.com/mhw/
  NIC whois:  MHW9      |  An optimist believes we live in the best of all
 PGP Key: 0xDF1DD471    |  possible worlds.  A pessimist is sure of it!

home help back first fref pref prev next nref lref last post