I see that dpdk started to support abi versions in following ways:

DPDK_2.0 {
        global:

        rte_jobstats_context_finish;
        rte_jobstats_context_init;
.....
        rte_jobstats_set_update_period_function;
        rte_jobstats_start;

        local: *;
};

DPDK_16.04 {
        global:

        rte_jobstats_abort;

} DPDK_2.0;

./dpdk/lib/librte_jobstats/Makefile:EXPORT_MAP := rte_jobstats_version.map
./dpdk/mk/rte.lib.mk:CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)

I.e. they describe in .map file which functions to expert and what ABI/API
level they are.
We can use something the same. But I'm not big fun of manually writing such
files. And maybe maintain different ABI versions in one source is not a
good idea. But we can try to generate .map and filter out all not "odp_"
functions, then specify this .map to linked.

Maxim.

Reply via email to