Обсуждение: Errors in Postgres
Hi ! I found some errors in pgsql. 1. ---- # ./configure --with-template=solaris_sparc_gcc --enable-hba --with-perl loading cache ./config.cache checking host system type... sparc-sun-solaris2.5.1 checking echo setting... checking setting template to... solaris_sparc_gcc checking setting USE_LOCALE... disabled checking setting CYR_RECODE... disabled checking setting MULTIBYTE... disabled checking setting DEF_PGPORT... 5432 checking setting DEF_MAXBACKENDS... 32 checking setting USE_TCL... disabled checking setting USE_PERL... enabled checking setting USE_ODBC... disabled checking setting ASSERT CHECKING... disabled checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking how to run the C preprocessor... (cached) gcc -E checking whether gcc needs -traditional... (cached) no - setting CPPFLAGS= - setting LDFLAGS= checking for c++... c++ checking whether the C++ compiler (c++ ) works... no configure: error: installation or configuration problem: C++ compiler cannot create executables. # ---- 2. If I try it with additional option "--with-CXX=/usr/local/bin/gcc" and then type "gmake all" - in some time I get following : ---- gmake -C libpq++ all gmake[2]: Entering directory `/var/adm/files/postgresql-6.5.2/src/interfaces/libpq++' /usr/local/bin/gcc -I../../backend -I../../include -I../../interfaces/libpq -I../../include -I../../backend -Wall -Wmissing-prototypes -fPIC -c pgconnection.cc -o pgconnection.o In file included from pgconnection.cc:20: pgconnection.h:24: string: No such file or directory gmake[2]: *** [pgconnection.o] Error 1 gmake[2]: Leaving directory `/var/adm/files/postgresql-6.5.2/src/interfaces/libpq++' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/var/adm/files/postgresql-6.5.2/src/interfaces' gmake: *** [all] Error 2 # ---- In this pgconnection.h line 24 I found : #include <string> Maybe there must be #include <string.h> ?? What is wrong ? Postgres 6.5.2 was being compiled on SUN SPARCstation 5, under Solaris 2.5.1. All necessary utilities have been installed: gcc 2.8.1, gmake 3.76.1, flex 2.5.4a. Also perl5 4.004 was installed. Look forward to hearing from you soon. Oleg
This is a standard C++ problem. Some platforms need string.h, and some just string. We have not figured out a way to make this work on all platforms. Any ideas? We kept switching them back and forth until we realized this. Sun's seem to have the problem. At this point, and OS-specific test would probably be OK. > Hi ! > > I found some errors in pgsql. > 1. > > ---- > # ./configure --with-template=solaris_sparc_gcc --enable-hba --with-perl > loading cache ./config.cache > checking host system type... sparc-sun-solaris2.5.1 > checking echo setting... > checking setting template to... solaris_sparc_gcc > checking setting USE_LOCALE... disabled > checking setting CYR_RECODE... disabled > checking setting MULTIBYTE... disabled > checking setting DEF_PGPORT... 5432 > checking setting DEF_MAXBACKENDS... 32 > checking setting USE_TCL... disabled > checking setting USE_PERL... enabled > checking setting USE_ODBC... disabled > checking setting ASSERT CHECKING... disabled > checking for gcc... (cached) gcc > checking whether the C compiler (gcc ) works... yes > checking whether the C compiler (gcc ) is a cross-compiler... no > checking whether we are using GNU C... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking how to run the C preprocessor... (cached) gcc -E > checking whether gcc needs -traditional... (cached) no > - setting CPPFLAGS= > - setting LDFLAGS= > checking for c++... c++ > checking whether the C++ compiler (c++ ) works... no > configure: error: installation or configuration problem: C++ compiler cannot > create executables. > # > ---- > > 2. If I try it with additional option "--with-CXX=/usr/local/bin/gcc" > and then type "gmake all" - in some time I get following : > > ---- > gmake -C libpq++ all > gmake[2]: Entering directory > `/var/adm/files/postgresql-6.5.2/src/interfaces/libpq++' > /usr/local/bin/gcc -I../../backend -I../../include -I../../interfaces/libpq > -I../../include -I../../backend -Wall -Wmissing-prototypes -fPIC -c > pgconnection.cc -o pgconnection.o > In file included from pgconnection.cc:20: > pgconnection.h:24: string: No such file or directory > gmake[2]: *** [pgconnection.o] Error 1 > gmake[2]: Leaving directory > `/var/adm/files/postgresql-6.5.2/src/interfaces/libpq++' > gmake[1]: *** [all] Error 2 > gmake[1]: Leaving directory `/var/adm/files/postgresql-6.5.2/src/interfaces' > gmake: *** [all] Error 2 > # > ---- > > In this pgconnection.h line 24 I found : > #include <string> > Maybe there must be > #include <string.h> > ?? > > What is wrong ? > > Postgres 6.5.2 was being compiled on SUN SPARCstation 5, under Solaris 2.5.1. > All necessary utilities have been installed: gcc 2.8.1, gmake 3.76.1, flex > 2.5.4a. > Also perl5 4.004 was installed. > > Look forward to hearing from you soon. > > Oleg > -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Bruce Momjian wrote on Sun, 24 Oct 1999 08:42:53 EDT >This is a standard C++ problem. Some platforms need string.h, and some >just string. We have not figured out a way to make this work on all >platforms. > >Any ideas? We kept switching them back and forth until we realized >this. Sun's seem to have the problem. > >At this point, and OS-specific test would probably be OK. > Yes, this has been trouble everywhere. I believe <string> is ANSI. In the latest gnulibs, the old libg++ is replaced by stdc++ which should have "string" defined. For what it's worth, this works on one of our sparc solaris boxes with gcc 2.8.1. Although it may well be something else, you might check to make sure that you have the latest version of the gnu g++ libraries. FYI, in the gnu implemenation, the "string" header is just an include of the original "string.h" but at least it's conforming. --Martin
> > This is a standard C++ problem. Some platforms need string.h, and some > just string. We have not figured out a way to make this work on all > platforms. > > Any ideas? We kept switching them back and forth until we realized > this. Sun's seem to have the problem. > Why not just add an extra thing into the config scripts. Something like: echo '#include <string.h>' > test.c echo 'int main(int argc,char **argv) {' >> test.c Something here where you have a clash... echo 'return 1;}' >> test.c $CC test.c -o test if [ -f test ] then echo '#define NEED_STRING_H' >> someheader.h else echo '#include <string.h>' > test.c echo 'int main(int argc,char **argv) {' >> test.c Something here where you have a clash... echo 'return 1;}' >> test.c $CC test.c -o test if [ -f test ] then echo '#define NEED_STRING' >> someheader.h else echo '#define UNKNOWN_STRING' >> soneheader.h fi fi and then in your main program files #include "someheader.h" #ifdef NEED_STRING #include <string> #endif #ifdef NEED_STRING_H #include <string.h> #endif This is how I test for things like that. OK so I wrote all of my config stuff before I knew about gnu's autoconf, and to be honest I dont know how well this would integrate with that, but it works for me to compile my own projects on just about any un*x flavor Ive been able to get access too, plus cygwin32 ~Michael
Bruce Momjian <maillist@candle.pha.pa.us> writes: > This is a standard C++ problem. Some platforms need string.h, and some > just string. We have not figured out a way to make this work on all > platforms. > At this point, and OS-specific test would probably be OK. Seems like a configure-time test is the obvious answer. regards, tom lane
Alright, it seems simple enough, but I am having no luck figuring out the syntax for the LIKE clause. I have tried: WHERE name LIKE 'A*' and other similar combinations to no avail. Anyone have any suggestions? Thanks much, Tom
On Mon, 25 Oct 1999, Thomas Byrnes wrote: > Alright, it seems simple enough, but I am having no luck figuring out the > syntax for the LIKE clause. > > I have tried: WHERE name LIKE 'A*' and other similar combinations to no > avail. Anyone have any suggestions? LIKE 'A%', if I remember correctly. Ewan.