Opened 3 weeks ago

Last modified 2 weeks ago

#15052 new defect

can not compile scummvm source gcc version: 14.0.1 20240326 (experimental)

Reported by: rubyFeedback Owned by:
Priority: low Component: Port: Mac OS X
Version: Keywords:
Cc: Game:

Description

RANLIB engines/glk/libglk.a
AR engines/gnap/libgnap.a
RANLIB engines/gnap/libgnap.a
AR engines/gob/libgob.a
RANLIB engines/gob/libgob.a
AR engines/griffon/libgriffon.a
RANLIB engines/griffon/libgriffon.a
AR engines/grim/libgrim.a
RANLIB engines/grim/libgrim.a
AR engines/groovie/libgroovie.a
RANLIB engines/groovie/libgroovie.a
AR engines/hadesch/libhadesch.a
RANLIB engines/hadesch/libhadesch.a
AR engines/hdb/libhdb.a
RANLIB engines/hdb/libhdb.a
AR engines/hopkins/libhopkins.a
RANLIB engines/hopkins/libhopkins.a
AR engines/hpl1/libhpl1.a
RANLIB engines/hpl1/libhpl1.a
AR engines/hugo/libhugo.a
RANLIB engines/hugo/libhugo.a
AR engines/hypno/libhypno.a
RANLIB engines/hypno/libhypno.a
C++ engines/icb/actor.o

In file included from ../graphics/opengl/context.h:25,

from ../common/system.h:34,
from ../engines/icb/debug_pc.h:30,
from ../engines/icb/p4_generic_pc.h:31,
from ../engines/icb/p4_generic.h:31,
from ../engines/icb/debug.h:30,
from ../engines/icb/string_vest.h:31,
from ../engines/icb/p4.h:32,
from ../engines/icb/global_objects.h:30,
from ../engines/icb/actor.cpp:27:

../common/singleton.h:44:21: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]

44 | Singleton<T>(const Singleton<T> &);
|

../common/singleton.h:44:21: note: remove the '< >'
../common/singleton.h:91:21: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]

91 | Singleton<T>() { }
|

../common/singleton.h:91:21: note: remove the '< >'
../common/singleton.h:92:17: warning: template-id not allowed for destructor in C++20 [-Wtemplate-id-cdtor]

92 | virtual ~Singleton<T>() { }
|

../common/singleton.h:92:17: note: remove the '< >'
In file included from ../engines/icb/debug.h:32:
../engines/icb/common/px_array.h: In member function 'const Type& ICB::rcActArray<Type>::operator[](uint32) const':
../engines/icb/common/px_array.h:105:66: error: assignment of member 'm_userPosition' in read-only object

105 | ((const rcActArray<Type> *)this)->m_userPosition = n + 1;
| ~

../engines/icb/common/px_array.h: In member function 'const Type ICB::rcIntArray<Type>::operator[](uint32) const':
../engines/icb/common/px_array.h:308:66: error: assignment of member 'm_userPosition' in read-only object

308 | ((const rcIntArray<Type> *)this)->m_userPosition = index + 1;
| ~

make: * engines/icb/actor.o Error 1

So I am using gcc git clone checkout from some days ago, and evidently scummvm may not have been tested with this - so I am just reporting it. Either way perhaps someone can have a look here, if this is solely related to C++ 20, as eventually that may have to be supported (with upcoming stable gcc releases perhaps).

I then tried to compile via gcc 10.5.0, as I noticed that I can compile more programs that way, using an older GCC. However had this led to another error:

e.fragment ../engines/playground3d/shaders/playground3d_cube.vertex ../engines/playground3d/shaders/playground3d_fade.fragment ../engines/playground3d/shaders/playground3d_fade.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Ambient_Color.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Bump2D_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Bump2D_Light.vertex ../engines/hpl1/engine/impl/shaders/hpl1_BumpColorSpec_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_BumpColorSpec_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Bump_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Bump_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Bump_Light_Spot_pass2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_BumpSpec2D_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_BumpSpec2D_Light.vertex ../engines/hpl1/engine/impl/shaders/hpl1_BumpSpec_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_BumpSpec_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_BumpSpec_Light_Spot_pass2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Color.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_ColorMul.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Color.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_EnvMap_Reflect.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_EnvMap_Reflect.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light_Spot_pass1.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light_Spot_pass2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light_Spot.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Diffuse_Light.vertex ../engines/hpl1/engine/impl/shaders/hpl1_DiffuseSpec_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_DiffuseSpec_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_DiffuseSpec_Light_Spot_pass2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_DiffuseSpec_Light_Spot.vertex ../engines/hpl1/engine/impl/shaders/hpl1_DiffuseSpec_Light.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Bump_Light.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_p1.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_p1.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_p2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_p2.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_Spot.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback01_Diffuse_Light_Spot_p2.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_Diffuse_Light_p1.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_Diffuse_Light_p1.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_Diffuse_Light_p2.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_DIffuse_Light_Spot_p2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_Diffuse_Light_Spot_p2.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_DIffuse_Light_Spot_p3.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fallback02_Diffuse_Light_Spot_p3.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Solid.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Solid.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Trans_Alpha.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Trans_Mod.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Trans_ModX2.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Fog_Trans.vertex ../engines/hpl1/engine/impl/shaders/hpl1_gamma_correction.fragment ../engines/hpl1/engine/impl/shaders/hpl1_gamma_correction.vertex ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Bloom.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Bloom.vertex ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Blur_2D.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Blur_Rect.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Blur.vertex ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_DoF.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_DoF.vertex ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Fallback01_Blur_2D.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Fallback01_Blur_Rect.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Motion.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Motion_staticloop.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Motion.vertex ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Offset.fragment ../engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Offset.vertex ../engines/hpl1/engine/impl/shaders/hpl1_refract.fragment ../engines/hpl1/engine/impl/shaders/hpl1_refract_special.fragment ../engines/hpl1/engine/impl/shaders/hpl1_refract.vertex ../engines/hpl1/engine/impl/shaders/hpl1_refract_water.fragment ../engines/hpl1/engine/impl/shaders/hpl1_refract_water.vertex ../engines/hpl1/engine/impl/shaders/hpl1_ShadowExtrude.fragment ../engines/hpl1/engine/impl/shaders/hpl1_ShadowExtrude.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Water_Diffuse.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Water_Diffuse.vertex ../engines/hpl1/engine/impl/shaders/hpl1_Water_Fog.fragment ../engines/hpl1/engine/impl/shaders/hpl1_Water_Fog.vertex ../engines/freescape/shaders/freescape_bitmap.fragment ../engines/freescape/shaders/freescape_bitmap.vertex ../engines/freescape/shaders/freescape_triangle.fragment ../engines/freescape/shaders/freescape_triangle.vertex "/home/Programs/Scummvm/2.8.1share/scummvm/shaders"
install -d "/home/Programs/Scummvm/2.8.1
bin"
install -c -m 755 "./scummvm" "/home/Programs/Scummvm/2.8.1bin/scummvm"
install -d "/home/Programs/Scummvm/2.8.1
lib/scummvm/"
install -c -m 644 "/home/Programs/Scummvm/2.8.1lib/scummvm/"
install: missing destination file operand after '/home/Programs/Scummvm/2.8.1
lib/scummvm/'
Try 'install --help' for more information.
make: * install Error 1

I had the error:

install: missing destination file operand after '/home/Programs/Scummvm/2.8.1lib/scummvm/'

Before but did not report it. I think there is something
wrong with the build system scummvm uses, since I can
compile other GNU configure based programs just fine.

(And perhaps it would be time to switch to cmake or
meson/ninja; GNU configure is such a huge mess really.)

Change History (3)

comment:1 by sev-, 3 weeks ago

Thank you for reporting. We will try to look into the first one eventually.

In regards of the second bug, we do not use GNU configure, our configure is completely custom.

We never run make install, so no wonder it is broken, we'll look into that.

If you can rewrite our configure in cmake or meson/ninja so that it works on all 30+ supported platforms, you will be my hero.

comment:2 by digitall, 2 weeks ago

@rubyFeedback: You are not clear, but given some of the paths, you are trying to compile on MacOS. Can you please provide full details of how you are compiling i.e. XCode, MacPorts or Homebrew and on what architecture i.e. PPC, x86 or ARM?

Our compilation instructions are here: https://wiki.scummvm.org/index.php?title=Compiling_ScummVM/macOS and https://wiki.scummvm.org/index.php?title=Compiling_ScummVM/Docker for reference ...

It should be noted that the normal Unix-y invocation would be "./configure && make clean && make" to build, but the instructions give further notes on required library dependencies etc. so you should check the ./configure output for any issues / missing library warnings before you go to make

comment:3 by digitall, 2 weeks ago

Component: --Unset--Port: Mac OS X
Note: See TracTickets for help on using tickets.