aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-05-01 12:39:40 +0000
committerYang Tse <yangsita@gmail.com>2009-05-01 12:39:40 +0000
commit5a91746b80fd41b9915574d8514f1d40e9cfd1b6 (patch)
tree8142242b120e88a93f697f0cc8cd31b466730427
parentfdc091a8573d0c3aa260738384e5d9dbb31a38df (diff)
David McCreedy's "TPF-platform specific changes to various files" patch
-rw-r--r--TODO-RELEASE4
-rw-r--r--ares/ares_build.h.dist5
-rw-r--r--include/curl/curlbuild.h.dist12
-rw-r--r--lib/config-tpf.h3
-rw-r--r--lib/setup.h6
-rw-r--r--packages/Makefile.am2
-rw-r--r--packages/TPF/Makefile.am1
-rw-r--r--packages/TPF/curl.mak128
-rw-r--r--packages/TPF/maketpf.env_curl24
-rw-r--r--packages/TPF/maketpf.env_curllib55
-rw-r--r--src/main.c2
-rw-r--r--src/setup.h13
-rw-r--r--tests/libtest/test.h4
13 files changed, 249 insertions, 10 deletions
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 <sys/socket.h> /* for select and ioctl*/
# include <netdb.h> /* for in_addr_t definition */
# include <tpf/sysapi.h> /* 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 <stdio.h>
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, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, 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 <sys/socket.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
#include <stdio.h>
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 <unistd.h>
#endif
+#ifdef TPF
+# include "select.h"
+#endif
+
#define TEST_ERR_MAJOR_BAD 100
#define TEST_ERR_RUNS_FOREVER 99