Ticket #805 (closed bug: fixed)
Undefined reference error upon building on Windows
Reported by: | MoC | Owned by: | fperrad |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | configure | Version: | trunk |
Severity: | medium | Keywords: | |
Cc: | Language: | ||
Patch status: | Platform: | win32 |
Description
When I try to build Parrot on Windows XP with MinGW GCC 4.4 + latest binutils, etc. and Perl 5.10, mingw32-make exits with undefined reference errors as stated in the attached error log.
After running Configure.pl include/parrot/config.h includes the following directives:
#if defined(__cplusplus) #[...] #define PARROT_DYNEXT_EXPORT extern "C" __attribute__ ((visibility("default"))) #else #[...] #define PARROT_DYNEXT_EXPORT __attribute__ ((visibility("default"))) #endif
If I replace __attribute__ ((visibility("default"))) with __declspec(dllexport) it will compile just fine. mingw32-make smoke gives the following results: http://smolder.plusthree.com/app/public_projects/report_details/24420. ( http://gcc.gnu.org/wiki/Visibility provides more information about this issue, though I'm still confused as it looks like those two statements should be equivalent?)
Since I'm almost a complete Parrot newbie I can't exactly tell if the 3 failures are related to my change as I don't know (yet) if the tests make use of any routines defined within dynlexpad.c. If I should provide more information please let me know, as said before I don't really comprehend Parrots structure yet and don't know wether there is a way to get more sufficient logs.