Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
PDL::Graphics::TriD dependency fails to compile #246
Slackware 14.0 (32-bit)
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 */
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
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.
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.
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.
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)
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.