Hi Bruce, On Fri, Jan 20, 2023 at 7:22 PM Bruce Richardson <bruce.richard...@intel.com> wrote: > > There is a general desire to reduce the size and scope of EAL. To this > end, this patchset makes a (very) small step in that direction by taking > the logging functionality out of EAL and putting it into its own library > that can be built and maintained separately. > > As with the first RFC for this, the main obstacle is the "fnmatch" > function which is needed by both EAL and the new log function when > building on windows. While the function cannot stay in EAL - or we would > have a circular dependency, moving it to a new library or just putting > it in the log library have the disadvantages that it then "leaks" into > the public namespace without an rte_prefix, which could cause issues. > Since only a single function is involved, subsequent versions take a > different approach to v1, and just moves the offending function to be a > static function in a header file. This allows use by multiple libs > without conflicting names or making it public. > > The other complication, as explained in v1 RFC was that of multiple > implementations for different OS's. This is solved here in the same > way as v1, by including the OS in the name and having meson pick the > correct file for each build. Since only one file is involved, there > seemed little need for replicating EAL's separate subdirectories > per-OS.
There is another complication. The ABI check is not handling properly the case where symbols are moved to the new log library (even though the dependency to librte_log is explicit in librte_eal elf). For now, I don't have a good way to handle this. A workaround to pass the check is to suppress those symbols wrt the eal dump: [suppress_function] symbol_name_regexp = rte_log [suppress_function] symbol_name = rte_openlog_stream [suppress_function] symbol_name = rte_vlog But this is not a good solution because we would be losing checks on them for the rest of the v23 ABI life. -- David Marchand