On 22-04-17 17:27, David Sommerseth wrote:
> On 22/04/17 13:29, Gert Doering wrote:
>> On Sat, Apr 22, 2017 at 08:28:33AM +0200, Steffan Karger wrote:
>>>> v4 - Move the CFLAGS/LDFLAGS declarations before the manual
>>>>      version test; otherwise we're still testing the system install
>>>>      version
>> [..]
>>> This looks good now, ACK.
>>
>> I'm not exactly sure what happened here in v4 - but now it's broken for
>> "just run configure, with no extra WITH_OPENSSL_* arguments" (on a system 
>> without pkgconfig).  So, NAK, as annoying as you'll surely find me :-/
>>
>> It does the version check just fine...
>>
>> configure:16566: checking additionally if OpenSSL is available and version 
>> >= 1.
>> 0.1
>> configure:16587: cc -c -g -O2 -std=c99   conftest.c >&5
>> configure:16587: $? = 0
>> configure:16588: result: ok
>>
>> ... and then it tests for SSL_CTX_new, omitting the -lssl/-lcrypto bits:
>>
>> configure:16601: checking for SSL_CTX_new
>> configure:16601: cc -o conftest -g -O2 -std=c99    conftest.c   >&5
>> /var/tmp/conftest-e1c536.o: In function `main':
>> /home/gert/src/openvpn-maint/test-build-master-fbsd/conftest.c:193: 
>> undefined re
>> ference to `SSL_CTX_new'
>> cc: error: linker command failed with exit code 1 (use -v to see invocation)
>>
>>
>> ... failing.
>>
>> This is on FreeBSD 10.3, with the system libs, having pkg-config installed, 
>> but no openssl.pc:
>>
>> configure:16509: $PKG_CONFIG --exists --print-errors "libcrypto >= 1.0.1, 
>> libssl
>>  >= 1.0.1"
>> Package libcrypto was not found in the pkg-config search path.
>> Perhaps you should add the directory containing `libcrypto.pc'
>> to the PKG_CONFIG_PATH environment variable
>> Package 'libcrypto', required by 'virtual:world', not found
>> Package 'libssl', required by 'virtual:world', not found
>>
>> (not sure if this is related, but maybe the configure code path for
>> "pkg-config exists" is different from "no pkg-config found")
>>
>>
>> On Linux, with pkg-config + openssl.pc, it works fine:
>>
>> configure:16601: checking for SSL_CTX_new
>> configure:16601: gcc -o conftest -g -O2 -std=c99    conftest.c  -lcrypto 
>> -lssl
>>> &5
>> configure:16601: $? = 0
>> configure:16601: result: yes
>>
>> (-lcrypto -lssl present, though I wonder why it's putting -lcrypto 
>> first - dependency order should have -lssl first)
> 
> I will dig further into this an submit a v5.  Gee, this autotools stuff
> can be fragile.  Each time I fight with autotools, I think of migrating
> to CMake.  But each time I struggle with CMake, I think of migrating to
> autotools.  I so wonder if there are some sane alternatives - somewhat,
> I doubt so :/

Gah, of course.

Two things:

1) The OPENSSL_LIBS=${OPENSSL_LIBS:--lssl -lcrypto} line should be at
the old location, and the new one should go.  That's why it now fails on
systems without pkg-config or _LIBS set manually.

2) The incorrect linking order is related to the stuff from ticket #863.
 "[libcrypto >= 1.0.1, libssl >= 1.0.1]" should be replaced with
"[openssl >= 1.0.1]".  I was waiting for this patch to get through
before sending a follow-up patch for that, but I'm fine with integrating
that into this patch too.

-Steffan

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to