Compiling beta2 with openssl on XP Pro

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
Thread:
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

Responses

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Ronald Kuczek 2004-09-01 19:41:35 Re: Compiling beta2 with openssl on XP Pro
Previous Message Merlin Moncure 2004-09-01 18:41:09 Re: Linking Win32 applications with libpq