opr_containerof() is part of the rbtree implementation in NTIRPC.  It's 
used by any user of ntirpc's rbtree.  It cannot be removed, but can be 
replaced with a functionally equivalent implementation.  It's only used 
in Ganesha as part of the rbtree.
I'd prefer not to unify the various container_of implementations. 
They're part of different APIs.  Making them all work with all 
compilers, however, is a good goal.
Daniel
On 11/14/21 5:02 PM, Bjorn Leffler via Devel wrote:
 I have compiled ntirpc, NFS Ganesha and all dependencies with clang.
 When I try to run the code, I get a SIGILL signal triggered from the 
 "opr_containerof" macro in ntirpc/ntirpc/misc/opr.h.
 
 I'd like to fix this. My preferred option would be to unify the ntirpc 
 "opr_containerof" and Ganesha "container_of" macros into a single 
 "container_of" macro. A macro that's defined once (in ntirpc) and that 
 compiles and runs with both gcc and clang.
 
 I've got a few questions around all this. First of all, does this sound 
 like a good idea? I could simply update the opr_containerof macro, so 
 that it also works with clang. What does OPR mean? Is the 
 "opr_containerof" macro used anywhere else but Ganesha?
 
 Thanks,
 Bjorn
 
 
 _______________________________________________
 Devel mailing list -- devel(a)lists.nfs-ganesha.org
 To unsubscribe send an email to devel-leave(a)lists.nfs-ganesha.org