preproc.c compilation error
Hello all:
This is my first time mail to all, yesterday I tried to compile
postgresin my linux, but an error keep bother me.
env:
Ubuntu 13.10
Linux rugal-TM8473 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC
2013 x86_64 x86_64 x86_64 GNU/Linux
gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9)
bison (GNU Bison) 2.7.12-4996
version might be update to dated
[rugal@rugal-TM8473 postgresql]> git pull
Already up-to-date.
{
make -C preproc all
make[4]: Entering directory `/home/rugal/workspace/postgres
ql/src/interfaces/ecpg/preproc'
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard
-pthread -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS
-DECPG_COMPILE -I../include -I../../../../src/interfaces/ecpg/include -I.
-I. -DMAJOR_VERSION=4 -DMINOR_VERSION=10 -DPATCHLEVEL=0
-I../../../../src/include -D_GNU_SOURCE -c -o preproc.o preproc.c -MMD
-MP -MF .deps/preproc.Po
In file included from preproc.y:15004:0:
pgc.l: In function ‘base_yylex’:
pgc.l:403:24: error: ‘ET_FATAL’ undeclared (first use in this function)
BEGIN(state_before);
^
pgc.l:403:24: note: each undeclared identifier is reported only once for
each function it appears in
In file included from preproc.y:15004:0:
pgc.l: In function ‘parse_include’:
pgc.l:1366:28: error: ‘ET_FATAL’ undeclared (first use in this function)
if (!yyin)
^
make[4]: *** [preproc.o] Error 1
}
This problem keep bothering even after I use
[./configure --enable-depend]
and I find a solution
--- a/src/interfaces/ecpg/preproc/type.h<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=b7768fd66146e16547f385d30272e2a42e4d6832;hb=b7768fd66146e16547f385d30272e2a42e4d6832>
+++ b/src/interfaces/ecpg/preproc/type.h<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d;hb=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d>
@@ -186,7<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=b7768fd66146e16547f385d30272e2a42e4d6832;hb=b7768fd66146e16547f385d30272e2a42e4d6832#l186>
+186,7<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d;hb=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d#l186>@@
struct assignment
enum errortype
{
- ET_WARNING, ET_ERROR, ET_FATAL
+ ET_WARNING, ET_ERROR
};
After add this enum, ET_FATAL . compilation become successful!
Is there any mistakes or typos with the latest version?
regard!
and even successfully compiled PG, I got warning
preproc.y: In function ‘vmmerror’:
preproc.y:76:2: warning: enumeration value ‘ET_FATAL’ not handled in switch
[-Wswitch]
switch(type)
^
2014/1/9 Rugal Bernstein <ryujinwrath@gmail.com>
Show quoted text
Hello all:
This is my first time mail to all, yesterday I tried to compile
postgres in my linux, but an error keep bother me.env:
Ubuntu 13.10
Linux rugal-TM8473 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC
2013 x86_64 x86_64 x86_64 GNU/Linux
gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9)
bison (GNU Bison) 2.7.12-4996version might be update to dated
[rugal@rugal-TM8473 postgresql]> git pull
Already up-to-date.{
make -C preproc all
make[4]: Entering directory `/home/rugal/workspace/postgres
ql/src/interfaces/ecpg/preproc'
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard
-pthread -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS
-DECPG_COMPILE -I../include -I../../../../src/interfaces/ecpg/include -I.
-I. -DMAJOR_VERSION=4 -DMINOR_VERSION=10 -DPATCHLEVEL=0
-I../../../../src/include -D_GNU_SOURCE -c -o preproc.o preproc.c -MMD
-MP -MF .deps/preproc.Po
In file included from preproc.y:15004:0:
pgc.l: In function ‘base_yylex’:
pgc.l:403:24: error: ‘ET_FATAL’ undeclared (first use in this function)
BEGIN(state_before);
^
pgc.l:403:24: note: each undeclared identifier is reported only once for
each function it appears in
In file included from preproc.y:15004:0:
pgc.l: In function ‘parse_include’:
pgc.l:1366:28: error: ‘ET_FATAL’ undeclared (first use in this function)
if (!yyin)
^
make[4]: *** [preproc.o] Error 1
}This problem keep bothering even after I use
[./configure --enable-depend]and I find a solution
--- a/src/interfaces/ecpg/preproc/type.h<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=b7768fd66146e16547f385d30272e2a42e4d6832;hb=b7768fd66146e16547f385d30272e2a42e4d6832> +++ b/src/interfaces/ecpg/preproc/type.h<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d;hb=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d> @@ -186,7<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=b7768fd66146e16547f385d30272e2a42e4d6832;hb=b7768fd66146e16547f385d30272e2a42e4d6832#l186> +186,7<http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/ecpg/preproc/type.h;h=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d;hb=cd0d1da8c4a1a641acd9f6b6b7dfa88e7241394d#l186>@@ struct assignmentenum errortype
{
- ET_WARNING, ET_ERROR, ET_FATAL
+ ET_WARNING, ET_ERROR
};After add this enum, ET_FATAL . compilation become successful!
Is there any mistakes or typos with the latest version?regard!
You have to rebuild the auto-generated pgc.c, preproc.c and preproc.y or simply
remove them to force a rebuild.
Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at gmail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Thanks, seems it is because the first time pgc.c and others are generated,
but [make distclean] did not clean them, which lead to this problem!
after [rm pgc.c preproc.h preproc.c preproc.y]
it is now successfully compiled without any warning! thank you!
Java Developer; Mysql/Oracle DBA; C/Java/Python/Bash; Vim; Linux; Pianist;
Hadoop/Spark/Storm
blog <http://rugal.ml>
github <https://github.com/Rugal>
twitter <https://twitter.com/ryujinwrath>
On Thu, Jan 9, 2014 at 9:45 PM, Michael Meskes <meskes@postgresql.org>wrote:
Show quoted text
You have to rebuild the auto-generated pgc.c, preproc.c and preproc.y or
simply
remove them to force a rebuild.Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at gmail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL
On 2014-01-09 22:12:53 +0800, Rugal Bernstein wrote:
Thanks, seems it is because the first time pgc.c and others are generated,
but [make distclean] did not clean them, which lead to this problem!
after [rm pgc.c preproc.h preproc.c preproc.y]
it is now successfully compiled without any warning! thank you!
maintainer-clean removes those, distclean doesn't because they are
distributed so people without flex/bison can compile postgres.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers