https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208464

--- Comment #1 from Kristoffer Eriksson <[email protected]> ---
Created attachment 169112
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=169112&action=edit
Patch for dependencies between svr4.ko & streams.ko due to symbols
svr4_delete_socket & svr4_stream_get

This attachment fixes the bug with both svr4.ko & streams.ko complaining about
undefined symbol svr4_delete_socket. The symbol is present in svr4.ko, but was
not found. Additionally fixes the same problem in reverse for the symbol
svr4_stream_get, which was revealed after the first fix. These created a
two-way dependency between the two modules, preventing both of them from being
loaded.

Moved EXPORT_SYMS=svr4_delete_socket from modules/streams/Makefile to
modules/svr4/Makefile. The function had already moved from streams.ko to
svr4.ko in revision 160558 in 2006, but EXPORT_SYMS was not updated.

Added MODULE_DEPEND(streams, svr4elf) to dev/streams/streams.c to reflect this,
and a matching MODULE_VERSION to compat/svr4/svr4_sysvec.c. Otherwise
streams.ko still didn't find svr4_delete_socket in svr4.ko.

Moved the function svr4_stream_get() from dev/streams/streams.c to
compat/svr4/svr4_socket.c like svr4_delete_socket() was already moved in 2006.
There were no callers in streams.ko, only in svr4.ko. Included svr4_stropts.h
to declare it.

Then removed svr4_stream_get too from EXPORT_SYMS in modules/streams/Makefile
for streams.ko. Removed MODULE_DEPEND(svr4elf, streams) from
compat/svr4/svr4_sysvec.c, since no calls from svr4.ko to streams.ko remained
now. - This dissolves the two-way dependency, leaving only streams.ko depending
on svr4.ko to call svr4_delete_socket().

(Alternatively svr4_delete_socket() might perhaps have been moved back to
streams.ko, or perhaps even all of svr4_sockets.c could have moved there, or
both modules could just as well have been joined into a single module, like it
was originally in NetBSD.)

Removed EXPORT_SYMS=svr4_str_initialized, which doesn't exist currently.

The source I patched came from 10.3-RELEASE.

After this I can successfully kldload these modules again.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to