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

PDL::Graphics::TriD dependency fails to compile #246

Open
forskning opened this Issue Aug 3, 2018 · 4 comments

Comments

Projects
None yet
3 participants
@forskning

forskning commented Aug 3, 2018

Slackware 14.0 (32-bit)
Perl 5.16.1
PDL-2.019
OpenGL-0.70

The PDL-2.019/DEPENDENCIES' file lists for PDL::Graphics::TriD, the OpenGL module.

OpenGL-0.70/pogl_gl_Vert_Multi.xs includes these 2 lines.

#define FIXME /* !!! Need to refactor with glGetBufferPointerv_p */

#define FIXME /* !!! Need to refactor with glGetBufferPointervARB_p */

https://mirrors.slackware.com/slackware/slackware-14.0/slackware/x/
freeglut-2.8.0-i486-1.txz, glew-1.5.7-i486-1.txz

One can examine the Linux distro's contents of /usr/include/GL by downloading and extracting the above .xz files.

I noticed I get a 'GL_BUFFER_SIZE' undeclared error when manually compiling OpenGL-0.70.

#define GL_BUFFER_SIZE 0x8764

Adding the preceding line to pogl_gl_Vert_Multi.xs outputs two warnings and the compile completes.

warning: assignment makes pointer from integer without a cast [enabled by default]

warning: initialization makes pointer from integer without a cast [enabled by default]

The unmodified module and /usr/include/GL both contain 'GL_BUFFER_SIZE' defines.

bash-4.2# grep -r 'GL_BUFFER_SIZE' OpenGL-0.70/include
OpenGL-0.70/include/GL/glext.h:#define GL_BUFFER_SIZE 0x8764
OpenGL-0.70/include/GL/glext.h:#define GL_BUFFER_SIZE_ARB 0x8764
bash-4.2#

Being uninformed of the PDL user base for this module I would suggest that perhaps compilation of PDL::Graphics::TriD should be disabled by default.

@mohawk2

This comment has been minimized.

Member

mohawk2 commented Aug 6, 2018

perhaps compilation of PDL::Graphics::TriD should be disabled by default.

Seems sensible to me - @devel-chm what do you think?

Also, @forskning what do you think of making a PR that executes the changes you made above?

@forskning

This comment has been minimized.

forskning commented Aug 7, 2018

http://nurmi-labs.blogspot.com/2018/05/pdl.html

Running gcc-4.7.1, a couple of 'sed' commands here in order to deal with a undefined symbols, _gfortran_st_open and _gfortran_st_write, respectively for Minuit.so and Slatec.so.

@mohawk2 I'd enquire of some other coders prior to debating on the mentioned default disabling option.

@devel-chm

This comment has been minimized.

Member

devel-chm commented Aug 7, 2018

By default, the TriD module is built only if the OpenGL module is installed or it is specifically requested. In this case, I think the problem is the current default for AUTOMATED_TESTING is to build which is problematic given the bitrot in OpenGL. I suggest making the check for OpenGL rather than forcing a build attempt. See line around 119 in Makefile.PL.

@forskning

This comment has been minimized.

forskning commented Aug 7, 2018

I try to write on the log in a pædagogical manner.

Technically using a 'sed' command/manually editing the perldl.conf file to change 'WITH_3D => undef,' to read 'WITH_3D => 0,' was unnecessary.

Slackware 14.0 (32-bit)
Freeglut 2.8.0
Perl 5.16.1

OpenGL-0.6704 compiles and passes all tests.

@devel-chm Considering this comment's contents I wouldn' t yet think of modifying Makefile.PL.

I'll send the shell output as a text file attached to an email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment