TTimo / GtkRadiant

The open source, cross platform level editor for idtech games
http://icculus.org/gtkradiant/
Other
581 stars 152 forks source link

Build error on Fedora 33: ‘uintptr_t’ undeclared (first use in this function) #662

Closed Calinou closed 3 years ago

Calinou commented 3 years ago

OS: Fedora 33 x86_64 GtkRadiant version: Git https://github.com/TTimo/GtkRadiant/commit/46abf34850c670ad3dc9f4f1c6233bef2ccead41 SCons version: 4.0.1 from pip, running on Python 3.9.0

Running scons target="q3map2,q3data" gives me the following:

❯ scons target="q3map2,q3data"
scons: Reading SConscript files ...
reading saved configuration from site.conf
saving updated configuration
emit build rules
emit configuration: config: target=['q3map2', 'q3data', ''] config=['release']
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/tools/quake3/common/quake3-common.vcxproj
10 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/mathlib/mathlib.vcxproj
4 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/l_net/l_net.vcxproj
2 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/ddslib/ddslib.vcxproj
1 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/picomodel/picomodel.vcxproj
23 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/md5lib/md5lib.vcxproj
2 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/tools/quake3/q3map2/q3map2.vcxproj
44 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/tools/quake3/common/quake3-common.vcxproj
10 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/mathlib/mathlib.vcxproj
4 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/l_net/l_net.vcxproj
2 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/ddslib/ddslib.vcxproj
1 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/picomodel/picomodel.vcxproj
23 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/md5lib/md5lib.vcxproj
2 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/tools/urt/tools/quake3/q3map2/q3map2_urt.vcxproj
38 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/mathlib/mathlib.vcxproj
4 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/l_net/l_net.vcxproj
2 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/libs/ddslib/ddslib.vcxproj
1 source files
parse /home/hugo/Documents/Git/TTimo/GtkRadiant/tools/quake3/q3data/q3data.vcxproj
19 source files
scons: done reading SConscript files.
scons: Building targets ...
gcc -o build/release/q3map2/tools/quake3/common/threads.o -c -O2 -fno-strict-aliasing -pipe -Wall -fmessage-length=0 -fvisibility=hidden -I/usr/include/libxml2 -DQ_NO_STLPORT -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -Ibuild/release/q3map2/include -Iinclude -Ibuild/release/q3map2/libs -Ilibs tools/quake3/common/threads.c
tools/quake3/common/threads.c: In function ‘RunThreadsOn’:
tools/quake3/common/threads.c:555:70: error: ‘uintptr_t’ undeclared (first use in this function)
  555 |    if ( pthread_create( &work_threads[i], NULL, (void*)func, (void*)(uintptr_t)i ) != 0 ) {
      |                                                                      ^~~~~~~~~
tools/quake3/common/threads.c:555:70: note: each undeclared identifier is reported only once for each function it appears in
tools/quake3/common/threads.c:555:80: error: expected ‘)’ before ‘i’
  555 |    if ( pthread_create( &work_threads[i], NULL, (void*)func, (void*)(uintptr_t)i ) != 0 ) {
      |                                                                                ^
      |                                                                                )
scons: *** [build/release/q3map2/tools/quake3/common/threads.o] Error 1
scons: building terminated because of errors.

(I only want q3map2, not the rest of GtkRadiant.)

After a quick search, I noticed this error was mentioned in passing in https://github.com/TTimo/GtkRadiant/issues/574#issuecomment-383378571 but I figured it'd be good to have a dedicated issue for it.

tkoeppe commented 3 years ago

Any chance that we're just missing an inclusion of <stdint.h> in that file?