Attached patch adds missing NCI test symbols.
This get tests t/pmc/nci.t #8, #51 and #52 to pass again.
Ron
This patch adds all missing export symbols to libnci_test.dll that are
needed by t/pmc/nci.t.
t\pmc\nci....ok
All tests successful.
Files=1, Tests=56, 18 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
Ron
> This patch adds all missing export symbols to libnci_test.dll that are
> needed by t/pmc/nci.t.
Why not generate the .def file instead of hoping that people add the
correct symbols? Here's a patch that seems to do the trick for me
(though not running Windows, I can't really test if the defines are all
correct).
-- c
> Why not generate the .def file instead of hoping that people add the
> correct symbols? Here's a patch that seems to do the trick for me
> (though not running Windows, I can't really test if the defines are all
> correct).
Actually it doesn't, because of a typo in the makefile source. Ignore
that one in favor of this one.
-- c
I haven't checked the details, but I think this will not work, as it
seems to generates a list of all symbols beginning with nci_, but
'int_cb_D4' is used, too.
Previously, I have proposed adding 'PARROT_API' to declarations, and
grep for them, or expand them to '__declspec(dllexport)' on Windows.
#31649: [TODO] Win32 - Automatically Export Symbols
http://rt.perl.org/rt3/Ticket/Display.html?id=31649
Another idea would be to create a "symbol list file" for each library,
which contains only the symbol names, from which the .def file would
be derived (maybe another platform has similar needs?).
Ron
> This patch adds all missing export symbols to libnci_test.dll that are
> needed by t/pmc/nci.t.
Thanks, applied.
leo
> I haven't checked the details, but I think this will not work, as it
> seems to generates a list of all symbols beginning with nci_, but
> 'int_cb_D4' is used, too.
nci_test.c is used only for testing. So there is no harm in renaming the
symbols as needed.
> Previously, I have proposed adding 'PARROT_API' to declarations, and
> grep for them, or expand them to '__declspec(dllexport)' on Windows.
This might work for 'parrot.dll', but not for libnci_test.dll, as it
isn't a part of the interface on Parrot.
> #31649: [TODO] Win32 - Automatically Export Symbols
> http://rt.perl.org/rt3/Ticket/Display.html?id=31649
CU, Bernhard
--
**************************************************
Dipl.-Physiker Bernhard Schmalhofer
Senior Developer
Biomax Informatics AG
Lochhamer Str. 11
82152 Martinsried, Germany
Tel: +49 89 895574-839
Fax: +49 89 895574-825
eMail: Bernhard.S...@biomax.com
Website: www.biomax.com
**************************************************
>> Previously, I have proposed adding 'PARROT_API' to declarations, and
>> grep for them, or expand them to '__declspec(dllexport)' on Windows.
> This might work for 'parrot.dll', but not for libnci_test.dll, as it
> isn't a part of the interface on Parrot.
How about this: We separate things into 2 steps.
1) Create a .sym file for each relevant compilation unit.
2) Join the .sym files for all to-be-linked objects and create the
.def file. (on Windows)
Now things boil down to creating the .sym files. These might be
created by grepping the source for C<nci_>, C<Parrot_>, etc, or
by whatever script created the compilation unit.
Disclaimer: I might have shamelessly stolen one idea or the other from
the perl source. ;-)
Ron
t\pmc\nci....ok
All tests successful.
Files=1, Tests=56, 20 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
The ticket for the more generic solution is