VMS fixes needed to allow building.
Date: Mon, 31 Dec 2012 18:33:31 -0600
Some time since I last built curl on VMS, the build for VMS got broken.
I just got the GNV based build to complete. GNV is a port of the GNU
tool chain on VMS.
EAGLE> curl --version
curl 7.28.2-20121231 (alpha-dec-vms) libcurl/7.28.2-20121231
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz
I still need to get the MMS/MMK (Native VMS build tools) working again.
There is also a DCL based build procedure that was being maintained.
I am changing the VMS build to generate a config.h based on scanning the
system for both GNV and MMS/MMK based builds.
There are some things though that configure can not detect or set on VMS
that results in a helper file being needed, so lib/config-vms.h will
also be needed on VMS.
This patch to curl_config.h adds this file for VMS builds.
config-vms.h has been changed to contain the code to make getpwuid() and
getenv() work as expected with out needed VMS specific changes elsewhere
in the code.
config-vms.h also has to define some macros to compensate for some of
the VMS supplied shared libraries only supplying universal symbols in
uppercase. Shared libraries on VMS should supply the universal symbols
in both uppercase and exact case, so this code will work even when the
shared libraries are correctly built.
lib/getenv.c and lib/netrc.c no longer need any VMS specific code in them.
src/tool_homedir.c no longer needs any VMS specific code.
src/tool_vms.h needs to have vms_show as a global variable, and the
definitions need to be visible to tool_main and tool_operate.
tool_operate sets it and tool_main has to act on it.
What this special code does is stop the VMS DCL shell from repeating the
error message already written out by curl.
tool_main.c need to initialize vms_show to 0 before the special exit
code is called.
tool_operate.c needs to reset vms_show to 0 before each check to see the
message should be suppressed. This is because it should only apply to
the last message. I will probably want to look at this some more to see
if I can simplify it after I get the MMS/MMK build procedure working again.
src/tool_setup.h is modified to include tool_vms.h as both tool_main and
tool_operate both need it.
A number of support files are needed for the GNV based build that I will
need to submit.
A number of changes are needed for the MMS/MMK based build, which I will
be updating to detect the LDAP, Kerberos, ZLIB, and SSL shared images
and generate the appropriate curl_config.h and linker option file.
- text/plain attachment: config-vms_h.gdiff
- text/plain attachment: curl_setup_h.gdiff
- text/plain attachment: getenv_c.gdiff
- text/plain attachment: netrc_c.gdiff
- text/plain attachment: tool_homedir_c.gdiff
- text/plain attachment: tool_vms_h.gdiff
- text/plain attachment: tool_setup_h.gdiff
- text/plain attachment: tool_main_c.gdiff
- text/plain attachment: tool_operate_c.gdiff