Обсуждение: Bug #486: tab-complete.o: filename_completion_function reference not found when make'ing either 7.1.2 or 7.1.3 under Windows 2000

Поиск
Список
Период
Сортировка
Sean Dockery (sean@sean-dockery.com) reports a bug with a severity of 1
The lower the number the more severe it is.

Short Description
tab-complete.o: filename_completion_function reference not found when make'ing either 7.1.2 or 7.1.3 under Windows 2000

Long Description
I've been trying to install postgres as a development database on my local machine.  So I followed the instructions.

1) I downloaded and installed the "latest" version of Cygwin today.
2) I downloaded the CygIpc .bz2 package; re-ran Cygwin setup and installed it.
3) I ran the ipc daemon from the bash command line.
4) Downloaded, unzipped, and untar'd postgres 7.1.3 (the full version).
5) cd'd into the base directory; ./configure ran fine.  make failed when it hit the following line (to link psql)...

gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations command.o common.o help.o input.o stringutils.o mainloop.o
copy.ostartup.o prompt.o variables.o large_obj.o print.o describe.o tab-complete.o -L../../../src/interfaces/libpq -lpq
-L
/usr/local/lib -g  -lz -lcrypt -lreadline -lcygipc -o psql
tab-complete.o(.text+0x2a36):tab-complete.c: undefined reference to `filename_completion_function'
collect2: ld returned 1 exit status
make[3]: *** [psql] Error 1
make[3]: Leaving directory `/install/postgresql-7.1.2/src/bin/psql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/install/postgresql-7.1.2/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/install/postgresql-7.1.2/src'
make: *** [all] Error 2

6) I went looking for the missing function with a grep command from the base directory.  Here's what I got back...

$ grep filename_completion_function `find . | grep .c$`
grep: ./contrib/mac: Invalid request code
grep: ./contrib/retep/uk/org/retep/util/misc: Invalid request code
grep: ./contrib/retep/uk/org/retep/xml/jdbc: Invalid request code
grep: ./doc: Invalid request code
grep: ./doc/src: Invalid request code
grep: ./src: Invalid request code
grep: ./src/backend/storage/ipc: Invalid request code
grep: ./src/backend/utils/misc: Invalid request code
grep: ./src/bin/pgaccess/doc: Invalid request code
./src/bin/psql/tab-complete.c:extern char *filename_completion_function();
./src/bin/psql/tab-complete.c:          matches = completion_matches(text, filename_completion_function);
grep: ./src/interfaces/ecpg/preproc: Invalid request code
grep: ./src/interfaces/jdbc: Invalid request code
grep: ./src/interfaces/jdbc/org/postgresql/geometric: Invalid request code
grep: ./src/interfaces/odbc: Invalid request code
grep: ./src/pl/plpgsql/src: Invalid request code

Basically, it found a local extern declaration in tab-complete.c, but no actual implementation of the function.

Where does "filename_completion_function" live?


Sample Code


No file was uploaded with this report
You must patch postgresql in order to run it under cygwin + windows 2000.

The "filename_completion_function" is named
"rl_filename_completion_function" under cygwin.
That's why it's not found.
The patch will solve the problem and other memory allocation problems
appearing under windows 2000.
You can find the sources patched on cygwin.com. You can download it with the
cygwin setup.exe
(sources and binaries are available).

-----Message d'origine-----
De : pgsql-bugs-owner@postgresql.org
[mailto:pgsql-bugs-owner@postgresql.org]De la part de
pgsql-bugs@postgresql.org
Envoyé : jeudi 18 octobre 2001 09:22
À : pgsql-bugs@postgresql.org
Objet : [BUGS] Bug #486: tab-complete.o: filename_completion_function
reference not found when make'ing either 7.1.2 or 7.1.3 under Windows
2000


Sean Dockery (sean@sean-dockery.com) reports a bug with a severity of 1
The lower the number the more severe it is.

Short Description
tab-complete.o: filename_completion_function reference not found when
make'ing either 7.1.2 or 7.1.3 under Windows 2000

Long Description
I've been trying to install postgres as a development database on my local
machine.  So I followed the instructions.

1) I downloaded and installed the "latest" version of Cygwin today.
2) I downloaded the CygIpc .bz2 package; re-ran Cygwin setup and installed
it.
3) I ran the ipc daemon from the bash command line.
4) Downloaded, unzipped, and untar'd postgres 7.1.3 (the full version).
5) cd'd into the base directory; ./configure ran fine.  make failed when it
hit the following line (to link psql)...

gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations command.o common.o
help.o input.o stringutils.o mainloop.o copy.o startup.o prompt.o
variables.o large_obj.o print.o describe.o
tab-complete.o -L../../../src/interfaces/libpq -lpq -L
/usr/local/lib -g  -lz -lcrypt -lreadline -lcygipc -o psql
tab-complete.o(.text+0x2a36):tab-complete.c: undefined reference to
`filename_completion_function'
collect2: ld returned 1 exit status
make[3]: *** [psql] Error 1
make[3]: Leaving directory `/install/postgresql-7.1.2/src/bin/psql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/install/postgresql-7.1.2/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/install/postgresql-7.1.2/src'
make: *** [all] Error 2

6) I went looking for the missing function with a grep command from the base
directory.  Here's what I got back...

$ grep filename_completion_function `find . | grep .c$`
grep: ./contrib/mac: Invalid request code
grep: ./contrib/retep/uk/org/retep/util/misc: Invalid request code
grep: ./contrib/retep/uk/org/retep/xml/jdbc: Invalid request code
grep: ./doc: Invalid request code
grep: ./doc/src: Invalid request code
grep: ./src: Invalid request code
grep: ./src/backend/storage/ipc: Invalid request code
grep: ./src/backend/utils/misc: Invalid request code
grep: ./src/bin/pgaccess/doc: Invalid request code
./src/bin/psql/tab-complete.c:extern char *filename_completion_function();
./src/bin/psql/tab-complete.c:          matches = completion_matches(text,
filename_completion_function);
grep: ./src/interfaces/ecpg/preproc: Invalid request code
grep: ./src/interfaces/jdbc: Invalid request code
grep: ./src/interfaces/jdbc/org/postgresql/geometric: Invalid request code
grep: ./src/interfaces/odbc: Invalid request code
grep: ./src/pl/plpgsql/src: Invalid request code

Basically, it found a local extern declaration in tab-complete.c, but no
actual implementation of the function.

Where does "filename_completion_function" live?


Sample Code


No file was uploaded with this report


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
"Steve SAUTETNER" <ssa@informactis.com> writes:
> You must patch postgresql in order to run it under cygwin + windows 2000.
> The "filename_completion_function" is named
> "rl_filename_completion_function" under cygwin.

FWIW, this is dealt with using a configure check in current sources.
I thought we'd back-patched the configuration fix into 7.1.*, but now
that I look it seems we didn't :-(.

            regards, tom lane