So, I removed dfmgr.o, and remade it:

[EMAIL PROTECTED] fmgr]$ make
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -D_GNU_SOURCE
-DPKGLIBDIR=\"/opt/postgres-7.4.1//lib\" -DDLSUFFIX=\".so\"  -c -o dfmgr.o
dfmgr.c
/usr/bin/ld -r -o SUBSYS.o dfmgr.o fmgr.o funcapi.o

The  Makefile.global looks ok (I didn't touch it), excerpts:

...
prefix := /opt/postgres-7.4.1/
...
libdir := ${exec_prefix}/lib
pkglibdir = $(libdir)
ifeq "$(findstring pgsql, $(pkglibdir))" ""
ifeq "$(findstring postgres, $(pkglibdir))" ""
override pkglibdir := $(pkglibdir)/postgresql
endif
endif
...

I did a "make install" following the rebuild of dfmgr.o -- and now things
work!

I am wondering how I came into this situation? Trying to recall my first
steps; I think that I did a ./configure first (it ran to the end) -- and
then I ran ./configure again with the options. Hmm... I will make a complete
new build (from a fresh tarball and directory) and see what happens.

I am not sure this was any help to you? Anyway - thanks for pointing to the
source of my problem!

/Thomas.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tom Lane
Sent: Monday, February 02, 2004 10:36 PM
To: Thomas Borg Salling
Cc: 'PostgreSQL Bugs List'
Subject: Re: [BUGS] BUG #1072: "$libdir/ascii_and_mic": No such file or
directory 

"Thomas Borg Salling" <[EMAIL PROTECTED]> writes:
> createdb, and started psql to create function. The result from strace
(when
> running the CREATE FUNCTION) of the backend is:

> "Q\0\0\0\237CREATE OR REPLACE FUNCTION "..., 8192, 0) = 160
> gettimeofday({1075756990, 462661}, NULL) = 0
> stat64("/usr/local/pgsql/lib/ascii_and_mic", 0xbfffca10) = -1 ENOENT (No
> such file or directory)
> stat64("/usr/local/pgsql/lib/ascii_and_mic.so", 0xbfffca10) = -1 ENOENT
(No
> such file or directory)
> stat64("$libdir/ascii_and_mic", 0xbfffcad0) = -1 ENOENT (No such file or
> directory)
> write(2, "ERROR:  could not access file \"$"..., 81) = 81

> It seems to search in /usr/local/pgsql.

Evidently.  So, somehow src/backend/utils/fmgr/dfmgr.o got compiled with
the wrong value of PKGLIBDIR.  You should look in src/Makefile.global to
check that it has the correct setting for pkglibdir (note difference in
case).  Also try going to src/backend/utils/fmgr, removing dfmgr.o, and
saying "make" to see what -D switch gets passed by the makefile.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to