On 1/18/2015 10:36 AM, Steve Holme wrote:
On Sun, 18 Jan 2015, John E. Malmberg wrote:

The assumption is that if the compiler does not have long long,
that it has __int64.  I do not see a test in config.h for __int64.

That is in the function Curl_ntlm_core_mk_ntlmv2_resp() which is
only  included if USE_NTLM_V2 is not zero which won't be the case when 64-bit
integers aren't supported due to the following in the header file:

#if !defined(USE_NTLM_V2) && USE_NTRESPONSES && (CURL_SIZEOF_CURL_OFF_T > 4)
#define USE_NTLM_V2 1
#endif

I discovered that a new option had been added to configure that
needed to be disabled on VAX since the external libraries to
support NTLM have not been ported to VAX.

In packages/vms/generate_config_vms_h_curl.com:

$write cvh "#ifndef __VAX"
$write cvh "#ifdef CURL_DISABLE_NTLM"
$write cvh "#undef CURL_DISABLE_NTLM"
$write cvh "#endif"
$write cvh "#else"
$! NTLM needs long long or int64 support, missing from DECC C.
$write cvh "#ifdef __DECC
$write cvh "#ifndef CURL_DISABLE_NTLM"
$write cvh "#define CURL_DISABLE_NTLM 1"
$write cvh "#endif"
$write cvh "#endif"
$write cvh "#endif"

This is what I had to add for VAX to compile lib/curl_ntlm_core.c for the daily build back in the November/December time frame where I submitted the patch.

I have not checked if it is still needed for 7.40.0.

Yes - we added support for SMB in v7.40.0. However, all the SMB code
is disabled when NTLM is not available.

If you had to explicitly disable SMB I would consider that a bug -
which we should try and identify and fix.

I did not have to do anything for SMB.

Any assistance / additional info you can provide on a possible
configure bug would be very much appreciated.

VMS does not typically run the configure script. While it is possible with GNV (GNU on VMS) for Alpha and Itanium, not enough of GNV works on VAX to use it.

On VMS, configure is done by two DCL scripts. The first script, lib/curl_ntlm_core.c, is custom written to know what VMS can not figure out from reading the config.h.in file to generate a config_vms.h

The second script, config_h.com reads the config.h.in file and then scans the header files, shared libraries, and the configure script to build the curl_config.h with includes the config_vms.h as a last step.
The config_h.com is shared with multiple projects.

The file that processes config.h.in scans the configure script to guess the defaults for symbols that are only defined in the configure script and takes the first value assigned to that symbol. For curl that usually defaults to enabling the build option, so the first script has
to know which to override for a platform.

On my Alpha systems, the DCL scripts run more than an order of magnitude faster than the configure script, so that is what is normally used.

Regards,
-John
[email protected]
Personal Opinion Only
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to