My guess would be that the wrong mix of libraries have been linked.
AFAICT, Rfc.xs itself does not directly reference memsetU16, it uses memsetU instead, which presumably is mapped to memsetU16 (the UTF-16 variant — also see an old proposal) somewhere in one of the SAP libs when compiled with Unicode support. The correct library which provides the implementation of the symbol, however, doesn't seem to have been specified to the linker... (which - with memsetU16 being an indirect dependency - wouldn't necessarily produce an error at build-time, but only at run-time...)
I can't be more specific (as I don't have the SAP libs), but the following tools might help to narrow down on where the problem lies: ldd (list shared lib dependencies), and nm or objdump (list symbols a lib provides/references). For example, try
$ ldd ./blib/arch/auto/SAP/Rfc/Rfc.so
to find out which (SAP-)libs the module's XS component has in fact been linked against (and what they map to at load time). Then something like
$ objdump -tT /path/to/sap-libs/libsapu16.so | grep memsetU $ objdump -ftT /path/to/sap-libs/* | grep 'file format\|memsetU'
to hunt for which libs implement (type ".text") or reference (type "*UND*") the respective memsetU* function(s) ... — You get the idea. (As I said, my guess would be that the lib which does provide memsetU16 will not show up in the ldd output.)
With that info you'll likely have a better chance of figuring out what went wrong with perl Makefile.PL, and how to fix it... Good luck!
In reply to Re: SAP::Rfc module with unicode
by almut
in thread SAP::Rfc module with unicode
by regexes
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |