Hi Andreas, On Wed, 2022-08-10 at 11:27 +0200, Andreas Schwab via Elfutils-devel wrote: > This does not work yet. The RISC-V attribute tags use the same > convention as the GNU attributes: odd numbered tags take a string > value, > even numbered ones an integer value, but print_attributes assumes the > ARM numbering scheme by default for non-GNU attributes.
Yeah, I see this comment in print_attributes: /* GNU style tags have either a uleb128 value, when lowest bit is not set, or a string when the lowest bit is set. "compatibility" (32) is special. It has both a string and a uleb128 value. For non-gnu we assume 6 till 31 only take ints. XXX see arm backend, do we need a separate hook? */ Maybe we need a flag in the backend to tell whether attributes follow the "gnu_vendor" convention? So that could be checked at: bool gnu_vendor = (q - name == sizeof "gnu" && !memcmp (name, "gnu", sizeof "gnu")); gnu_vendor |= ebl->has_gnu_attributes; Or something similar? Cheers, Mark