Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

librumpnet* are incomplete (librumpnet_altq, for one, is missing)



I think I found a can of worms with a black hole in the middle.....

The following additional libraries get me closer, but now altq_detach is
missing:

	-lrumpnet_bridge -lrumpnet_agr -lrumpnet_pppoe -lrumpnet_vlan -lrumpnet_netipsec -lrumpnet_net

/Users/woods/build/woods/very.local/trunk-amd64-destdir/usr/lib/librumpnet.a(net_stub.o)
                              /Users/woods/build/woods/very.local/trunk-amd64-destdir/usr/lib/librumpnet_net.a(if.o) (rumpns_altq_detach)

diff --git a/tests/net/bpfjit/Makefile b/tests/net/bpfjit/Makefile
index bb995e702487..2d5e89484195 100644
--- a/tests/net/bpfjit/Makefile
+++ b/tests/net/bpfjit/Makefile
@@ -13,7 +13,12 @@ TESTS_C+=	t_mbuf
 PAXCTL_FLAGS=	+m

 LDADD+=		-lrumpnet_bpfjit -lrumpkern_sljit
-LDADD+=		-lrumpdev_bpf -lrumpnet_net -lrumpnet
+LDADD+=		-lrumpdev_bpf
+LDADD+=		-lrumpnet_net
+LDADD+=		-lrumpnet_bridge -lrumpnet_agr -lrumpnet_pppoe -lrumpnet_vlan
+#LDADD+=		-lrumpnet_altq
+LDADD+=		-lrumpnet_netipsec -lrumpdev_opencrypto
+LDADD+=		-lrumpnet_net -lrumpnet
 LDADD+=		${LIBRUMPBASE}

 .include <bsd.test.mk>


Since there is not yet any librumpnet_altq I suspect this cannot yet be
solved in the near term without use of -fcommon.  But of course
resorting to stubs without proper full control over exactly which and
when they are substituted leaves rump seemingly crippled.  The situation
with the shared libraries is potentially even worse as most don not have
runtime dependencies on their necessary components and so stubs are
still used, but without any visibility as to when and where.  E.g.:

	/usr/lib/librumpnet_net.so:
	        -lc.12 => /usr/lib/libc.so.12

and even worse:

	/usr/lib/librumpnet_netipsec.so:
	        -lc.12 => /usr/lib/libc.so.12

I think it is/was a folly to try to separate out all the different
network components into their own librumpnet_* libraries.

Perhaps it cannot even be done -- they are all intertwined in the
kernel, and so shall they be in rump.  net_stub gets pulled in when you
least expect it, preventing other necessary components from being
loaded, and gives a false sense of reducing the overall size of the
necessary code.

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgpROxcY92Mjc.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index