vlog: Make the vlog module catalog program-specific.
authorBen Pfaff <blp@nicira.com>
Fri, 16 Jul 2010 17:53:14 +0000 (10:53 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 21 Jul 2010 22:47:09 +0000 (15:47 -0700)
commit480ce8abca4ae262a4148fe757aebe3e0ddba6f6
treecea1143781be3a75aab5c02c516a22fc7ca3d546
parent5136ce492c414f377f7be9ae32b259abb9f76580
vlog: Make the vlog module catalog program-specific.

Until now, the collection of vlog modules supported by a given OVS program
was not specific to that program.  That means that, for example, even
though ovs-dpctl does not have anything to do with jsonrpc, it still has
a vlog module for it.  This is confusing, at best.

This commit fixes the problem on some systems, in particular on ones that
use GCC and the GNU linker.  It uses the feature of the GNU linker
described in its manual as:

    If an orphaned section's name is representable as a C identifier then
    the linker will automatically see PROVIDE two symbols: __start_SECNAME
    and __end_SECNAME, where SECNAME is the name of the section.  These
    indicate the start address and end address of the orphaned section
    respectively.

Systems that don't support these features retain the earlier behavior.

This commit also fixes the annoyance that modifying lib/vlog-modules.def
causes all sources files that #include "vlog.h" to recompile.
16 files changed:
build-aux/check-vlog-modules [new file with mode: 0755]
configure.ac
extras/ezio/ovs-switchui.c
lib/automake.mk
lib/stream.c
lib/stream.h
lib/vlog.c
lib/vlog.h
m4/openvswitch.m4
tests/test-lockfile.c
tests/test-reconnect.c
tests/test-stp.c
tests/test-vconn.c
utilities/nlmon.c
utilities/ovs-vsctl.c
vswitchd/ovs-brcompatd.c