summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-07-18 04:13:59 +0000
committerBruce Momjian2002-07-18 04:13:59 +0000
commit643365a69974c3568edee986fc068d93a70e0286 (patch)
tree56612eb0901a9728e8d8d5cdff468bbc19337736
parent1c15be7e4801a84c1c54db404aeb273d63b00235 (diff)
Move libc replacement files from src/backend/port to src/port.
-rwxr-xr-xconfigure30
-rw-r--r--configure.in30
-rw-r--r--src/backend/port/Makefile4
-rw-r--r--src/port/Makefile23
-rw-r--r--src/port/gethostname.c (renamed from src/backend/port/gethostname.c)0
-rw-r--r--src/port/getrusage.c (renamed from src/backend/port/getrusage.c)0
-rw-r--r--src/port/inet_aton.c152
-rw-r--r--src/port/inet_aton.h (renamed from src/backend/port/inet_aton.h)0
-rw-r--r--src/port/isinf.c (renamed from src/backend/port/isinf.c)0
-rw-r--r--src/port/memcmp.c (renamed from src/backend/port/memcmp.c)0
-rw-r--r--src/port/random.c (renamed from src/backend/port/random.c)0
-rw-r--r--src/port/snprintf.c (renamed from src/backend/port/snprintf.c)0
-rw-r--r--src/port/srandom.c (renamed from src/backend/port/srandom.c)0
-rw-r--r--src/port/strcasecmp.c (renamed from src/backend/port/strcasecmp.c)0
-rw-r--r--src/port/strdup.c (renamed from src/backend/port/strdup.c)0
-rw-r--r--src/port/strerror.c (renamed from src/backend/port/strerror.c)0
-rw-r--r--src/port/strtol.c (renamed from src/backend/port/strtol.c)0
-rw-r--r--src/port/strtoul.c (renamed from src/backend/port/strtoul.c)0
18 files changed, 206 insertions, 33 deletions
diff --git a/configure b/configure
index a4f9e82873..618763bd72 100755
--- a/configure
+++ b/configure
@@ -10745,7 +10745,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
fi
done
@@ -10823,7 +10823,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
fi
done
@@ -11178,7 +11178,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- GETRUSAGE='$(top_builddir)/src/backend/port/getrusage.o'
+ GETRUSAGE='$(top_builddir)/src/port/getrusage.o'
fi
done
@@ -11257,7 +11257,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- SRANDOM='$(top_builddir)/src/backend/port/srandom.o'
+ SRANDOM='$(top_builddir)/src/port/srandom.o'
fi
done
@@ -11336,7 +11336,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- GETHOSTNAME='$(top_builddir)/src/backend/port/gethostname.o'
+ GETHOSTNAME='$(top_builddir)/src/port/gethostname.o'
fi
done
@@ -11415,7 +11415,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- MISSING_RANDOM='$(top_builddir)/src/backend/port/random.o'
+ MISSING_RANDOM='$(top_builddir)/src/port/random.o'
fi
done
@@ -11494,7 +11494,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- INET_ATON='$(top_builddir)/src/backend/port/inet_aton.o'
+ INET_ATON='$(top_builddir)/src/port/inet_aton.o'
fi
done
@@ -11573,7 +11573,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- STRERROR='$(top_builddir)/src/backend/port/strerror.o'
+ STRERROR='$(top_builddir)/src/port/strerror.o'
fi
done
@@ -11652,7 +11652,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- STRDUP='$(top_builddir)/src/backend/port/strdup.o'
+ STRDUP='$(top_builddir)/src/port/strdup.o'
fi
done
@@ -11731,7 +11731,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- STRTOL='$(top_builddir)/src/backend/port/strtol.o'
+ STRTOL='$(top_builddir)/src/port/strtol.o'
fi
done
@@ -11810,7 +11810,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- STRTOUL='$(top_builddir)/src/backend/port/strtoul.o'
+ STRTOUL='$(top_builddir)/src/port/strtoul.o'
fi
done
@@ -11889,7 +11889,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
_ACEOF
else
- STRCASECMP='$(top_builddir)/src/backend/port/strcasecmp.o'
+ STRCASECMP='$(top_builddir)/src/port/strcasecmp.o'
fi
done
@@ -12772,7 +12772,7 @@ echo $ECHO_N "checking whether snprintf handles 'long long int' as %lld... $ECHO
echo "$as_me:$LINENO: result: assuming not on target machine" >&5
echo "${ECHO_T}assuming not on target machine" >&6
# Force usage of our own snprintf, since we cannot test foreign snprintf
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
else
@@ -12832,7 +12832,7 @@ echo $ECHO_N "checking whether snprintf handles 'long long int' as %qd... $ECHO_
echo "$as_me:$LINENO: result: assuming not on target machine" >&5
echo "${ECHO_T}assuming not on target machine" >&6
# Force usage of our own snprintf, since we cannot test foreign snprintf
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
else
@@ -12887,7 +12887,7 @@ cat conftest.$ac_ext >&5
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
# Force usage of our own snprintf, since system snprintf is broken
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
fi
diff --git a/configure.in b/configure.in
index fce41703de..f314e11ec4 100644
--- a/configure.in
+++ b/configure.in
@@ -871,8 +871,8 @@ fi
# have working "long long int" support -- see below.
SNPRINTF=''
-AC_CHECK_FUNCS(snprintf, [], SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o')
-AC_CHECK_FUNCS(vsnprintf, [], SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o')
+AC_CHECK_FUNCS(snprintf, [], SNPRINTF='$(top_builddir)/src/port/snprintf.o')
+AC_CHECK_FUNCS(vsnprintf, [], SNPRINTF='$(top_builddir)/src/port/snprintf.o')
AC_SUBST(SNPRINTF)
@@ -904,25 +904,25 @@ fi
AC_SUBST(ISINF)
-AC_CHECK_FUNCS(getrusage, [], GETRUSAGE='$(top_builddir)/src/backend/port/getrusage.o')
+AC_CHECK_FUNCS(getrusage, [], GETRUSAGE='$(top_builddir)/src/port/getrusage.o')
AC_SUBST(GETRUSAGE)
-AC_CHECK_FUNCS(srandom, [], SRANDOM='$(top_builddir)/src/backend/port/srandom.o')
+AC_CHECK_FUNCS(srandom, [], SRANDOM='$(top_builddir)/src/port/srandom.o')
AC_SUBST(SRANDOM)
-AC_CHECK_FUNCS(gethostname, [], GETHOSTNAME='$(top_builddir)/src/backend/port/gethostname.o')
+AC_CHECK_FUNCS(gethostname, [], GETHOSTNAME='$(top_builddir)/src/port/gethostname.o')
AC_SUBST(GETHOSTNAME)
-AC_CHECK_FUNCS(random, [], MISSING_RANDOM='$(top_builddir)/src/backend/port/random.o')
+AC_CHECK_FUNCS(random, [], MISSING_RANDOM='$(top_builddir)/src/port/random.o')
AC_SUBST(MISSING_RANDOM)
-AC_CHECK_FUNCS(inet_aton, [], INET_ATON='$(top_builddir)/src/backend/port/inet_aton.o')
+AC_CHECK_FUNCS(inet_aton, [], INET_ATON='$(top_builddir)/src/port/inet_aton.o')
AC_SUBST(INET_ATON)
-AC_CHECK_FUNCS(strerror, [], STRERROR='$(top_builddir)/src/backend/port/strerror.o')
+AC_CHECK_FUNCS(strerror, [], STRERROR='$(top_builddir)/src/port/strerror.o')
AC_SUBST(STRERROR)
-AC_CHECK_FUNCS(strdup, [], STRDUP='$(top_builddir)/src/backend/port/strdup.o')
+AC_CHECK_FUNCS(strdup, [], STRDUP='$(top_builddir)/src/port/strdup.o')
AC_SUBST(STRDUP)
-AC_CHECK_FUNCS(strtol, [], STRTOL='$(top_builddir)/src/backend/port/strtol.o')
+AC_CHECK_FUNCS(strtol, [], STRTOL='$(top_builddir)/src/port/strtol.o')
AC_SUBST(STRTOL)
-AC_CHECK_FUNCS(strtoul, [], STRTOUL='$(top_builddir)/src/backend/port/strtoul.o')
+AC_CHECK_FUNCS(strtoul, [], STRTOUL='$(top_builddir)/src/port/strtoul.o')
AC_SUBST(STRTOUL)
-AC_CHECK_FUNCS(strcasecmp, [], STRCASECMP='$(top_builddir)/src/backend/port/strcasecmp.o')
+AC_CHECK_FUNCS(strcasecmp, [], STRCASECMP='$(top_builddir)/src/port/strcasecmp.o')
AC_SUBST(STRCASECMP)
# Set path of dllinit.c for cygwin
@@ -1101,17 +1101,17 @@ main() {
],
[ AC_MSG_RESULT(no)
# Force usage of our own snprintf, since system snprintf is broken
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
],
[ AC_MSG_RESULT(assuming not on target machine)
# Force usage of our own snprintf, since we cannot test foreign snprintf
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
]) ],
[ AC_MSG_RESULT(assuming not on target machine)
# Force usage of our own snprintf, since we cannot test foreign snprintf
- SNPRINTF='$(top_builddir)/src/backend/port/snprintf.o'
+ SNPRINTF='$(top_builddir)/src/port/snprintf.o'
INT64_FORMAT='"%lld"'
])
else
diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile
index da07919a13..f17a462476 100644
--- a/src/backend/port/Makefile
+++ b/src/backend/port/Makefile
@@ -23,9 +23,7 @@ include $(top_builddir)/src/Makefile.global
OBJS=dynloader.o pg_sema.o pg_shmem.o
-OBJS+=$(DLLINIT) $(GETHOSTNAME) $(GETRUSAGE) $(INET_ATON) $(ISINF) $(MEMCMP) \
- $(MISSING_RANDOM) $(SNPRINTF) $(SRANDOM) $(STRCASECMP) $(STRDUP) \
- $(STRERROR) $(STRTOL) $(STRTOUL)
+OBJS+=$(DLLINIT)
OBJS+=$(TAS)
diff --git a/src/port/Makefile b/src/port/Makefile
new file mode 100644
index 0000000000..a2c1bdcc95
--- /dev/null
+++ b/src/port/Makefile
@@ -0,0 +1,23 @@
+#-------------------------------------------------------------------------
+#
+# Makefile--
+# Makefile for the port-specific subsystem of the backend
+#
+# These files are used in other directories for portability on systems
+# with broken/missing library files.
+
+# IDENTIFICATION
+# $Header$
+#
+#-------------------------------------------------------------------------
+
+subdir = src/port
+top_builddir = ../..
+include $(top_builddir)/src/Makefile.global
+
+OBJS=$(GETHOSTNAME) $(GETRUSAGE) $(INET_ATON) $(ISINF) $(MEMCMP) \
+ $(MISSING_RANDOM) $(SNPRINTF) $(SRANDOM) $(STRCASECMP) $(STRDUP) \
+ $(STRERROR) $(STRTOL) $(STRTOUL)
+
+distclean clean:
+ rm -f $(OBJS)
diff --git a/src/backend/port/gethostname.c b/src/port/gethostname.c
index e99568d07a..e99568d07a 100644
--- a/src/backend/port/gethostname.c
+++ b/src/port/gethostname.c
diff --git a/src/backend/port/getrusage.c b/src/port/getrusage.c
index 50646ba9f5..50646ba9f5 100644
--- a/src/backend/port/getrusage.c
+++ b/src/port/getrusage.c
diff --git a/src/port/inet_aton.c b/src/port/inet_aton.c
new file mode 100644
index 0000000000..fc52833819
--- /dev/null
+++ b/src/port/inet_aton.c
@@ -0,0 +1,152 @@
+/* $Id$
+ *
+ * This inet_aton() function was taken from the GNU C library and
+ * incorporated into Postgres for those systems which do not have this
+ * routine in their standard C libraries.
+ *
+ * The function was been extracted whole from the file inet_aton.c in
+ * Release 5.3.12 of the Linux C library, which is derived from the
+ * GNU C library, by Bryan Henderson in October 1996. The copyright
+ * notice from that file is below.
+ */
+
+/*
+ * Copyright (c) 1983, 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE. */
+
+#include "c.h"
+
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <ctype.h>
+
+/*
+ * Check whether "cp" is a valid ascii representation
+ * of an Internet address and convert to a binary address.
+ * Returns 1 if the address is valid, 0 if not.
+ * This replaces inet_addr, the return value from which
+ * cannot distinguish between failure and a local broadcast address.
+ */
+int
+inet_aton(const char *cp, struct in_addr * addr)
+{
+ unsigned int val;
+ int base,
+ n;
+ char c;
+ u_int parts[4];
+ u_int *pp = parts;
+
+ for (;;)
+ {
+ /*
+ * Collect number up to ``.''. Values are specified as for C:
+ * 0x=hex, 0=octal, other=decimal.
+ */
+ val = 0;
+ base = 10;
+ if (*cp == '0')
+ {
+ if (*++cp == 'x' || *cp == 'X')
+ base = 16, cp++;
+ else
+ base = 8;
+ }
+ while ((c = *cp) != '\0')
+ {
+ if (isdigit((unsigned char) c))
+ {
+ val = (val * base) + (c - '0');
+ cp++;
+ continue;
+ }
+ if (base == 16 && isxdigit((unsigned char) c))
+ {
+ val = (val << 4) +
+ (c + 10 - (islower((unsigned char) c) ? 'a' : 'A'));
+ cp++;
+ continue;
+ }
+ break;
+ }
+ if (*cp == '.')
+ {
+ /*
+ * Internet format: a.b.c.d a.b.c (with c treated as
+ * 16-bits) a.b (with b treated as 24 bits)
+ */
+ if (pp >= parts + 3 || val > 0xff)
+ return 0;
+ *pp++ = val, cp++;
+ }
+ else
+ break;
+ }
+
+ /*
+ * Check for trailing junk.
+ */
+ while (*cp)
+ if (!isspace((unsigned char) *cp++))
+ return 0;
+
+ /*
+ * Concoct the address according to the number of parts specified.
+ */
+ n = pp - parts + 1;
+ switch (n)
+ {
+
+ case 1: /* a -- 32 bits */
+ break;
+
+ case 2: /* a.b -- 8.24 bits */
+ if (val > 0xffffff)
+ return 0;
+ val |= parts[0] << 24;
+ break;
+
+ case 3: /* a.b.c -- 8.8.16 bits */
+ if (val > 0xffff)
+ return 0;
+ val |= (parts[0] << 24) | (parts[1] << 16);
+ break;
+
+ case 4: /* a.b.c.d -- 8.8.8.8 bits */
+ if (val > 0xff)
+ return 0;
+ val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
+ break;
+ }
+ if (addr)
+ addr->s_addr = htonl(val);
+ return 1;
+}
diff --git a/src/backend/port/inet_aton.h b/src/port/inet_aton.h
index 6c24073cea..6c24073cea 100644
--- a/src/backend/port/inet_aton.h
+++ b/src/port/inet_aton.h
diff --git a/src/backend/port/isinf.c b/src/port/isinf.c
index 459636b810..459636b810 100644
--- a/src/backend/port/isinf.c
+++ b/src/port/isinf.c
diff --git a/src/backend/port/memcmp.c b/src/port/memcmp.c
index abd6788cb7..abd6788cb7 100644
--- a/src/backend/port/memcmp.c
+++ b/src/port/memcmp.c
diff --git a/src/backend/port/random.c b/src/port/random.c
index e0d2421fc5..e0d2421fc5 100644
--- a/src/backend/port/random.c
+++ b/src/port/random.c
diff --git a/src/backend/port/snprintf.c b/src/port/snprintf.c
index 2495c73d93..2495c73d93 100644
--- a/src/backend/port/snprintf.c
+++ b/src/port/snprintf.c
diff --git a/src/backend/port/srandom.c b/src/port/srandom.c
index b7d7245dee..b7d7245dee 100644
--- a/src/backend/port/srandom.c
+++ b/src/port/srandom.c
diff --git a/src/backend/port/strcasecmp.c b/src/port/strcasecmp.c
index e4c853758e..e4c853758e 100644
--- a/src/backend/port/strcasecmp.c
+++ b/src/port/strcasecmp.c
diff --git a/src/backend/port/strdup.c b/src/port/strdup.c
index 38c03cb0db..38c03cb0db 100644
--- a/src/backend/port/strdup.c
+++ b/src/port/strdup.c
diff --git a/src/backend/port/strerror.c b/src/port/strerror.c
index 1e1c680b25..1e1c680b25 100644
--- a/src/backend/port/strerror.c
+++ b/src/port/strerror.c
diff --git a/src/backend/port/strtol.c b/src/port/strtol.c
index 526b070bd0..526b070bd0 100644
--- a/src/backend/port/strtol.c
+++ b/src/port/strtol.c
diff --git a/src/backend/port/strtoul.c b/src/port/strtoul.c
index 5cb7f7855a..5cb7f7855a 100644
--- a/src/backend/port/strtoul.c
+++ b/src/port/strtoul.c