On Wed, Jun 22, 2016 at 11:23:59AM -0700, Joe Perches wrote: > The output changes now do not include line #, but do include the > function offset.
I've been using a technique like this in some code with good results: struct source_location { const char *file; const char *func; const char *format; uint16_t line; }; #define _LOCATION(format) ({static const source_location __location__ = {\ __FILE__,__PRETTY_FUNCTION__,format,__LINE__};\ &__location__;}) void _mlx5_core_err(const struct source_location *loc,struct mlx5_core_dev *dev, ...); #define mlx5_core_err(dev,format,...) _mlx_core_err(_LOCATION(format),dev,__VA_ARGS__) The call site .text overhead is the about same as what you have, but this still retains the function and line number information in .rodata. Jason