Skip to content
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

Error passing argument 3 of ‘glShaderSource’ from incompatible pointer type #126

Open
rubin55 opened this issue Jun 7, 2024 · 1 comment

Comments

@rubin55
Copy link

rubin55 commented Jun 7, 2024

I'm compiling on Arch Linux, using gcc 14.1.1. I'm getting the following error:

In file included from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/miscutil/miscutil.h:22,
                 from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/miscutil/miscutil.cpp:15:
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3025:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand8(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3025 |         inline void DebugFetchOperand8(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3029:21: warning: inline function ‘void i486DXCommon::DebugPeekOperand8(unsigned int&, const Instruction&, const MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3029 |         inline void DebugPeekOperand8(unsigned int &operand,const Instruction &inst,const MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3032:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand16(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3032 |         inline void DebugFetchOperand16(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3035:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3035 |         inline void DebugFetchOperand32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3039:29: warning: inline function ‘unsigned int i486DXCommon::DebugFetchOperand16or32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3039 |         inline unsigned int DebugFetchOperand16or32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                             ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3055:21: warning: inline function ‘void i486DXCommon::DebugFetchImm8(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3055 |         inline void DebugFetchImm8(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3058:21: warning: inline function ‘void i486DXCommon::DebugFetchImm16(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3058 |         inline void DebugFetchImm16(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3061:21: warning: inline function ‘void i486DXCommon::DebugFetchImm32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3061 |         inline void DebugFetchImm32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3065:29: warning: inline function ‘unsigned int i486DXCommon::DebugFetchImm16or32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3065 |         inline unsigned int DebugFetchImm16or32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                             ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglslutil.c: In function ‘YsGLSLCompileAndLinkVertexAndFragmentShader’:
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglslutil.c:122:41: error: passing argument 3 of ‘glShaderSource’ from incompatible pointer type [-Wincompatible-pointer-types]
  122 |         glShaderSource(vertexShaderId,1,&vertexShaderProgramLinear,NULL);
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                         |
      |                                         char **
In file included from /usr/include/GL/gl.h:2050,
                 from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglheader.h:92,
                 from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglslutil.h:34,
                 from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglslutil.c:33:
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/imported/include/GL/glext.h:6663:88: note: expected ‘const GLchar * const*’ {aka ‘const char * const*’} but argument is of type ‘char **’
 6663 | GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
      |                                                                   ~~~~~~~~~~~~~~~~~~~~~^~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/ysgl/src/ysglslutil.c:123:43: error: passing argument 3 of ‘glShaderSource’ from incompatible pointer type [-Wincompatible-pointer-types]
  123 |         glShaderSource(fragmentShaderId,1,&fragmentShaderProgramLinear,NULL);
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                           |
      |                                           char **
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/gui/src/public/src/imported/include/GL/glext.h:6663:88: note: expected ‘const GLchar * const*’ {aka ‘const char * const*’} but argument is of type ‘char **’
 6663 | GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
      |                                                                   ~~~~~~~~~~~~~~~~~~~~~^~~~~~
make[2]: *** [public/src/ysgl/src/CMakeFiles/ysgl.dir/build.make:742: public/src/ysgl/src/CMakeFiles/ysgl.dir/ysglslutil.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/towns/townsparam/townsparam.h:11,
                 from /tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/towns/townsparam/townsparam.cpp:1:
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3025:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand8(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3025 |         inline void DebugFetchOperand8(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3029:21: warning: inline function ‘void i486DXCommon::DebugPeekOperand8(unsigned int&, const Instruction&, const MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3029 |         inline void DebugPeekOperand8(unsigned int &operand,const Instruction &inst,const MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3032:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand16(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3032 |         inline void DebugFetchOperand16(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3035:21: warning: inline function ‘void i486DXCommon::DebugFetchOperand32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3035 |         inline void DebugFetchOperand32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3039:29: warning: inline function ‘unsigned int i486DXCommon::DebugFetchOperand16or32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3039 |         inline unsigned int DebugFetchOperand16or32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                             ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3055:21: warning: inline function ‘void i486DXCommon::DebugFetchImm8(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3055 |         inline void DebugFetchImm8(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3058:21: warning: inline function ‘void i486DXCommon::DebugFetchImm16(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3058 |         inline void DebugFetchImm16(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3061:21: warning: inline function ‘void i486DXCommon::DebugFetchImm32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3061 |         inline void DebugFetchImm32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                     ^~~~~~~~~~~~~~~
/tmp/makepkg.builddir/townsemu-git/src/TOWNSEMU/src/cpu/./i486.h:3065:29: warning: inline function ‘unsigned int i486DXCommon::DebugFetchImm16or32(Instruction&, MemoryAccess::ConstPointer&, const SegmentRegister&, unsigned int, const Memory&) const’ used but never defined
 3065 |         inline unsigned int DebugFetchImm16or32(Instruction &inst,MemoryAccess::ConstPointer &ptr,const SegmentRegister &seg,unsigned int offset,const Memory &mem) const;
      |                             ^~~~~~~~~~~~~~~~~~~
[ 68%] Linking CXX static library libtownsparam.a
make[1]: *** [CMakeFiles/Makefile2:2781: public/src/ysgl/src/CMakeFiles/ysgl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 68%] Linking CXX static library libmiscutil.a
[ 68%] Built target townsparam
[ 68%] Built target miscutil
make: *** [Makefile:101: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
@rubin55
Copy link
Author

rubin55 commented Aug 1, 2024

@captainys is there something that can be done about this? I just retried today and I am still running into this :-(.

Fwiw, You can work around it by avoiding GCC 14.x usage:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++ 

Just before the cmake steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant