Обсуждение: Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

Поиск
Список
Период
Сортировка

Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

От
Tom Lane
Дата:
Are Bryne <are-pgsql-ports@communique.no> writes:
> ld: no shared -lssl.2.-1 available
>                           ^
>                           \___ This has nothing to do with it?

Hmm, I didn't look that closely.

> file on the .so gives:
> /usr/local/lib/libssl.so.2: FreeBSD/i386 compact demand paged shared library

Okay, so you do have a proper shared library.

Since the ecpg link command didn't mention ssl explicitly, I guess the
reference must be coming out of libpq.so.  What do you get if you run
ldd on libpq.so?  (I think it's called ldd on bsd, if not try chatr.)

            regards, tom lane

Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

От
Are Bryne
Дата:
On Fri, 25 Jan 2002, Tom Lane wrote:

> Okay, so you do have a proper shared library.
>
> Since the ecpg link command didn't mention ssl explicitly, I guess the
> reference must be coming out of libpq.so.  What do you get if you run
> ldd on libpq.so?  (I think it's called ldd on bsd, if not try chatr.)

Yes, it's ldd.
ldd: work/postgresql-7.1.3/src/interfaces/libpq/libpq.so: not a dynamic executable

(but, of course, it's a link :)
% ll work/postgresql-7.1.3/src/interfaces/libpq/libpq.so*
lrwxrwxrwx  1 are  portsmas     12 Jan 25 21:16 work/postgresql-7.1.3/src/interfaces/libpq/libpq.so -> libpq.so.2.1
lrwxrwxrwx  1 are  portsmas     12 Jan 25 21:16 work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2 -> libpq.so.2.1
-rwxr-xr-x  1 are  portsmas  64849 Jan 25 21:16 work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2.1

and:
% ldd work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2.1
ldd: work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2.1: not a dynamic executable

% file work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2.1
work/postgresql-7.1.3/src/interfaces/libpq/libpq.so.2.1: FreeBSD/i386 compact demand paged shared library not stripped

So ldd doesn't work for libraries, only executables...

>             regards, tom lane

Thanks.

Regards,
Are Bryne
--
Communiqué DA                            Office:       +47 22 44 33 99
Postboks 9050 Grønland                   Mobile:        +47 900 22 009
NO-0133 Oslo                             URL: http://www.communique.no


Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

От
Tom Lane
Дата:
Are Bryne <are-pgsql-ports@communique.no> writes:
> So ldd doesn't work for libraries, only executables...

Possibly it would work to explicitly include "-lssl" in the link
command for libecpg.  In src/interfaces/ecpg/lib/Makefile,
add -lssl to the line "SHLIB_LINK= $(libpq)" and see if it's happier.

            regards, tom lane

Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

От
Are Bryne
Дата:
On Fri, 25 Jan 2002, Tom Lane wrote:

> Are Bryne <are-pgsql-ports@communique.no> writes:
> > So ldd doesn't work for libraries, only executables...
>
> Possibly it would work to explicitly include "-lssl" in the link
> command for libecpg.  In src/interfaces/ecpg/lib/Makefile,
> add -lssl to the line "SHLIB_LINK= $(libpq)" and see if it's happier.

--- Makefile.orig       Fri Jan 25 22:43:12 2002
+++ Makefile    Fri Jan 25 22:44:30 2002
@@ -22,7 +22,7 @@
 OBJS= execute.o typename.o descriptor.o data.o error.o prepare.o memory.o
\
        connect.o misc.o

-SHLIB_LINK= $(libpq)
+SHLIB_LINK= $(libpq) -lssl

 all: all-lib

I clean out *.o and *.a from src/interfaces/ecpg/lib/ and make gives:

gcc295 -O -pipe -DUSE_SSL -Wall -Wmissing-prototypes
-Wmissing-declarations -fpic -DPIC
-I../../../../src/interfaces/ecpg/include
-I../../../../src/interfaces/libpq -I../../../../src/include
-I/usr/local/include  -c -o misc.o misc.c
ar cr libecpg.a `lorder execute.o typename.o descriptor.o data.o error.o
prepare.o memory.o connect.o misc.o | tsort`
tsort: cycle in data
tsort: prepare.o
tsort: misc.o
tsort: cycle in data
tsort: error.o
tsort: execute.o
tsort: connect.o
tsort: cycle in data
tsort: error.o
tsort: execute.o
tsort: descriptor.o
tsort: memory.o
tsort: cycle in data
tsort: execute.o
tsort: descriptor.o
tsort: error.o
tsort: cycle in data
tsort: execute.o
tsort: descriptor.o
tsort: error.o
tsort: cycle in data
tsort: execute.o
tsort: descriptor.o
tsort: data.o
ranlib libecpg.a
/usr/bin/ld -x -Bshareable -Bforcearchive execute.o typename.o
descriptor.o data.o error.o prepare.o memory.o connect.o misc.o
-L../../../../src/interfaces/libpq -lpq -lssl  -o libecpg.so.3.2.0
ld: no shared -lssl.2.-1 available
gmake[5]: *** [libecpg.so.3.2.0] Error 1
gmake[5]: Leaving directory `/usr/ports/databases/postgresql7/work/postgresql-7.1.3/src/interfaces/ecpg/lib'

So the same error message... I don't understand where the -1 comes from,
though...

>             regards, tom lane

Thanks,
Are Bryne
--
Communiqué DA                            Office:       +47 22 44 33 99
Postboks 9050 Grønland                   Mobile:        +47 900 22 009
NO-0133 Oslo                             URL: http://www.communique.no


Re: Compiling on FreeBSD 2.2.x? (-export-dynamic unavailable)

От
Tom Lane
Дата:
Are Bryne <are-pgsql-ports@communique.no> writes:
> So the same error message... I don't understand where the -1 comes from,
> though...

Me either.  References from one shared library to another are messy on a
lot of Unixen, though, particularly older platforms.  It may not work at
all, or it may require some weird switch to be given while building
libpq.so or libecpg.so.

I think what you need at this point are some FreeBSD gurus not Postgres
gurus. Though they may just tell you to update to a newer FreeBSD release.

In the meantime perhaps you can survive without ssl support ...

            regards, tom lane