adesutherland / CREXX

REXX Language implementation
Other
13 stars 3 forks source link

some files are changed in the source tree during build #273

Open rvjansen opened 2 years ago

rvjansen commented 2 years ago

This project only allows out-of-source builds. This is no problem in itself, but 1) the build sometimes fails in the 'machine' subdirectory because of stale generated files (symptom: double instruction defs) 2) modified re2c files need to be removed or stashed on merge This probably needs to be fixed in the Cmake specifications so a clean build directory guarantees a successful build, without being hampered by earlier modifications in the source tree.

rvjansen commented 2 years ago

I merged develop into features/f0038. Don't worry, it went fine. I did encounter the now familiar build failure: here are the error messages:

In file included from /Users/rvjansen/apps/crexx-f0038/interpreter/rxvmintp.c:3036:
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:508:1: error: implicit declaration of function 'OP' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
OP(1)="?????"; */
^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:508:6: error: expression is not assignable
OP(1)="?????"; */
~~~~~^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:508:17: error: expected expression
OP(1)="?????"; */
                ^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:509:3: error: expected expression
  DISPATCH;
  ^
/Users/rvjansen/apps/crexx-f0038/interpreter/rxvmintp.h:106:36: note: expanded from macro 'DISPATCH'
#define DISPATCH                   { pc = next_pc; goto *(current_frame->interrupt_mask)?&&BREAKPOINT:next_inst; }
                                   ^
In file included from /Users/rvjansen/apps/crexx-f0038/interpreter/rxvmintp.c:3036:
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:515:19: error: redefinition of label 'EXIT_REG'
START_INSTRUCTION(EXIT_REG) // label not yet defined
                  ^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:486:19: note: previous definition is here
START_INSTRUCTION(EXIT_REG) // label not yet defined
                  ^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:528:19: error: redefinition of label 'EXIT_INT'
START_INSTRUCTION(EXIT_INT) // label not yet defined
                  ^
/Users/rvjansen/apps/crexx-f0038/interpreter/../machine/instrmiss.h:499:19: note: previous definition is here
START_INSTRUCTION(EXIT_INT) // label not yet defined
rvjansen commented 2 years ago

note that this can be solved by checking out a pristine features/f0038 branch; I submit that the modification in the source tree is the cause of this problem.

adesutherland commented 2 years ago

Can you ley me know if this STILL does not work and I will revisit again! I did some cmake changes but ...

rvjansen commented 1 year ago

Yes, this is still the case in f0049.