I'm inclined to add "-L$(PERL_INC) -lperl", with "-lperl" determined from perl -V:libperl, with a special case for cygwin to change "cygperl5_22.dll" into -lperl.
If the "-no-undefined" flag causes problems, anywhere else, removing it would be indicated, as it's only needed for Windows. This likely wouldn't be necessary though. > I wonder if libtool has some magic switch that will result in it doing > TRT. Some special mode= mode, perhaps, or some switch to it? Can > libtool people help us out here? > > Thanks. You could ask on the libtool list if you wanted, but the location of the library with the missing symbols in it must be given somewhere. I wondered how the ExtUtils::MakeMaker makefiles handled this problem. I looked at the source code of the ExtUtils::MM_Win32 module (that's the module for Windows; other OS's have their makefiles output differently), but I didn't see anything that could help. A complication is that we are not running the linker directly, but going through libtool. In ExtUtils::MM_Win32 the static library is passed directly as an argument to the linker, but that doesn't work for libtool. I'm not sure exactly of the reasons, but it gives a warning looking like *** Warning: Linking the shared library XSParagraph.la against the *** static library /usr/lib/libcle.a is not portable! (That library was chosen randomly.) The libtool manual does document that library dependencies for a library should be given with "-l", so doing it that way should be fine.