2001-07-19 21:54:27

by Peter J. Braam

[permalink] [raw]
Subject: modules/ksyms/filenames

I'm trying to export a symbol (journal_begin/end) from
fs/reiserfs/journal.c. To export the symbols I added to the Makefile:
export-objs := journal.o

There is also a file fs/jbd/journal.c which exports symbols.

It seems that the two journal.ver files in include/modules/*.ver get
clobbered.

Short of renaming files, is there a good solution for this?

Thanks!


2001-07-20 01:03:12

by Keith Owens

[permalink] [raw]
Subject: Re: modules/ksyms/filenames

On Thu, 19 Jul 2001 15:54:00 -0600,
"Peter J. Braam" <[email protected]> wrote:
>I'm trying to export a symbol (journal_begin/end) from
>fs/reiserfs/journal.c. To export the symbols I added to the Makefile:
>export-objs := journal.o
>
>There is also a file fs/jbd/journal.c which exports symbols.

It is a "feature" of the module symbol versioning that all objects
which export symbols must have globally unique basenames. Stupid, I
know, and it will disappear in 2.5. In the meantime, create
fs/reiserfs/reiserfs_ksyms.c and export the symbols in there. See
kernel/ksyms.c for an example.

2001-07-20 10:39:14

by Stephen C. Tweedie

[permalink] [raw]
Subject: Re: modules/ksyms/filenames

Hi,

On Thu, Jul 19, 2001 at 03:54:00PM -0600, Peter J. Braam wrote:
> I'm trying to export a symbol (journal_begin/end) from
> fs/reiserfs/journal.c. To export the symbols I added to the Makefile:
> export-objs := journal.o
>
> There is also a file fs/jbd/journal.c which exports symbols.
>
> It seems that the two journal.ver files in include/modules/*.ver get
> clobbered.
>
> Short of renaming files, is there a good solution for this?

Yes, you can add the EXPORT_SYMBOL to a different source file --- you
don't have to do the export from the same file which defines the
symbol. linux/kernel/ksyms.c contains exports from all over the rest
of the kernel, for example. If you pick a reiserfs source file which
already exports symbols and add your exports there, I _think_ it
should work OK.

Cheers,
Stephen