From 5a91746b80fd41b9915574d8514f1d40e9cfd1b6 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Fri, 1 May 2009 12:39:40 +0000 Subject: David McCreedy's "TPF-platform specific changes to various files" patch --- TODO-RELEASE | 4 +- ares/ares_build.h.dist | 5 ++ include/curl/curlbuild.h.dist | 12 ++++ lib/config-tpf.h | 3 + lib/setup.h | 6 +- packages/Makefile.am | 2 +- packages/TPF/Makefile.am | 1 + packages/TPF/curl.mak | 128 +++++++++++++++++++++++++++++++++++++++ packages/TPF/maketpf.env_curl | 24 ++++++++ packages/TPF/maketpf.env_curllib | 55 +++++++++++++++++ src/main.c | 2 + src/setup.h | 13 ++-- tests/libtest/test.h | 4 ++ 13 files changed, 249 insertions(+), 10 deletions(-) create mode 100644 packages/TPF/Makefile.am create mode 100644 packages/TPF/curl.mak create mode 100644 packages/TPF/maketpf.env_curl create mode 100644 packages/TPF/maketpf.env_curllib diff --git a/TODO-RELEASE b/TODO-RELEASE index 565f8de23..a5771e550 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -14,6 +14,8 @@ To be addressed in 7.19.5 (planned release: May 2009) 230 - [PATCH] http.c fix to Curl_proxyCONNECT for non-ASCII platforms. 231 - [PATCH] TPF-platform specific changes to various files + - committed with minor changes + - awaiting feedback 232 - [PATCH] transfer.c fixes for CURL_DO_LINEEND_CONV and non-ASCII platform HTTP requests @@ -24,4 +26,4 @@ To be addressed in 7.19.5 (planned release: May 2009) 234 - [PATCH] Allow various Curl test suite tests to work on non-ASCII platforms -235 - \ No newline at end of file +235 - diff --git a/ares/ares_build.h.dist b/ares/ares_build.h.dist index 16a5cc5d8..77f13286b 100644 --- a/ares/ares_build.h.dist +++ b/ares/ares_build.h.dist @@ -196,6 +196,11 @@ # endif # endif +#elif defined(TPF) +# define CARES_SIZEOF_LONG 8 +# define CARES_TYPEOF_ARES_SOCKLEN_T FIXME +# define CARES_SIZEOF_ARES_SOCKLEN_T -1 + /* ===================================== */ /* KEEP MSVC THE PENULTIMATE ENTRY */ /* ===================================== */ diff --git a/include/curl/curlbuild.h.dist b/include/curl/curlbuild.h.dist index 62d0a1ec1..f60679006 100644 --- a/include/curl/curlbuild.h.dist +++ b/include/curl/curlbuild.h.dist @@ -478,6 +478,18 @@ # define CURL_TYPEOF_CURL_SOCKLEN_T FIXME # define CURL_SIZEOF_CURL_SOCKLEN_T -1 +#elif defined(TPF) +# define CURL_SIZEOF_LONG 8 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T FIXME +# define CURL_SIZEOF_CURL_SOCKLEN_T -1 + /* ===================================== */ /* KEEP MSVC THE PENULTIMATE ENTRY */ /* ===================================== */ diff --git a/lib/config-tpf.h b/lib/config-tpf.h index 107158ca8..e67467ba6 100644 --- a/lib/config-tpf.h +++ b/lib/config-tpf.h @@ -601,6 +601,9 @@ /* Define to the type of arg 5 for `select'. */ #define SELECT_TYPE_ARG5 (struct timeval *) +/* The size of an `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + /* The size of a `size_t', as computed by sizeof. */ #define SIZEOF_SIZE_T 8 diff --git a/lib/setup.h b/lib/setup.h index efab2ea6f..7316f1e45 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -65,9 +65,7 @@ #endif #ifdef TPF -#include "config-tpf.h" /* hand-modified TPF config.h */ -/* change which select is used for libcurl */ -#define select(a,b,c,d,e) tpf_select_libcurl(a,b,c,d,e) +# include "config-tpf.h" #endif #endif /* HAVE_CONFIG_H */ @@ -228,6 +226,8 @@ # include /* for select and ioctl*/ # include /* for in_addr_t definition */ # include /* for tpf_process_signals */ + /* change which select is used for libcurl */ +# define select(a,b,c,d,e) tpf_select_libcurl(a,b,c,d,e) #endif #include diff --git a/packages/Makefile.am b/packages/Makefile.am index 32f9c8b2a..3f731721e 100644 --- a/packages/Makefile.am +++ b/packages/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = Win32 Linux Solaris EPM DOS AIX vms +SUBDIRS = Win32 Linux Solaris EPM DOS AIX vms TPF EXTRA_DIST = README NetWare/get_ver.awk OS400/ccsidcurl.c OS400/ccsidcurl.h \ OS400/curl.inc.in OS400/initscript.sh OS400/makefile.sh OS400/make-include.sh \ diff --git a/packages/TPF/Makefile.am b/packages/TPF/Makefile.am new file mode 100644 index 000000000..225d3c7a0 --- /dev/null +++ b/packages/TPF/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = curl.mak maketpf.env_curl maketpf.env_curllib diff --git a/packages/TPF/curl.mak b/packages/TPF/curl.mak new file mode 100644 index 000000000..c865b391a --- /dev/null +++ b/packages/TPF/curl.mak @@ -0,0 +1,128 @@ +####################################################################### +# # +# MAKEFILE NAME..... curl.mak # +# # +# DESCRIPTION..... This is the makefile for libcurl. # +# # +####################################################################### + +APP := CURL + +TPF_RUN_TPFSOCHK := NO + +####################################################################### +# Define any additional libs needed to link +####################################################################### + +LIBS := CRYP CSSL + +####################################################################### +# Define the envs needed to build this module +####################################################################### + +maketpf_env := curllib +maketpf_env += openssl +maketpf_env += base_rt +maketpf_env += system + +####################################################################### +# Segments to be compiled with gcc compiler +####################################################################### +# +### lib directory: +C_SRC := base64.c +C_SRC += connect.c +C_SRC += content_encoding.c +C_SRC += cookie.c +C_SRC += curl_addrinfo.c +C_SRC += curl_sspi.c +C_SRC += dict.c +C_SRC += easy.c +C_SRC += escape.c +C_SRC += file.c +C_SRC += formdata.c +C_SRC += ftp.c +C_SRC += getenv.c +C_SRC += getinfo.c +C_SRC += gtls.c +C_SRC += hash.c +C_SRC += hostares.c +C_SRC += hostasyn.c +C_SRC += hostip.c +C_SRC += hostip4.c +C_SRC += hostip6.c +C_SRC += hostsyn.c +C_SRC += hostthre.c +C_SRC += http.c +C_SRC += http_chunks.c +C_SRC += http_digest.c +C_SRC += http_negotiate.c +C_SRC += http_ntlm.c +C_SRC += if2ip.c +C_SRC += inet_ntop.c +C_SRC += inet_pton.c +C_SRC += krb4.c +C_SRC += krb5.c +C_SRC += ldap.c +C_SRC += llist.c +C_SRC += md5.c +C_SRC += memdebug.c +C_SRC += mprintf.c +C_SRC += multi.c +C_SRC += netrc.c +C_SRC += nss.c +C_SRC += parsedate.c +C_SRC += progress.c +C_SRC += qssl.c +C_SRC += rawstr.c +C_SRC += security.c +C_SRC += select.c +C_SRC += sendf.c +C_SRC += share.c +C_SRC += slist.c +C_SRC += socks.c +C_SRC += socks_gssapi.c +C_SRC += socks_sspi.c +C_SRC += speedcheck.c +C_SRC += splay.c +C_SRC += ssh.c +C_SRC += ssluse.c +C_SRC += sslgen.c +C_SRC += strdup.c +C_SRC += strequal.c +C_SRC += strerror.c +C_SRC += strtok.c +C_SRC += strtoofft.c +C_SRC += telnet.c +C_SRC += tftp.c +C_SRC += timeval.c +C_SRC += transfer.c +C_SRC += url.c +C_SRC += version.c + +####################################################################### +# Additions and overrides for gcc compiler flags +####################################################################### + +# suppress expected warnings in the ported code: +CFLAGS_CURL += -w + +# use SSL +# (overrides Curl's lib/config-tpf.h file) +CFLAGS_CURL += -DUSE_OPENSSL +CFLAGS_CURL += -DUSE_SSLEAY + +# disable all protocols except FTP and HTTP +# (overrides Curl's lib/config-tpf.h file) +CFLAGS_CURL += -DCURL_DISABLE_DICT +CFLAGS_CURL += -DCURL_DISABLE_FILE +CFLAGS_CURL += -DCURL_DISABLE_LDAP +CFLAGS_CURL += -DCURL_DISABLE_TELNET +CFLAGS_CURL += -DCURL_DISABLE_TFTP + +####################################################################### +# Include the maketpf.rules +####################################################################### + +include maketpf.rules + diff --git a/packages/TPF/maketpf.env_curl b/packages/TPF/maketpf.env_curl new file mode 100644 index 000000000..fd9a90f28 --- /dev/null +++ b/packages/TPF/maketpf.env_curl @@ -0,0 +1,24 @@ +################################################################################ +################################################################################ +#env TPF CURL Includes +################################################################################ +################################################################################ + +################################################################################ +# Define the directories where the shared objects reside +################################################################################ +ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib) + +################################################################################ +# Set the include/header file directories +################################################################################ + +ROOTINCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include) +ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include/curl) + +################################################################################ +# Define "TPF" to enable TPF-specific code in Curl files. +################################################################################ + +CFLAGS_$(APP) += -D TPF + diff --git a/packages/TPF/maketpf.env_curllib b/packages/TPF/maketpf.env_curllib new file mode 100644 index 000000000..8a9ad9f0a --- /dev/null +++ b/packages/TPF/maketpf.env_curllib @@ -0,0 +1,55 @@ +################################################################################ +################################################################################ +#env TPF CURL Library Source and Output +################################################################################ +################################################################################ + +################################################################################ +# Define the directories where the shared objects reside +################################################################################ +ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib) + +################################################################################ +# Define the directories where the loadables (XXXXVV) are to be written +################################################################################ + +ROOTLOADDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/load) + +################################################################################ +# Define the location of the export files used by the LD postprocessor +# - currently expected that .exp files will also live in lib dir +################################################################################ +ROOTEXPDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/output/exp) + +################################################################################ +# Define the object file directory name +################################################################################ + +ROOTOBJDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/obj) + +################################################################################ +# Define the listing files directory name +################################################################################ + +ROOTLSTDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lst) + +################################################################################ +# Set the include/header file directories +################################################################################ + +ROOTINCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/lib) +ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include) +ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include/curl) + +################################################################################ +# Set the C file directories +################################################################################ + +ROOTCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/lib) + +################################################################################ +# Define "TPF" to enable TPF-specific code in Curl files. +################################################################################ + +CFLAGS_$(APP) += -D TPF + diff --git a/src/main.c b/src/main.c index 1efa3fe00..77de03b17 100644 --- a/src/main.c +++ b/src/main.c @@ -257,6 +257,8 @@ typedef enum { # if defined(_LP64) || defined(_LARGE_FILES) # define SIZEOF_OFF_T 8 # endif +# elif defined(TPF) +# define SIZEOF_OFF_T 8 # endif # ifndef SIZEOF_OFF_T # define SIZEOF_OFF_T 4 diff --git a/src/setup.h b/src/setup.h index b56407c64..1c74eb6d3 100644 --- a/src/setup.h +++ b/src/setup.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -64,10 +64,6 @@ #ifdef TPF #include "config-tpf.h" -/* change which select is used for the curl command line tool */ -#define select(a,b,c,d,e) tpf_select_bsd(a,b,c,d,e) -/* and turn off the progress meter */ -#define CONF_DEFAULT (0|CONF_NOPROGRESS) #endif #endif /* HAVE_CONFIG_H */ @@ -128,6 +124,13 @@ # endif #endif +#ifdef TPF +# include + /* change which select is used for the curl command line tool */ +# define select(a,b,c,d,e) tpf_select_bsd(a,b,c,d,e) + /* and turn off the progress meter */ +# define CONF_DEFAULT (0|CONF_NOPROGRESS) +#endif #include diff --git a/tests/libtest/test.h b/tests/libtest/test.h index b4541c6c4..c66fd61d7 100644 --- a/tests/libtest/test.h +++ b/tests/libtest/test.h @@ -33,6 +33,10 @@ #include #endif +#ifdef TPF +# include "select.h" +#endif + #define TEST_ERR_MAJOR_BAD 100 #define TEST_ERR_RUNS_FOREVER 99 -- cgit v1.2.3