Re: Compiling beta2 with openssl on XP Pro

Lists: pgsql-hackers-win32
From: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
To: <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Compiling beta2 with openssl on XP Pro
Date: 2004-09-01 18:48:46
Message-ID: BAY8-DAV64LxeZF7lwe00015232@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

I couldn't get beta1 with openssl (snapshot of 27August) past configure on mingw so I thought I'd just skip to beta2 and re-try.

The snag I'm hitting is that the configure script doesn't seem to find the -lcrypto library. I'm specifying that library as /usr/local/ssl/lib from the --with-libs switch:

/configure --with-openssl --with-includes=/usr/local/include:/usr/ssl/include --with-libs=/usr/local/lib:/usr/ssl/lib

I'm assuming that to include multiple directories you add the colon (:) in between, but perhaps this is wrong (??)

In any case, when the configure script tries to compile conftest.c, it can't find -lcrypto:

configure:7321: gcc -o conftest.exe -O2 -fno-strict-aliasing -I./src/include/port/win32 -DEXEC_BACKEND -I/usr/local/include -L/usr/local/lib conftest.c -lcrypto -lz -lwsock32 -lm >&5
c:\mingw\bin\..\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe: cannot find -lcrypto

BUT, note that only the /usr/local/include and /usr/local/lib are added to the compile command. The script seems to be missing my additional directories of /usr/local/ssl/lib and /usr/local/ssl/include.

Can someone steer me in the right direction? How do I specify multiple search directories with the configure switches?

Thanks.
-Tony

p.s. If I cut out the conftest.c code and try to compile with the above command but add the missing -L and -I switches, it finds -lcrypto but gives the error:

gcc -o conftest.exe -O2 -fno-strict-aliasing -I./src/include/port/win32 -DEXEC_BACKEND
-I/usr/local/include -I/usr/local/ssl/include -L/usr/local/lib -L/usr/local/ssl/lib con
ftest.c -lcrypto -lz -lwsock32 -lm
C:/DOCUME~1/Tony/LOCALS~1/Temp/ccyUbaaa.o(.text+0x15):conftest.c: undefined reference to `fdatasync'

$ ./configure --with-openssl --with-includes=/usr/local/include:/usr/ssl/include --with-libs=/usr/local/lib:/usr/ssl/lib

## --------- ##
## Platform. ##
## --------- ##

hostname = KING
uname -m = i686
uname -r = 1.0.10(0.46/3/2)
uname -s = MINGW32_NT-5.1
uname -v = 2004-03-15 07:17

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: .
PATH: /usr/local/bin
PATH: /mingw/bin
PATH: /bin
PATH: /c/Perl/bin/
PATH: /c/WINDOWS/system32
PATH: /c/WINDOWS
PATH: /c/WINDOWS/system32/WBEM
PATH: /c/matlab6p5/bin/win32
PATH: /c/Program Files/SSH Communications Security/SSH Secure Shell

configure:7291: checking for CRYPTO_new_ex_data in -lcrypto
configure:7321: gcc -o conftest.exe -O2 -fno-strict-aliasing -I./src/include/port/win32 -DEXEC_BACKEND -I/usr/local/include -L/usr/local/lib conftest.c -lcrypto -lz -lwsock32 -lm >&5
c:\mingw\bin\..\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe: cannot find -lcrypto
configure:7327: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "8.0.0beta2"
| #define PACKAGE_STRING "PostgreSQL 8.0.0beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs(at)postgresql(dot)org"
| #define PG_VERSION "8.0.0beta2"
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define PG_VERSION_STR "PostgreSQL 8.0.0beta2 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.2.3 (mingw special 20030504-1)"
| #define PG_KRB_SRVNAM "postgres"
| #define USE_SSL 1
| #define HAVE_LIBM 1
| #define HAVE_LIBWSOCK32 1
| #define HAVE_LIBZ 1
| #define HAVE_SPINLOCKS 1
| /* end confdefs.h. */
|
| /* Override any gcc2 internal prototype to avoid an error. */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
| builtin and then its argument prototype would still apply. */
| char CRYPTO_new_ex_data ();
| int
| main ()
| {
| CRYPTO_new_ex_data ();
| ;
| return 0;
| }
configure:7353: result: no
configure:7363: error: library 'crypto' is required for OpenSSL


From: Ronald Kuczek <kuczek(at)kuczek(dot)pl>
To: Tony and Bryn Reina <reina_ga(at)hotmail(dot)com>
Cc: pgsql-hackers-win32(at)postgresql(dot)org
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-01 19:41:35
Message-ID: 413625EF.2020106@kuczek.pl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

Użytkownik Tony and Bryn Reina napisał:

Tony, see your output:

> configure:7353: result: no
> configure:7363: error: library 'crypto' is required for OpenSSL

You are missing crypt-bin and crypt-lib mingw packages.

Best regards
Rony


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
Cc: pgsql-hackers-win32(at)postgresql(dot)org
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-01 22:29:58
Message-ID: 10840.1094077798@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg사설 토토 사이트SQL :

"Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com> writes:
> Can someone steer me in the right direction? How do I specify multiple sear
> ch directories with the configure switches?

It looks to me like the configure script follows the local convention
for path separators --- in other words, use ';' not ':' on Windows.

regards, tom lane


From: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-02 05:44:23
Message-ID: BAY8-DAV599G7yNDKj2000185a1@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

I just tried:

configure --with-openssl --with-includes=/usr/local/include;/usr/local/ssl/include
--with-libs=/usr/local/lib;/usr/local/ssl/lib

but the configure.log states the command was:

configure --with-openssl --with-includes=/usr/local/include

so it appears that everything after the first semi-colon (;) is lost.

Can you show me how to specify the correct configure command for these
directories?

Thanks.
-Tony

----- Original Message -----
From: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Sent: Thursday, September 02, 2004 12:29 AM
Subject: Re: [pgsql-hackers-win32] Compiling beta2 with openssl on XP Pro

> "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com> writes:
>> Can someone steer me in the right direction? How do I specify multiple
>> sear
>> ch directories with the configure switches?
>
> It looks to me like the configure script follows the local convention
> for path separators --- in other words, use ';' not ':' on Windows.
>
> regards, tom lane
>


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
Cc: pgsql-hackers-win32(at)postgresql(dot)org
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-02 13:41:01
Message-ID: 19133.1094132461@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

"Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com> writes:
> I just tried:
> configure --with-openssl --with-includes=/usr/local/include;/usr/local/ssl/include
> --with-libs=/usr/local/lib;/usr/local/ssl/lib
> but the configure.log states the command was:
> configure --with-openssl --with-includes=/usr/local/include
> so it appears that everything after the first semi-colon (;) is lost.

Presumably you need to quote that parameter --- certainly you would need
to quote a semicolon in a Unix shell.

configure --with-openssl '--with-includes=/usr/local/include;/usr/local/ssl/include' ...

regards, tom lane


From: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-02 14:34:23
Message-ID: BAY8-DAV35cHytuUCyj0000cc1c@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

> Presumably you need to quote that parameter --- certainly you would need
> to quote a semicolon in a Unix shell.
>
> configure --with-openssl
> '--with-includes=/usr/local/include;/usr/local/ssl/include' ...
>

configure --with-openssl --with-cassert --with-odbc
'--with-include=/usr/local/ssl/include;/usr/local/include'
'--with-libs=/usr/local/ssl/lib;/usr/local/lib'

Still no dice. It sends the switches fine, but still doesn't seem to be
looking in the second directory.
So zlib is not found since it's in /usr/local/include and /usr/local/lib.
But if I do:

configure --with-cassert --with-odbc '--with-include=/usr/local/include'
'--with-libs=/usr/local/lib'

everything is fine for the configure script.

Just seems to neglect anything after the first additional directory.

-Tony

p.s. If I move the openssl and zlib to the same directory, the configure
bombs out on rand_win.c. This is the same problem that I posted last week
with beta1. Magnus said that the fix was a one-line change in openssl, but
didn't remember the change. Does anyone else know the fix? Thanks.


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
Cc: pgsql-hackers-win32(at)postgresql(dot)org
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-02 15:46:00
Message-ID: 29784.1094139960@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

"Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com> writes:
> Still no dice. It sends the switches fine, but still doesn't seem to be
> looking in the second directory.

On looking into it, I found that the with-includes/libraries parts of
the configure script weren't aware they were supposed to use PATH_SEPARATOR
instead of a hardwired ':'. So that's at least part of the issue.

Could you try CVS-tip configure and see if it works better?

regards, tom lane


From: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: Compiling beta2 with openssl on XP Pro
Date: 2004-09-02 17:57:23
Message-ID: BAY8-DAV32PT8HATr2G000177cc@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32

Haven't tried CVStip yet, but did give one more try to different
permutation:

configure --with-openssl --with-cassert --with-odbc
'--with-include=/usr/local/ssl/include:/usr/local/include'
'--with-libs=/usr/local/ssl/lib:/usr/local/lib'

which correctly sees the additional directories. So colon with single quotes
around structure is passed correctly (which from your description of the fix
sounds correct).

Still have the error I reported last week with the SSL stuff. It's finding
SSL, but bombing out on some definitions in rand_win.c. Magnus said it was
an easy fix to the SSL includes, but he didn't remember what the fix was. I
think other than that I should be good to go for compiling on mingw.

$
/configure --with-openssl --with-cassert --with-odbc --with-include=/usr/local/ssl/include:/usr/local/include
--with-libs=/usr/local/ssl/lib:/usr/local/lib

## --------- ##
## Platform. ##
## --------- ##

hostname = KING
uname -m = i686
uname -r = 1.0.10(0.46/3/2)
uname -s = MINGW32_NT-5.1
uname -v = 2004-03-15 07:17

configure:7291: checking for CRYPTO_new_ex_data in -lcrypto
configure:7321: gcc -o
onftest.exe -O2 -fno-strict-aliasing -I./src/include/port/win32 -DEXEC_BACKEND
-L/usr/local/ssl/lib -L/usr/local/lib
conftest.c -lcrypto -lz -lwsock32 -lm >&5
configure:7327: $? = 0
configure:7331: test -z
|| test ! -s conftest.err
configure:7334: $? = 0
configure:7337: test -s conftest.exe
configure:7340: $? = 0
configure:7353: result: yes
configure:7369: checking for SSL_library_init in -lssl
configure:7399: gcc -o
onftest.exe -O2 -fno-strict-aliasing -I./src/include/port/win32 -DEXEC_BACKEND
-L/usr/local/ssl/lib -L/usr/local/lib
conftest.c -lssl -lcrypto -lz -lwsock32 -lm >&5
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb13):rand_win.c:
undefined reference to `CreateDCA(at)16'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb24):rand_win.c:
undefined reference to `CreateCompatibleDC(at)4'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb39):rand_win.c:
undefined reference to `GetDeviceCaps(at)8'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb49):rand_win.c:
undefined reference to `GetDeviceCaps(at)8'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb63):rand_win.c:
undefined reference to `CreateCompatibleBitmap(at)12'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb71):rand_win.c:
undefined reference to `SelectObject(at)8'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xb83):rand_win.c:
undefined reference to `GetObjectA(at)12'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xbf1):rand_win.c:
undefined reference to `BitBlt(at)36'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xbfb):rand_win.c:
undefined reference to `GetBitmapBits(at)12'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xc52):rand_win.c:
undefined reference to `SelectObject(at)8'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xc59):rand_win.c:
undefined reference to `DeleteObject(at)4'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xc63):rand_win.c:
undefined reference to `DeleteDC(at)4'
C:/msys/1.0/local/ssl/lib/libcrypto.a(rand_win.o)(.text+0xc6d):rand_win.c:
undefined reference to `DeleteDC(at)4'
configure:7405: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "8.0.0beta2"
| #define PACKAGE_STRING "PostgreSQL 8.0.0beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs(at)postgresql(dot)org"
| #define PG_VERSION "8.0.0beta2"
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define PG_VERSION_STR "PostgreSQL 8.0.0beta2 on i686-pc-mingw32, compiled
by GCC gcc.exe (GCC) 3.2.3 (mingw special 20030504-1)"
| #define PG_KRB_SRVNAM "postgres"
| #define USE_SSL 1
| #define HAVE_LIBM 1
| #define HAVE_LIBWSOCK32 1
| #define HAVE_LIBZ 1
| #define HAVE_SPINLOCKS 1
| #define HAVE_LIBCRYPTO 1
| /* end confdefs.h. */
|
| /* Override any gcc2 internal prototype to avoid an error. */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
| builtin and then its argument prototype would still apply. */
| char SSL_library_init ();
| int
| main ()
| {
| SSL_library_init ();
| ;
| return 0;
| }
configure:7431: result: no
configure:7441: error: library 'ssl' is required for OpenSSL

----- Original Message -----
From: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Sent: Thursday, September 02, 2004 5:46 PM
Subject: Re: [pgsql-hackers-win32] Compiling beta2 with openssl on XP Pro

> "Tony and Bryn Reina" <reina_ga(at)hotmail(dot)com> writes:
>> Still no dice. It sends the switches fine, but still doesn't seem to be
>> looking in the second directory.
>
> On looking into it, I found that the with-includes/libraries parts of
> the configure script weren't aware they were supposed to use
> PATH_SEPARATOR
> instead of a hardwired ':'. So that's at least part of the issue.
>
> Could you try CVS-tip configure and see if it works better?
>
> regards, tom lane
>