Re: [Monetdb-developers] Compiling pathfinder (Stable) failed on GNU.32.32.d.1-Debian4.0
On Fri, May 01, 2009 at 05:56:16AM +0200, Testweb Compilation wrote:
from lex.pf.c:19: /usr/include/features.h:150:1: error: this is the location of the previous definition make[5]: *** [libparser_la-scanner.yy.lo] Error 1
http://www.ins.cwi.nl/~monet/permastore/2009-05-01/Stable/make-pathfinder-GN...
CVS committers: fabian@cwi.nl manegold@cwi.nl
module maintainers: lsidir@cwi.nl zhang@cwi.nl henning@cwi.nl
The problem here is that in pathfinder, pf_config.h is in most C files (possibly at least all C files in pathfinder/compiler/ not included directly, but via pathfinder/compilier/include/pathfinder.h . Hence, our "trick" in buildtools/conf/rules.mk, to push the inclusion of pf_config.h (also) for flex, bison, swig, etc. -generated C files to the veru front of the file, does not work properly, i.e., pf_config.h get includes twice, once "forced" directly at the beginning of the (generated) C file, and once via pathfinder.h . I see three solutions: 1) Remove '#include "pf_config.h"' from pathfinder/compilier/include/pathfinder.h and add '#include "pf_config.h"' as first include in all source files in pathfinder// (e.g., just before the existing '#include "pathfinder.h"'. 2) Make buildtools/conf/rules.mk, aware of pathfinder.h and handle is just like $(CONFIG_H) 3) (Try to) make bootstrap (i.e., auto*) a conf/config.h.in (or make configure create the <pkg>_config.h from conf/config.h.in) in such a way that it is resistent against multiple inclusion, e.g., using the usual #ifndef #define ... #endif mechanism. I have a strong preference for solution one, as that is what we do the the remainder of the code base. Any comments? Any volunteers? Stefan -- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
Stefan Manegold wrote:
On Fri, May 01, 2009 at 05:56:16AM +0200, Testweb Compilation wrote:
from lex.pf.c:19: /usr/include/features.h:150:1: error: this is the location of the previous definition make[5]: *** [libparser_la-scanner.yy.lo] Error 1
http://www.ins.cwi.nl/~monet/permastore/2009-05-01/Stable/make-pathfinder-GN...
CVS committers: fabian@cwi.nl manegold@cwi.nl
module maintainers: lsidir@cwi.nl zhang@cwi.nl henning@cwi.nl
The problem here is that in pathfinder, pf_config.h is in most C files (possibly at least all C files in pathfinder/compiler/ not included directly, but via pathfinder/compilier/include/pathfinder.h . Hence, our "trick" in buildtools/conf/rules.mk, to push the inclusion of pf_config.h (also) for flex, bison, swig, etc. -generated C files to the veru front of the file, does not work properly, i.e., pf_config.h get includes twice, once "forced" directly at the beginning of the (generated) C file, and once via pathfinder.h .
I see three solutions:
1) Remove '#include "pf_config.h"' from pathfinder/compilier/include/pathfinder.h and add '#include "pf_config.h"' as first include in all source files in pathfinder// (e.g., just before the existing '#include "pathfinder.h"'.
2) Make buildtools/conf/rules.mk, aware of pathfinder.h and handle is just like $(CONFIG_H)
3) (Try to) make bootstrap (i.e., auto*) a conf/config.h.in (or make configure create the <pkg>_config.h from conf/config.h.in) in such a way that it is resistent against multiple inclusion, e.g., using the usual #ifndef #define ... #endif mechanism.
I have a strong preference for solution one, as that is what we do the the remainder of the code base.
Any comments?
I concur.
Any volunteers?
I can do it. -- Sjoerd Mullender
participants (2)
-
Sjoerd Mullender
-
Stefan Manegold