racket / ChezScheme

Chez Scheme
Apache License 2.0
110 stars 8 forks source link

Build error, use of undefined constant type_sys_stencil_vector #49

Closed Z-snails closed 2 years ago

Z-snails commented 2 years ago

error is

$ make
......
gcc -DX86_64 -Ita6le/boot/ta6le -Ita6le/c -Ic/ -Ita6le/zlib -Ita6le/lz4/lib -m64 -msse2 -O2 -D_REENTRANT -pthread -Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough -o ta6le/c/alloc.o -c c/alloc.c
c/alloc.c: In function ‘S_system_stencil_vector’:
c/alloc.c:819:25: error: ‘type_sys_stencil_vector’ undeclared (first use in this function); did you mean ‘type_stencil_vector’?
  819 |   return stencil_vector(type_sys_stencil_vector, mask);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
      |                         type_stencil_vector
c/alloc.c:819:25: note: each undeclared identifier is reported only once for each function it appears in
c/alloc.c:820:1: warning: control reaches end of non-void function [-Wreturn-type]
  820 | }
      | ^
compile failed
 in build-one
 in loop
 in module->hash
make: *** [Makefile:10: build] Error 1
mflatt commented 2 years ago

Hi - Is this a checkout where you built from an earlier commit? If so, you'll need to bootstrap again from pb, and then either delete the ta6le workarea before configure again or use make reset after running configure. (The makefiles really should be improved to handle upgrades better.)

Z-snails commented 2 years ago

Yes I did just update it from 9.5.5.5, thanks for spotting the problem so quick!

mflatt commented 2 years ago

I've updated the build script (cf5d1ecd997e563e495d79d59e8a82202c6b767a) with a basic check on whether boot files have the right version. That should help with this problem in the future, since it's not obvious that boot files needs to be rebuilt after a git pull.

Meanwhile, I think the problems that required a make reset have already been fixed with the new build system, so forget about that step.

Based on these improvements, I'll close the issue, but we can reopen if it turns out that the changes do not address enough.