I'll admit to not having thought this through very far, and I know naff all about XS, but...
Couldn't you declare the share routine as a perl sub conditionally upon the basis of version. > 5.7 use the new prototype, < 5.7 omit the prototype and test&cast the parameter using ref then call the XS code that does the real work?
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
If I understand your problem, I can solve it! Of course, the same can be said for you.