David A.D. Morano, PE, PhD
2015-04-27 00:29:22 UTC
I am compiling (continuing to compile) AST-OPEN 2014-12-24.
There is a compilation problem with:
cmd/proto/proto.c
at about line number 397 (or so) there is the code sequence:
#if !PROTO_STANDALONE
#undef error
#endif
This causes a link-time problem when compiling in what appears to be
'not-stand-alone-mode'. That is when the #define 'PROTO_STANDALINE'
is not defined.
The problem is that the #define 'error' is undefined and ends up
not being defined to anything, thus causing a link-time error
with an undefined symbol 'error()'.
It appears that an appropriate 'error()' is defined in 'ast_map.h',
itself included (ultimately) from 'ast.h', itself included in 'proto.c'
above. It seems like for none-stand-alone-mode it should get defined
to something like '_ast_error' (from 'ast_map.h'). But something does
not connect there and the end result is the link-time undefined
symbol.
My temporary fix (which obviously does not look like it should
be ultimately correct -- at least not ashethically) is to change
the above code to something like:
#if !PROTO_STANDALONE
#undef error
#else
#define error _ast_error
#endif
This does what 'ast_map.h" should have done.
Anyway, it (the 'proto' program) seems to compile OK with this fix.
Enjoy,
----
David A. Morano, PE, PhD
***@computer.org
There is a compilation problem with:
cmd/proto/proto.c
at about line number 397 (or so) there is the code sequence:
#if !PROTO_STANDALONE
#undef error
#endif
This causes a link-time problem when compiling in what appears to be
'not-stand-alone-mode'. That is when the #define 'PROTO_STANDALINE'
is not defined.
The problem is that the #define 'error' is undefined and ends up
not being defined to anything, thus causing a link-time error
with an undefined symbol 'error()'.
It appears that an appropriate 'error()' is defined in 'ast_map.h',
itself included (ultimately) from 'ast.h', itself included in 'proto.c'
above. It seems like for none-stand-alone-mode it should get defined
to something like '_ast_error' (from 'ast_map.h'). But something does
not connect there and the end result is the link-time undefined
symbol.
My temporary fix (which obviously does not look like it should
be ultimately correct -- at least not ashethically) is to change
the above code to something like:
#if !PROTO_STANDALONE
#undef error
#else
#define error _ast_error
#endif
This does what 'ast_map.h" should have done.
Anyway, it (the 'proto' program) seems to compile OK with this fix.
Enjoy,
----
David A. Morano, PE, PhD
***@computer.org