-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tk build fails (Perl 5.36 sp536 20230420) #98
Comments
Thanks for the report. I can reproduce the errors. FWIW I get the log below when running The I'm also not sure what is causing the @eserte - fyi
|
I'm using strawbewrry-perl-5.36.1.1 dev release.
There's nothing syntactically wrong with line 182, and I can't reproduce the error in a C program, or an Inline::C script .... or in any other environment for that matter. Apparently "ControlMask" is something special, and tonight I'll replace it with ControlMask_pTK in the various files in the Tk distro that include the symbol (all of which are inside the pTK folder). Any insights into why this problem arises, and how better to handle it ? Cheers, |
I get the same. I have no insights into the whys and wherefores, though. |
Renaming "ControlMask" to something else (I chose "ControlMask_pTK") worked in that it enabled the After running I suspect that the patch to win32/vmem.h is only a part of the solution to the alignment issue it was supposed to solve. Cheers, |
Does it build with Perl 5.37.x? If so then the same search strategy used for PDL might be of use. |
A good idea and worth a try, but no luck :-( Cheers, |
Ah well. Does it also fail for 5.37.x built with gcc-83 from SP5.32? I think you have builds using that, or at least have done in the past? |
Tk 804.036 builds, tests and installs just fine for that perl. This has the hallmarks of being an alignment issue. I might see if I can knuckle down and fix the relevant Tk code .... or I might not. It's a pity we don't have 32-bit SP-5.37.11 built using gcc-13. Cheers, |
Thanks Rob. There is a 32-bit release of Winlibs gcc-13 if you're tempted. It gets messy if Tk also needs DLLs for libpng etc, although these could perhaps be recycled from a 32-bit SP5.32 if the mis-alignment is only in the Tk code. Or it can just be reported upstream. |
I already had a 32-bit winlibs gcc-13 build of of perl-5.37.11. When I build Tk-804.036 on that perl (using 32-bit SP5.32.1 libs), the build goes well with all tests passing. Apart from the "ControlMask" issue this is again consistent with my expectations of the x64 alignment issue. The "ControlMask" problem arises when the problematic
I will look at the possibility of defining ControlMask after processthreadsapi.h has been included, as that seems to be BTW, if anyone wonders why my copy'n'pastes sometimes contain "-fdiagnostics-color=never" it's because I generally have a number of cmd.exe shells on the go, each with a different color scheme - a color scheme that, without that flag, gets permanently clobbered (to white on black) if a warning or error occurs. Cheers, |
See also: eserte/perl-tk#87 |
Thanks @hakonhagland and @sisyphus The memory alignment issues should probably be raised on the Tk issue tracker so it gets more eyes familiar with that code. It's not a blocker for Strawberry Perl but one does wonder what other modules have such alignment issues. Still, such modules will need to be fixed at some point so I'm not considering them a blocker for Strawberry Perl 5.36. |
Thanks @hakonhagland. Cheers, |
Perhaps a red herring, but there are issues with Tk has a few uses of |
I added a comment to #103, verifying which of the two changes resolved the issue or both in the case of MCE. It turns out that passing a pointer to |
See also eserte/perl-tk#92 (comment) I think this issue can be closed now. As with #122, the issue is with Tk, there is a fix available, and we don't distribute Tk with Strawberry (although maybe one day). I'll do so in a few days, or perhaps later when I do another sweep across the issues. |
Are there any yet-to-be-resolved issues regarding other modules that build fine on x64 5.32.1, but not on x64 5.38.0 ? I hadn't considered the possibility that such anomalies might be explained by the fact that the x64 5.32.1 environment avoids memory addresses that overflow 32-bits, in places where the x64 5.38.0 environment embraces them. Are there any other modules that might be suffering from the same ailment ? Cheers, |
That was the issue with t1lib. Patching I would have involved too many changes for it to be worthwhile given its upstream status. I would speculate that a similar issue affects OpenGL. See #102 and Perl-GPU/pogl#3 There is also PDL::Graphics::PLplot in #26 but that seems not to be Strawberry specific #26 (comment) |
Closing issue. If there are build problems with other modules then they can be reported as new issues. |
I'm happy to see this progress! Great work!
I have tried to run my Perl applications under this version. One module which fails to install is Tk. The build log has 3200 lines, I'll provide the whole of it if there's a chance that it contains useful informations.
The tests that fail are in the PNG subdirectory:
After installing anyway, programs using Tk crash like this:
The calling line (O3D/UI.pm line 71) is as simple as
my $menubar = $top->Menu();
For me personally, that issue is not urgent: I am currently rewriting that GUI to Prima, and Prima works fine under 5.36.
The text was updated successfully, but these errors were encountered: