Commit Graph

376 Commits

Author SHA1 Message Date
Noah Misch
c53f73879f Blacklist xlc 32-bit inlining.
Per a suggestion from Tom Lane.  Back-patch to 9.0 (all supported
versions).  While only 9.4 and up have code known to elicit this
compiler bug, we were disabling inlining by accident until commit
43d89a23d5.
2015-07-29 22:49:48 -04:00
Heikki Linnakangas
e97af6c8bf Replace our hacked version of ax_pthread.m4 with latest upstream version.
Our version was different from the upstream version in that we tried to use
all possible pthread-related flags that the compiler accepts, rather than
just the first one that works. That change was made in commit
e48322a6d6, to work-around a bug affecting GCC
versions 3.2 and below (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8888),
although we didn't realize that it was a GCC bug at the time. We hardly care
about that old GCC versions anymore, so we no longer need that workaround.

This fixes the macro for compilers that print warnings with the chosen
flags. That's pretty annoying on its own right, but it also inconspicuously
disabled thread-safety, because we refused to use any pthread-related flags
if the compiler produced warnings. Max Filippov reported that problem when
linking with uClibc and OpenSSL. The warnings-check was added because the
workaround for the GCC bug caused warnings otherwise, so it's no longer
needed either. We can just use the upstream version as is.

If you really want to compile with GCC version 3.2 or older, you can still
work-around it manually by setting PTHREAD_CFLAGS="-pthread -lpthread"
manually on the configure command line.

Backpatch to 9.5. I don't want to unnecessarily rock the boat on stable
branches, but 9.5 seems like fair game.
2015-07-08 20:36:06 +03:00
Heikki Linnakangas
a2edb023d0 Replace obsolete autoconf macros with their modern replacements.
AC_TRY_COMPILE(...) -> AC_COMPILE_IFELSE([AC_LANG_PROGRAM(...)])
AC_TRY_LINK(...) -> AC_LINK_IFELSE([AC_LANG_PROGRAM(...)])
AC_TRY_RUN(...) -> AC_RUN_IFELSE([AC_LANG_PROGRAM(...)])
AC_LANG_SAVE/RESTORE -> AC_LANG_PUSH/POP
AC_DECL_SYS_SIGLIST -> AC_CHECK_DECLS(...) (per snippet in autoconf manual)

Also use AC_LANG_SOURCE instead of AC_LANG_PROGRAM, where the main()
function is not needed.

With these changes, autoconf -Wall doesn't complain anymore.

Andreas Karlsson
2015-07-02 19:21:23 +03:00
Tom Lane
86832eb891 Remove configure check prohibiting threaded libpython on OpenBSD.
According to recent tests, this case now works fine, so there's no reason
to reject it anymore.  (Even if there are still some OpenBSD platforms
in the wild where it doesn't work, removing the check won't break any case
that worked before.)

We can actually remove the entire test that discovers whether libpython
is threaded, since without the OpenBSD case there's no need to know that
at all.

Per report from Davin Potts.  Back-patch to all active branches.
2015-05-26 22:14:59 -04:00
Andrew Dunstan
f707b53449 fix escaping of brackets for m4 broken in b6b2149e48 2015-05-03 09:37:15 -04:00
Andrew Dunstan
b6b2149e48 Fix python_includespec on Windows at configure time
By converting to using forward slashes at configure time we avoid
having to repeat the logic anywhere that this is needed, such as
in transforms modules for plpython.
2015-05-03 08:17:04 -04:00
Peter Eisentraut
d664a10f96 Move interpreter shared library detection to configure
For building PL/Perl, PL/Python, and PL/Tcl, we need a shared library of
libperl, libpython, and libtcl, respectively.  Previously, this was
checked in the makefiles, skipping the PL build with a warning if no
shared library was available.  Now this is checked in configure, with an
error if no shared library is available.

The previous situation arose because in the olden days, the configure
options --with-perl, --with-python, and --with-tcl controlled whether
frontend interfaces for those languages would be built.  The procedural
languages were added later, and shared libraries were often not
available in the beginning.  So it was decided skip the builds of the
procedural languages in those cases.  The frontend interfaces have since
been removed from the tree, and shared libraries are now available most
of the time, so that setup makes much less sense now.

Also, the new setup allows contrib modules and pgxs users to rely on the
respective PLs being available based on configure flags.
2015-05-01 21:38:21 -04:00
Heikki Linnakangas
936546dcbc Optimize pg_comp_crc32c_sse42 routine slightly, and also use it on x86.
Eliminate the separate 'len' variable from the loops, and also use the 4
byte instruction. This shaves off a few more cycles. Even though this
routine that uses the special SSE 4.2 instructions is much faster than a
generic routine, it's still a hot spot, so let's make it as fast as
possible.

Change the configure test to not test _mm_crc32_u64. That variant is only
available in the 64-bit x86-64 architecture, not in 32-bit x86. Modify
pg_comp_crc32c_sse42 so that it only uses _mm_crc32_u64 on x86-64. With
these changes, the SSE accelerated CRC-32C implementation can also be used
on 32-bit x86 systems.

This also fixes the 32-bit MSVC build.
2015-04-14 23:58:16 +03:00
Heikki Linnakangas
3dc2d62d04 Use Intel SSE 4.2 CRC instructions where available.
Modern x86 and x86-64 processors with SSE 4.2 support have special
instructions, crc32b and crc32q, for calculating CRC-32C. They greatly
speed up CRC calculation.

Whether the instructions can be used or not depends on the compiler and the
target architecture. If generation of SSE 4.2 instructions is allowed for
the target (-msse4.2 flag on gcc and clang), use them. If they are not
allowed by default, but the compiler supports the -msse4.2 flag to enable
them, compile just the CRC-32C function with -msse4.2 flag, and check at
runtime whether the processor we're running on supports it. If it doesn't,
fall back to the slicing-by-8 algorithm. (With the common defaults on
current operating systems, the runtime-check variant is what you get in
practice.)

Abhijit Menon-Sen, heavily modified by me, reviewed by Andres Freund.
2015-04-14 17:05:03 +03:00
Andres Freund
8122e1437e Add, optional, support for 128bit integers.
We will, for the foreseeable future, not expose 128 bit datatypes to
SQL. But being able to use 128bit math will allow us, in a later patch,
to use 128bit accumulators for some aggregates; leading to noticeable
speedups over using numeric.

So far we only detect a gcc/clang extension that supports 128bit math,
but no 128bit literals, and no *printf support. We might want to expand
this in the future to further compilers; if there are any that that
provide similar support.

Discussion: 544BB5F1.50709@proxel.se
Author: Andreas Karlsson, with significant editorializing by me
Reviewed-By: Peter Geoghegan, Oskari Saarenmaa
2015-03-20 10:26:17 +01:00
Heikki Linnakangas
025c02420d Speed up CRC calculation using slicing-by-8 algorithm.
This speeds up WAL generation and replay. The new algorithm is
significantly faster with large inputs, like full-page images or when
inserting wide rows. It is slower with tiny inputs, i.e. less than 10 bytes
or so, but the speedup with longer inputs more than make up for that. Even
small WAL records at least have 24 byte header in the front.

The output is identical to the current byte-at-a-time computation, so this
does not affect compatibility. The new algorithm is only used for the
CRC-32C variant, not the legacy version used in tsquery or the
"traditional" CRC-32 used in hstore and ltree. Those are not as performance
critical, and are usually only applied over small inputs, so it seems
better to not carry around the extra lookup tables to speed up those rare
cases.

Abhijit Menon-Sen
2015-02-10 10:54:40 +02:00
Tom Lane
8883bae33b Remove configure test for nonstandard variants of getpwuid_r().
We had code that supposed that some platforms might offer a nonstandard
version of getpwuid_r() with only four arguments.  However, the 5-argument
definition has been standardized at least since the Single Unix Spec v2,
which is our normal reference for what's portable across all Unix-oid
platforms.  (What's more, this wasn't the only pre-standardization version
of getpwuid_r(); my old HPUX 10.20 box has still another signature.)
So let's just get rid of the now-useless configure step.
2015-01-11 12:52:37 -05:00
Noah Misch
b779168ffe Detect PG_PRINTF_ATTRIBUTE automatically.
This eliminates gobs of "unrecognized format function type" warnings
under MinGW compilers predating GCC 4.4.
2014-11-23 09:34:03 -05:00
Andres Freund
b64d92f1a5 Add a basic atomic ops API abstracting away platform/architecture details.
Several upcoming performance/scalability improvements require atomic
operations. This new API avoids the need to splatter compiler and
architecture dependent code over all the locations employing atomic
ops.

For several of the potential usages it'd be problematic to maintain
both, a atomics using implementation and one using spinlocks or
similar. In all likelihood one of the implementations would not get
tested regularly under concurrency. To avoid that scenario the new API
provides a automatic fallback of atomic operations to spinlocks. All
properties of atomic operations are maintained. This fallback -
obviously - isn't as fast as just using atomic ops, but it's not bad
either. For one of the future users the atomics ontop spinlocks
implementation was actually slightly faster than the old purely
spinlock using implementation. That's important because it reduces the
fear of regressing older platforms when improving the scalability for
new ones.

The API, loosely modeled after the C11 atomics support, currently
provides 'atomic flags' and 32 bit unsigned integers. If the platform
efficiently supports atomic 64 bit unsigned integers those are also
provided.

To implement atomics support for a platform/architecture/compiler for
a type of atomics 32bit compare and exchange needs to be
implemented. If available and more efficient native support for flags,
32 bit atomic addition, and corresponding 64 bit operations may also
be provided. Additional useful atomic operations are implemented
generically ontop of these.

The implementation for various versions of gcc, msvc and sun studio have
been tested. Additional existing stub implementations for
* Intel icc
* HUPX acc
* IBM xlc
are included but have never been tested. These will likely require
fixes based on buildfarm and user feedback.

As atomic operations also require barriers for some operations the
existing barrier support has been moved into the atomics code.

Author: Andres Freund with contributions from Oskari Saarenmaa
Reviewed-By: Amit Kapila, Robert Haas, Heikki Linnakangas and Álvaro Herrera
Discussion: CA+TgmoYBW+ux5-8Ja=Mcyuy8=VXAnVRHp3Kess6Pn3DMXAPAEA@mail.gmail.com,
    20131015123303.GH5300@awork2.anarazel.de,
    20131028205522.GI20248@awork2.anarazel.de
2014-09-25 23:49:05 +02:00
Andres Freund
7e3f728353 Fix configure check for %z printf support after INT64_MODIFIER changes.
The PGAC_FUNC_SNPRINTF_SIZE_T_SUPPORT test was broken by
ce486056ec. Among others it made the UINT64_FORMAT macro to be
defined in c.h, instead of directly being defined by configure.

This lead to the replacement printf being used on all platforms for a
while. Which seems to work, because this was only used due to
different profiles ;)

Fix by relying on INT64_MODIFIER instead.
2014-09-18 09:59:10 +02:00
Heikki Linnakangas
ce486056ec Add #define INT64_MODIFIER for the printf length modifier for 64-bit ints.
We have had INT64_FORMAT and UINT64_FORMAT for a long time, but that's not
good enough if you want something more exotic, like "%20lld".

Abhijit Menon-Sen, per Andres Freund's suggestion.
2014-08-21 09:56:44 +03:00
Noah Misch
e565ff7553 Move PGAC_LDAP_SAFE to config/programs.m4.
This restores the style of keeping configure.in free of AC_DEFUN.  Per
gripe from Tom Lane.
2014-07-25 18:51:35 -04:00
Tom Lane
2e8ce9ae46 Remove some useless code in the configure script.
Almost ten years ago, commit e48322a6d6 broke
the logic in ACX_PTHREAD by looping through all the possible flags rather
than stopping with the first one that would work.  This meant that
$acx_pthread_ok was no longer meaningful after the loop; it would usually
be "no", whether or not we'd found working thread flags.  The reason nobody
noticed is that Postgres doesn't actually use any of the symbols set up
by the code after the loop.  Rather than complicate things some more to
make it work as designed, let's just remove all that dead code, and thereby
save a few cycles in each configure run.
2014-07-01 17:51:53 -04:00
Peter Eisentraut
55fb759ab3 Silence Bison deprecation warnings
Bison >=3.0 issues warnings about

    %name-prefix="base_yy"

instead of the now preferred

    %name-prefix "base_yy"

but the latter doesn't work with Bison 2.3 or less.  So for now we
silence the deprecation warnings.
2014-06-03 22:36:35 -04:00
Tom Lane
20561acf93 On OS X, link libpython normally, ignoring the "framework" framework.
As of Xcode 5.0, Apple isn't including the Python framework as part of the
SDK-level files, which means that linking to it might fail depending on
whether Xcode thinks you've selected a specific SDK version.  According to
their Tech Note 2328, they've basically deprecated the framework method of
linking to libpython and are telling people to link to the shared library
normally.  (I'm pretty sure this is in direct contradiction to the advice
they were giving a few years ago, but whatever.)  Testing says that this
approach works fine at least as far back as OS X 10.4.11, so let's just
rip out the framework special case entirely.  We do still need a special
case to decide that OS X provides a shared library at all, unfortunately
(I wonder why the distutils check doesn't work ...).  But this is still
less of a special case than before, so it's fine.

Back-patch to all supported branches, since we'll doubtless be hearing
about this more as more people update to recent Xcode.
2014-05-30 18:19:06 -04:00
Tom Lane
eaba54c20c Accept tcl 8.6 in configure's probe for tclsh.
Usually the search would find plain "tclsh" without any trouble,
but some installations might only have the version-numbered flavor
of that program.

No compatibility problems have been reported with 8.6, so we might
as well back-patch this to all active branches.

Christoph Berg
2014-05-10 10:48:01 -04:00
Tom Lane
7fa5bc43aa Update config.guess and config.sub 2014-05-10 10:33:34 -04:00
Bruce Momjian
0a78320057 pgindent run for 9.4
This includes removing tabs after periods in C comments, which was
applied to back branches, so this change should not effect backpatching.
2014-05-06 12:12:18 -04:00
Tom Lane
4c8aa8b5ae Fix "quiet inline" configure test for newer clang compilers.
This test used to just define an unused static inline function and check
whether that causes a warning.  But newer clang versions warn about
unused static inline functions when defined inside a .c file, but not
when defined in an included header, which is the case we care about.
Change the test to cope.

Andres Freund
2014-05-01 16:16:36 -04:00
Tom Lane
ac4ef637ad Allow use of "z" flag in our printf calls, and use it where appropriate.
Since C99, it's been standard for printf and friends to accept a "z" size
modifier, meaning "whatever size size_t has".  Up to now we've generally
dealt with printing size_t values by explicitly casting them to unsigned
long and using the "l" modifier; but this is really the wrong thing on
platforms where pointers are wider than longs (such as Win64).  So let's
start using "z" instead.  To ensure we can do that on all platforms, teach
src/port/snprintf.c to understand "z", and add a configure test to force
use of that implementation when the platform's version doesn't handle "z".

Having done that, modify a bunch of places that were using the
unsigned-long hack to use "z" instead.  This patch doesn't pretend to have
gotten everyplace that could benefit, but it catches many of them.  I made
an effort in particular to ensure that all uses of the same error message
text were updated together, so as not to increase the number of
translatable strings.

It's possible that this change will result in format-string warnings from
pre-C99 compilers.  We might have to reconsider if there are any popular
compilers that will warn about this; but let's start by seeing what the
buildfarm thinks.

Andres Freund, with a little additional work by me
2014-01-23 17:18:33 -05:00
Peter Eisentraut
5dd41f3574 Remove maintainer-check target, fold into normal build
make maintainer-check was obscure and rarely called in practice, and
many breakages were missed.  Fold everything that make maintainer-check
used to do into the normal build.  Specifically:

- Call duplicate_oids when genbki.pl is called.

- Check for tabs in SGML files when the documentation is built.

- Run msgfmt with the -c option during the regular build.  Add an
  additional configure check to see whether we are using the GNU
  version.  (make maintainer-check probably used to fail with non-GNU
  msgfmt.)

Keep maintainer-check as around as phony target for the time being in
case anyone is calling it.  But it won't do anything anymore.
2013-10-10 20:11:56 -04:00
Tom Lane
5242fefb47 Be consistent about #define'ing configure symbols as "1" not empty.
This is just neatnik-ism, since all the tests in the code are #ifdefs,
but we shouldn't specify symbols as "Define to 1 ..." and then not
actually define them that way.
2013-06-15 14:11:43 -04:00
Simon Riggs
fdea2530bd Compiler optimizations for page checksum code.
Ants Aasma and Jeff Davis
2013-04-30 06:59:26 +01:00
Peter Eisentraut
b53b603c91 Update config.guess and config.sub 2013-04-26 22:13:03 -04:00
Tom Lane
b853eb9718 Improve handling of ereport(ERROR) and elog(ERROR).
In commit 71450d7fd6, we added code to inform
suitably-intelligent compilers that ereport() doesn't return if the elevel
is ERROR or higher.  This patch extends that to elog(), and also fixes a
double-evaluation hazard that the previous commit created in ereport(),
as well as reducing the emitted code size.

The elog() improvement requires the compiler to support __VA_ARGS__, which
should be available in just about anything nowadays since it's required by
C99.  But our minimum language baseline is still C89, so add a configure
test for that.

The previous commit assumed that ereport's elevel could be evaluated twice,
which isn't terribly safe --- there are already counterexamples in xlog.c.
On compilers that have __builtin_constant_p, we can use that to protect the
second test, since there's no possible optimization gain if the compiler
doesn't know the value of elevel.  Otherwise, use a local variable inside
the macros to prevent double evaluation.  The local-variable solution is
inferior because (a) it leads to useless code being emitted when elevel
isn't constant, and (b) it increases the optimization level needed for the
compiler to recognize that subsequent code is unreachable.  But it seems
better than not teaching non-gcc compilers about unreachability at all.

Lastly, if the compiler has __builtin_unreachable(), we can use that
instead of abort(), resulting in a noticeable code savings since no
function call is actually emitted.  However, it seems wise to do this only
in non-assert builds.  In an assert build, continue to use abort(), so that
the behavior will be predictable and debuggable if the "impossible"
happens.

These changes involve making the ereport and elog macros emit do-while
statement blocks not just expressions, which forces small changes in
a few call sites.

Andres Freund, Tom Lane, Heikki Linnakangas
2013-01-13 18:40:09 -05:00
Andrew Dunstan
7fb97ecd13 Detect Windows perl linkage parameters in configure script.
This means we can now construct a configure test for the library
presence. Previously these parameters were only figured out at
build time in plperl's GnuMakefile.
2013-01-09 17:49:23 -05:00
Tom Lane
5aec9ccafe Fix plpython build on older versions of OS X.
Pre-Lion versions of Apple's linker don't allow space between -F and its
argument.  (Snow Leopard is nice enough to tell you that in so many words,
but older versions just fail with very obscure link errors, as seen on
buildfarm member locust for instance.)  Oversight in commit
fc8745070a.
2013-01-06 15:49:53 -05:00
Peter Eisentraut
fc8745070a PL/Python: Make build on OS X more flexible
The PL/Python build on OS X was previously hardcoded to use the system
installation of Python, ignoring whatever was specified to configure.
Except that it would use the header files from configure, which could
lead to mismatches.  It was not possible to build against a custom
Python installation.

Now, we check in configure how the specified Python installation was
built and use that, supporting framework and non-framework builds.
2013-01-05 08:56:14 -05:00
Alvaro Herrera
f46baf601d Rename USE_INLINE to PG_USE_INLINE
The former name was too likely to conflict with symbols from external
headers; and, as seen in recent buildfarm failures in member spoonbill,
it has now happened at least in plpython.
2012-10-09 11:17:33 -03:00
Tom Lane
ea473fb2de Add infrastructure for compile-time assertions about variable types.
Currently, the macros only work with fairly recent gcc versions, but there
is room to expand them to other compilers that have comparable features.

Heavily revised and autoconfiscated version of a patch by Andres Freund.
2012-09-30 14:38:31 -04:00
Peter Eisentraut
9cffb187d8 Also check for Python platform-specific include directory
Python can be built to have two separate include directories: one for
platform-independent files and one for platform-specific files.  So
far, this has apparently never mattered for a PL/Python build.  But
with the new multi-arch Python packages in Debian and Ubuntu, this is
becoming the standard configuration on these platforms, so we must
check these directories separately to be able to build there.

Also add a bit of reporting in configure to be able to see better what
is going on with this.
2012-08-29 23:05:35 -04:00
Peter Eisentraut
b748d8f280 Fix install-strip on Mac OS X
There was a hack put into install-sh to call strip with the correct
options on Mac OS X.  But that never worked, because configure
disabled stripping on that platform altogether.  So remove that dead
code, and while we're at it, update install-sh to the latest upstream
source (from Automake).

Instead, set up the right strip options in programs.m4, so this now
actually works the way it was originally intended.
2012-08-21 23:42:43 -04:00
Tom Lane
f667747b6d Put back AC_REQUIRE([AC_STRUCT_TM]).
The BSD-ish members of the buildfarm all seem to think removing this
was a bad idea.  It looks to me like it resulted in omitting the system
header inclusion necessary to detect the fields of struct tm correctly.
2012-05-14 23:06:48 -04:00
Peter Eisentraut
ff4628f37a Remove unused AC_DEFINE symbols
ENABLE_DTRACE            unused as of a7b7b07af3
HAVE_ERR_SET_MARK        unused as of 4ed4b6c54e
HAVE_FCVT                unused as of 4553e1d80f
HAVE_STRUCT_SOCKADDR_UN  unused as of b4cea00a1f
HAVE_SYSCONF             unused as of f83356c7f5
TM_IN_SYS_TIME           never used, obsolescent per Autoconf documentation
2012-05-14 22:51:21 +03:00
Peter Eisentraut
cf09230e19 Update config.guess and config.sub 2012-05-08 20:46:13 +03:00
Tom Lane
f2386d7136 Fix configure's search for collateindex.pl.
PGAC_PATH_COLLATEINDEX supposed that it could use AC_PATH_PROGS to search
for collateindex.pl, but that macro will only accept files that are marked
executable, and at least some DocBook installations don't mark the script
executable (a case the docs Makefile was already prepared for).  Accept the
script if it's present and readable in $DOCBOOKSTYLE/bin, and otherwise
search the PATH as before.

Having fixed that up, we don't need the fallback case that was in the docs
Makefile, and instead can throw an understandable error if configure didn't
find the script.  Per recent trouble report from John Lumby.
2012-03-22 00:46:03 -04:00
Tom Lane
c0efc2c2ab Don't reject threaded Python on FreeBSD.
According to Chris Rees, this has worked for awhile, and the current
FreeBSD port is removing the test anyway.
2012-02-20 16:21:28 -05:00
Andrew Dunstan
1a0c76c32f Enable compiling with the mingw-w64 32 bit compiler.
Original patch by Lars Kanis, reviewed by Nishiyama Tomoaki and tweaked some by me.

This compiler, or at least the latest version of it, is currently broken, and
only passes the regression tests if built with -O0.
2011-12-10 15:35:41 -05:00
Peter Eisentraut
80ac853f05 python.m4: Remove useless "import string" calls
They have been unneeded since the use of the string module has been
removed in a65ed83f8a.
2011-11-29 06:50:11 +02:00
Peter Eisentraut
f8c2029ef0 Improve detection of Python 3.2 installations
Because of ABI tagging, the library version number might no longer be
exactly the Python version number, so do extra lookups.  This affects
installations without a shared library, such as ActiveState's
installer.

Also update the way to detect the location of the 'config' directory,
which can also be versioned.

Ashesh Vashi
2011-08-18 14:43:16 +03:00
Tom Lane
44404f3945 Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible.
This is reported to be necessary on some versions of that OS.  In service
of this, cause PGAC_PROG_CC_CFLAGS_OPT to reject switches that result in
compiler warnings, since on yet other versions of that OS, the switch does
nothing except provoke a warning.

Report and patch by Ibrar Ahmed, further tweaking by me.
2011-05-26 17:29:33 -04:00
Peter Eisentraut
8d89549380 Update config.guess and config.sub 2011-05-19 22:14:56 +03:00
Peter Eisentraut
f005384532 Better support for thread-support flag detection with clang
When testing the stderr produced by various thread-support flags, also
run a compilation in addition to a link, because clang warns on
certain flags when compiling but not when linking.
2011-02-16 23:15:54 +02:00
Peter Eisentraut
414c5a2ea6 Per-column collation support
This adds collation support for columns and domains, a COLLATE clause
to override it per expression, and B-tree index support.

Peter Eisentraut
reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch
2011-02-08 23:04:18 +02:00
Andrew Dunstan
91812df4ed Enable building with the Mingw64 compiler.
This can be used to build 64 bit Windows binaries, not only on 64 bit
Windows but on supported cross-compiling hosts including 32 bit Windows,
Cygwin, Darwin and Linux.
2011-01-30 19:56:46 -05:00
Peter Eisentraut
fc946c39ae Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
Alvaro Herrera
9350824e70 find -path is not portable, so use grep -v instead.
Per previous failure of buildfarm member koi (which is no longer
failing, alas).
2010-10-25 10:04:00 -03:00
Peter Eisentraut
804a786c95 Add/fix caching on some configure checks 2010-09-29 22:38:04 +03:00
Alvaro Herrera
fde5ce4fe2 Prevent doc/src/sgml subdirs from being created, instead of deleting
them after the fact.  This is a more elegant fix for bug #5595.
2010-09-24 01:32:52 -04:00
Tom Lane
651377933e Fix remaining stray references to CVS.
These are just cosmetic and don't seem worth back-patching far.
I put them into 9.0 just because it was trivial to do so.
2010-09-22 19:51:39 -04:00
Magnus Hagander
9f2e211386 Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
Tom Lane
39ce62b110 Don't auto-create the subdirectories holding built documentation in a VPATH
build tree.  If we actually build the docs in the VPATH tree, those dirs
will get created then; but if they're present and empty, they capture the
vpathsearch searches in "make install", preventing installation of prebuilt
docs that might exist in the source tree.  Per bug #5595 from Dmtiriy Igrishin.
Fix based on idea from Peter Eisentraut.
2010-08-26 18:34:37 +00:00
Peter Eisentraut
3f11971916 Remove extra newlines at end and beginning of files, add missing newlines
at end of files.
2010-08-19 05:57:36 +00:00
Michael Meskes
29259531c7 Replace self written 'long long int' configure test by standard 'AC_TYPE_LONG_LONG_INT' macro call. 2010-05-25 17:28:20 +00:00
Michael Meskes
555a02f910 Added a configure test for "long long" datatypes. So far this is only used in ecpg and replaces the old test that was kind of hackish. 2010-05-25 14:32:55 +00:00
Peter Eisentraut
087b393dab Update config.guess and config.sub 2010-05-12 16:50:57 +00:00
Peter Eisentraut
7e8a60b7c5 Don't link PL/Python against LOCALMODLIBS
This variable is apparently only for Python internally.  In newer releases
of Python this variable pulls in more and more libraries that users are
less likely to have, leading to potential build failures.
2010-03-17 22:02:44 +00:00
Tom Lane
dc43e2f540 Fix configure's regexp for extracting the Perl version number from perl -v
output.  Per bug #5339, Perl 5.11 has changed the format of that output
enough to break the previous coding.

Alex Hunsaker
2010-02-23 18:35:07 +00:00
Bruce Momjian
b4689bfb00 Revert configure warning to use "official distribution". 2010-02-22 21:16:50 +00:00
Bruce Momjian
6a0b6421e2 Use the term "bundled distribution" instead of "official distribution" in
configure warnings.
2010-02-22 18:02:06 +00:00
Tom Lane
e08ab7c312 Support inlining various small performance-critical functions on non-GCC
compilers, by applying a configure check to see if the compiler will accept
an unreferenced "static inline foo ..." function without warnings.  It is
believed that such warnings are the only reason not to declare inlined
functions in headers, if the compiler understands "inline" at all.

Kurt Harriman
2010-02-13 02:34:16 +00:00
Tom Lane
55233c3382 Make configure check the version of Perl we're building with, and reject
versions < 5.8.  Also, if there's no Perl, emit a warning informing the
user that he won't be able to build from a CVS pull.  This is exactly the
same treatment we give Bison and Perl, and for the same reasons.
2010-01-07 01:41:11 +00:00
Peter Eisentraut
dd4cd55c15 Python 3 support in PL/Python
Behaves more or less unchanged compared to Python 2, but the new language
variant is called plpython3u.  Documentation describing the naming scheme
is included.
2009-12-15 22:59:55 +00:00
Peter Eisentraut
de7ee9e2e9 In the configure check for the Python distutils module, use a less obscure
shell construct to hide away the stderr output.  Python 3.1 actually core
dumps on the current invocation (http://bugs.python.org/issue7111), but the
new version also has the more general advantage of saving the error message
in config.log for analysis.
2009-10-14 21:59:15 +00:00
Tom Lane
d69a419e68 Remove any -arch switches given in ExtUtils::Embed's ldopts from our
perl_embed_ldflags setting.  On OS X it seems that ExtUtils::Embed is
trying to force a universal binary to be built, but you need to specify
that a lot further upstream if you want Postgres built that way; the only
result of including -arch in perl_embed_ldflags is some warnings at the
plperl.so link step.  Per my complaint and Jan Otto's suggestion.
2009-09-08 18:15:55 +00:00
Peter Eisentraut
9d182ef002 Update of install-sh, mkinstalldirs, and associated configury
Update install-sh to that from Autoconf 2.63, plus our Darwin-specific
changes (which I simplified a bit).  install-sh is now able to install
multiple files in one run, so we could simplify our makefiles sometime.

install-sh also now has a -d option to create directories, so we don't need
mkinstalldirs anymore.

Use AC_PROG_MKDIR_P in configure.in, so we can use mkdir -p when available
instead of install-sh -d.  For consistency with the rest of the world,
the corresponding make variable has been renamed from $(mkinstalldirs) to
$(MKDIR_P).
2009-08-26 22:24:44 +00:00
Peter Eisentraut
c29d7f02c2 Use DocBook XSL stylesheets for man page building
This switches the man page building process to use the DocBook XSL stylesheet
toolchain.  The previous targets for Docbook2X are removed. configure has been
updated to look for the new tools.  The Documentation appendix contains the
new build instructions.  There are also a few isolated tweaks in the
documentation to improve places that came out strangely in the man pages.
2009-08-04 22:04:37 +00:00
Tom Lane
dcc9d37331 Make the configure messages rejecting old bison and flex versions include
the full path and version of the program being rejected.
2009-07-13 05:36:53 +00:00
Tom Lane
da4b900176 Advance the minimum required version of "flex" from 2.5.4 to 2.5.31, and
update documentation accordingly.  This is required in order to have support
for a reentrant scanner.  I'm committing this bit separately in order to have
an easy reference if we later decide to make the minimum something different
(like 2.5.33).
2009-07-13 01:51:56 +00:00
Peter Eisentraut
7cc514ac65 Upgrade to Autoconf 2.63
This upgrades the configure infrastructure to the latest Autoconf version.
Some notable news are:
 - The workaround for the broken fseeko() test is gone.
 - Checking for unknown options is now provided by Autoconf itself.
 - Fixes for Mac OS X
2009-07-02 18:55:40 +00:00
Tom Lane
8d355d7bbf Fix the makefiles to fail cleanly if Perl is needed but not present. This
used to work as intended, but got broken some time ago (a quoted empty string
is not an empty string), and got broken some more by the changes to generate
ecpg's preproc.y automatically.  Given all the unprotected uses of $(PERL)
elsewhere, it seems best to make use of the $(missing) script rather than
trying to ensure each such use is protected individually.  Also fix various
bits of documentation that omitted to mention Perl as a requirement for
building from a CVS pull.  Per a complaint from Robert Haas.
2009-06-23 03:46:00 +00:00
Peter Eisentraut
fefe1ae730 Update config.guess and config.sub 2009-04-09 21:33:02 +00:00
Andrew Dunstan
b5d23f28ce allow alternative names for tclsh used on Windows 2009-02-03 01:24:57 +00:00
Peter Eisentraut
a65ed83f8a Allow configure to deal with Python 3.0. Changes were:
print foo --> print(foo)
string.join(...) --> ' '.join(...)

These changes are backward compatible.

The actual plpython module appears to need significant updates to support
Python 3.0, though.  This change just relieves interested developers from
having to deal with Autoconf.
2009-01-04 00:54:15 +00:00
Peter Eisentraut
f900afff3e configure check for docbook2man program, used in the new XML-based man
page build target.  This covers from-source, Debian, and Fedora
installation variants.
2008-11-26 11:26:54 +00:00
Andrew Dunstan
466368b8d0 Detect and error out on inability to get proper linkage information required for plperl, usually due to absence of perl ExtUtils::Embed module. Backpatch as far as 8.1. 2008-11-12 00:00:05 +00:00
Peter Eisentraut
f7ef575fb7 Use Autoconf provided AS_HELP_STRING macro to automatically format and
align strings in the --help output.  Do this through our abstraction layer
to eliminate redundancy and randomness in configure.in.
2008-10-29 09:27:24 +00:00
Peter Eisentraut
579d9a5201 Add DSSSL stylesheet location for Mac OS X/Fink installation. 2008-09-05 09:37:37 +00:00
Peter Eisentraut
7c31742a07 Remove all traces that suggest that a non-Bison yacc might be supported, and
change build system to use only Bison.  Simplify build rules, make file names
uniform.  Don't build the token table header file where it is not needed.
2008-08-29 13:02:33 +00:00
Peter Eisentraut
559cb873d3 Autoconf 2.62 will require cache variables to contain "_cv_". Fix our few
noncomplying cases to be future-proof.
2008-08-21 13:53:28 +00:00
Alvaro Herrera
49f001d81e Cope with Tcl versions that do not create a tclsh symlink to the version-
numbered program.  Per persistent buildfarm failures.

Tom Lane
2008-08-01 13:50:52 +00:00
Peter Eisentraut
509303a597 Abort if Tcl support was configured and no tcl shell was found.
This is required because the value is substituted into the pltcl_*mod
scripts.
2008-07-23 17:07:50 +00:00
Tom Lane
623f8a0969 Modify the recently-added probe for -Wl,--as-needed some more, because RHEL-4
vintage Linux is even more broken than we realized: a link to libreadline
will succeed, and fail only at runtime.  It seems that an AC_TRY_RUN test
is the only reliable way to check whether this is really safe.  Per report
from Tatsuo.
2008-06-27 00:36:16 +00:00
Tom Lane
7e8374a3e0 Require bind_textdomain_codeset() not just gettext() to enable NLS support.
GNU gettext before 0.10.36 does not have that function, and is generally too
incomplete to be usable.
2008-05-27 22:18:04 +00:00
Tom Lane
1ac1bea076 Adjust -Wl,--asneeded test to avoid using the switch if it breaks
libreadline.  What we will do for compatibility :-(
2008-05-20 03:30:22 +00:00
Tom Lane
2dad10f467 Make another try at using -Wl,--as-needed to suppress linking of unnecessary
shared libraries.  We've tried this before and had problems with libreadline
not linking properly on some platforms, but that seems to be a libreadline
bug that may have been fixed by now.  In any case, it's early enough in the
8.4 devel cycle that we can afford to have some transient breakage while
we work out any portability problems.

On Darwin, we try -Wl,-dead_strip_dylibs, which seems to be the equivalent
incantation there.
2008-05-18 20:13:12 +00:00
Alvaro Herrera
7861d72ea2 Modify the float4 datatype to be pass-by-val. Along the way, remove the last
uses of the long-deprecated float32 in contrib/seg; the definitions themselves
are still there, but no longer used.  fmgr/README updated to match.

I added a CREATE FUNCTION to account for existing seg_center() code in seg.c
too, and some tests for it and the neighbor functions.  At the same time,
remove checks for NULL which are not needed (because the functions are declared
STRICT).

I had to do some adjustments to contrib's btree_gist too.  The choices for
representation there are not ideal for changing the underlying types :-(

Original patch by Zoltan Boszormenyi, with some adjustments by me.
2008-04-18 18:43:09 +00:00
Peter Eisentraut
95ea526e21 Backport fixed AC_FUNC_FSEEKO 2008-02-19 18:02:30 +00:00
Peter Eisentraut
b120382353 Upgrade to Autoconf 2.61:
- Change configure.in to use Autoconf 2.61 and update generated files.
- Update build system and documentation to support now directory variables
  offered by Autoconf 2.61.
- Replace usages of PGAC_CHECK_ALIGNOF by AC_CHECK_ALIGNOF, now available
  in Autoconf 2.61.
- Drop our patched version of AC_C_INLINE, as Autoconf now has the change.
2008-02-17 16:36:43 +00:00
Peter Eisentraut
7a550cb95c Update config.guess and config.sub 2007-11-15 20:21:05 +00:00
Bruce Momjian
4ea3210a04 Again properly fix Darwin strip. 2007-11-13 18:50:54 +00:00
Bruce Momjian
a4840c82da Modify OS/X Darin test to actually work, (no $template) 2007-11-13 18:15:01 +00:00
Bruce Momjian
58ac0f92c0 Use strip -x on OS/X-darwin because non-"-x" causes link problems:
http://archives.postgresql.org/pgsql-hackers/2007-10/msg01470.php
2007-11-10 16:15:23 +00:00
Tom Lane
faa1179678 Fix search for SGML stylesheets to include the place where Gentoo keeps them.
Brendan Jurd
2007-08-09 02:33:58 +00:00
Tom Lane
177be3f9bb Adjust configure script to print the bison and flex versions in use.
Minor rearrangements to make a few tests in a more logical order.
2007-07-19 17:15:30 +00:00
Tom Lane
746330e2d0 Better solution to the tr problem: use sed instead. Per Martijn and Andrew. 2006-11-30 22:21:24 +00:00
Tom Lane
7ac9d45f49 Improve portability of 'tr' invocation in PGAC_ARG_CHECK. Reported by
Olivier Prenant, fixed by Peter.
2006-11-30 21:44:12 +00:00
Peter Eisentraut
0b9f93e6b0 Code the unknown options check without using m4 diversions. Otherwise this
code relies on the checking macro actually being called at the end, or the
automatic undiversion will produce garbage.  These sort of implicit
side-effects undermine the modularity of the macros and happen to break the
ODBC driver which makes use of them.

Also put the warnings at the very end of configure, so there is an even
better chance of seeing them.
2006-10-30 22:15:04 +00:00
Peter Eisentraut
6ab23dabf5 Punt when trying to build with threaded Python on FreeBSD.
Also cut back on excessive use of *** to decorate configure error messages.
If it's an error message, you are sure to see it without any decoration.
2006-10-16 17:24:54 +00:00
Peter Eisentraut
e1fdd2263f Make unknown-option-warning code more portable. echo -n is not portable,
and neither is "|" or "\|" in basic regular expressions.
2006-10-13 20:23:07 +00:00
Peter Eisentraut
a64f208833 Updated config.guess and config.sub 2006-10-07 21:05:59 +00:00
Alvaro Herrera
5c83b510be Fix typo. 2006-08-11 18:51:50 +00:00
Bruce Momjian
382808612c Emit warnings for unknown configure options.
Martijn van Oosterhout
2006-05-30 13:52:25 +00:00
Bruce Momjian
5d9062f939 Avoid duplicate definition of LOCALEDIR in pg_config.h, already defined
in port/pg_config_paths.h.
2006-05-23 19:28:45 +00:00
Bruce Momjian
f3d99d160d Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
Peter Eisentraut
a29c04a541 Allow installation into directories containing spaces in the name. 2005-12-09 21:19:36 +00:00
Bruce Momjian
10e3d224e0 Add configure flag to allow libedit to be preferred over GNU readline:
--with-libedit-preferred  prefer BSD Libedit over GNU Readline
2005-12-04 03:52:29 +00:00
Bruce Momjian
4784794279 Enable threaded python builds on freebsd5, per report from Jim C. Nasby 2005-10-13 20:40:04 +00:00
Bruce Momjian
d3a0c8dce9 Prevent threaded python build on BSD's, where it fails.
Marko Kreen
2005-09-26 16:48:28 +00:00
Bruce Momjian
1a6fe83011 Allow Win32 libpq will use it's minimal pthread implementation, and ecpg
will use pthreadGC2.

Dave Page
2005-08-29 00:47:35 +00:00
Peter Eisentraut
875efad481 Update to autoconf 2.59 as well as updates of related scripts 2005-07-01 18:17:31 +00:00
Tom Lane
e71d09a472 Clean up printf arg-control test, per Kurt Roeckx. 2005-02-24 01:34:45 +00:00
Bruce Momjian
b4feafb6ff Add support to port/snprintf.c for position parameter specification:
+ # Determine if printf supports %1$ argument selection, e.g. %5$ selects
+ # the fifth argument after the printf print string.
+ # This is not in the C99 standard, but in the Single Unix Specification (SUS).
+ # It is used in our langauge translation strings.

Nicolai Tufar with configure changes by Bruce.
2005-02-22 03:56:22 +00:00
Peter Eisentraut
3bfb93a441 New version of mkinstalldirs fixes problems on Tru64 UNIX. 2005-01-08 09:54:29 +00:00
Bruce Momjian
b5498167d7 Allow AIX to use --enable-thread-safety by passing PTHREAD_LIBS to
binary compiles, and adjust configure tests for AIX.
2004-12-16 17:48:29 +00:00
Bruce Momjian
af80de1f01 Update aix cc_r wording. 2004-12-14 14:53:53 +00:00
Bruce Momjian
0f4b3f2215 Mention aix cc_r is not supported, and why 2004-12-14 12:58:29 +00:00
Tom Lane
c833c6c558 Hack to work around broken linker on older NetBSD/OpenBSD/Irix assumed
that readline must depend on libcurses, but it seems more recent ones
use libtermcap instead.  Allow that case.
2004-12-02 20:04:20 +00:00
Tom Lane
aef2d0d86c Fix readline/libedit selection code to prefer readline over libedit
reliably (ie, regardless of which libraries they depend on).  Also
make sure that we don't select headers that obviously belong to the
wrong one of the two libraries.  This was discussed back around 4-Sep
but seems to have slipped through the cracks.  The header selection
could be checked more closely, perhaps, but let's see if this is good
enough.
2004-11-30 06:13:04 +00:00
Tom Lane
9b3fc492d3 If we're going to test for switch validity by observing whether the
compiler emits any warnings, the test program had better be 100%
correct, not only 90% correct.  The recent addition of -Wold-style-definition
broke thread-safety detection on every platform that has that switch,
because the test program used an old-style definition.
2004-10-24 00:54:12 +00:00
Neil Conway
857e210ea9 When using GCC, change the default CFLAGS to:
-O2 -Wall -Wmissing-prototypes -Wpointer-arith

Check whether the version of GCC we are using supports any of:

  -Wdeclaration-after-statement
  -Wendif-labels
  -Wold-style-definition

And add the supported flags to CFLAGS.
2004-10-20 02:12:07 +00:00
Tom Lane
669ca7af83 Another try at making plpython autoconfiguration work correctly. Use a
-L spec rather than assuming libpython is in the standard search path
(this returns to the way 7.4 did it).  But check the distutils output
to see if it looks like Python has built a shared library, and if so
link with that instead of the probably-not-shared library found in
configdir.
2004-10-11 19:32:19 +00:00
Tom Lane
86a39d5a19 Un-break plpython build for non-Windows platforms. 2004-10-10 19:07:55 +00:00
Bruce Momjian
5431393274 Allow plpython to build on Win32.
Magnus Hagander
2004-10-06 09:20:41 +00:00
Bruce Momjian
314cef0f12 Update comment on int64 printf speciifications for MinGW:
# MinGW uses '%I64d', though gcc throws an warning with -Wall,
# while '%lld' doesn't generate a warning, but doesn't work.
2004-10-04 18:14:18 +00:00
Peter Eisentraut
24cfc14019 New config.guess and config.sub 2004-09-17 22:09:21 +00:00
Joe Conway
04d15d120c Make discovery of python_configdir architecture independent. Solution
from James William Pye.
2004-09-16 23:30:30 +00:00
Bruce Momjian
b85faa87b9 Send thread test output to file descriptor 5 like configure does rather
than /dev/null, which Win32 doesn't have.
2004-09-11 02:12:17 +00:00
Bruce Momjian
8becd824aa Check for ignored thread compiler options to reduce compiler noise. 2004-09-11 00:03:06 +00:00
Bruce Momjian
e97c817092 Use _timezone global on Cygwin instead of timezone. 2004-09-08 19:43:12 +00:00
Tom Lane
31a242ae14 Some versions of lex will drop a lex.yy.c file when we probe to see if
they are flex.  Clean up after them.
2004-09-02 20:39:57 +00:00
Tom Lane
3a6f1313b5 Use $PATH_SEPARATOR like the rest of the autoconf code, instead of
hardwiring IFS=: when searching paths.
2004-09-02 15:39:56 +00:00
Bruce Momjian
0d4aa039ac Fix agressive collection of thread flags. 2004-08-17 15:19:09 +00:00
Bruce Momjian
6a5718b1ee Fix syntax error just introduced. 2004-08-16 23:49:58 +00:00
Bruce Momjian
e48322a6d6 Be more aggressive about adding flags to thread compiles. The configure
test only tests for building a binary, not building a shared library.

On Linux, you can build a binary with -pthread, but you can't build a
binary that uses a threaded shared library unless you also use -pthread
when building the binary, or adding -lpthread to the shared library
build.  This patch has the effect of doing the later by adding both
-pthread and -lpthread when building libpq.
2004-08-12 16:39:50 +00:00
Bruce Momjian
19f1370b1e Minor style cleanup of thread test script. 2004-08-12 14:58:37 +00:00
Peter Eisentraut
adf57cd7e2 PostgreSQL extension makefile framework ("pgxs"), by Fabien Coelho, with
some massaging by Peter Eisentraut.  This is basically a simple
generalization of the existing contrib makefiles.
2004-07-30 12:26:40 +00:00
Peter Eisentraut
d0c1bbdcc6 Rename AC_PROG_LD* macros to PGAC_PROG_LD*. This avoids clashes with the
macros provided by the real libtool, when other packages borrow some macros
from PostgreSQL, as in the case of the ODBC driver.
2004-07-17 18:53:56 +00:00
Bruce Momjian
a63d2168e9 Fix strerror_r by checking return type from configure. 2004-06-07 22:39:45 +00:00
Bruce Momjian
5c1cfb5fc1 Configure adjustments for irix.
David Turover
2004-05-19 22:12:30 +00:00
Bruce Momjian
30a06fe2c4 Unconditionally define:
-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS

for all ports.  It can't hurt if they are not supported, but it makes
our job easier for porting.

Should fix Darwin compile and other platforms without mucking with the
thread detection code.
2004-04-26 04:04:42 +00:00
Bruce Momjian
7a66015e98 Add new auto-detection of thread flags.
Allow additional thread flags to be added via port templates.

Change thread flag names to PTHREAD_CFLAGS and PTHREAD_LIBS to match new
configure script.
2004-04-23 18:15:55 +00:00
Bruce Momjian
aaf54d99f0 Handle draft version of getpwuid_r() that accepts only four arguments.
Backpatch to 7.4.X.  Required for Solaris 7 & 8.
2004-03-20 15:39:27 +00:00
Tom Lane
6f295328e5 Do not let external specification of CFLAGS stop us from adding
-fno-strict-aliasing.
2004-02-02 04:07:18 +00:00
Tom Lane
bd046b99f0 Remove JDBC from the build system and documentation, too. 2004-01-19 21:20:06 +00:00
Bruce Momjian
36b0595d5e Add /usr/local/sgml/docbook-dsssl to the default search patch for
docbook style sheets, as discussed with Peter.
2003-12-13 20:25:18 +00:00
PostgreSQL Daemon
969685ad44 $Header: -> $PostgreSQL Changes ... 2003-11-29 19:52:15 +00:00
Peter Eisentraut
b3d72d3ec5 Use --with-docdir to choose installation location of documentation; put
back --infodir, which several automatic build environments expect to exist.
Add --without-docdir to prevent installation of documentation, which is
helpful for things like RPM that have their own method of installing
documentation.
2003-11-24 14:52:58 +00:00
Peter Eisentraut
144a2ecd57 Make the detection of nsgmls more robust for funny shells. 2003-11-06 10:30:42 +00:00
Peter Eisentraut
661a0d64e6 Update install-sh and mkinstalldirs from master source (Automake). They
have included a few fixes over the years to make them more robust and
faster.
2003-11-04 10:59:58 +00:00
Peter Eisentraut
f9415b4046 New config.guess and config.sub from upstream. 2003-11-04 10:31:33 +00:00
Peter Eisentraut
801427abc2 Unset CFLAGS before reading template. This should be more robust.
When --enable-debug is used, then the default CFLAGS for non-GCC is just
-g without -O.

Backpatch enhancement of Autoconf inline test that detects problems with
the HP C compiler.
2003-11-01 20:48:51 +00:00
Peter Eisentraut
378f59904a Fix CFLAGS selection to actually work. Add test to detect whether gcc's
option -fno-strict-aliasing is available.
2003-10-25 15:32:11 +00:00
Bruce Momjian
4b407f6c3c Changes for MinGW/WIN32:
o allow configure to see include/port/win32 include files
        o add matching Win32 accept() prototype
        o allow pg_id to compile with native Win32 API
        o fix invalide mbvalidate() function calls (existing bug)
        o allow /scripts to compile with native Win32 API
        o add win32.c to Win32 compiles (already in *.mak files)
2003-09-07 03:43:57 +00:00
Peter Eisentraut
f10a9033bf Clean up after pygresql removal: adjust/remove documentation and remove
unneeded configure work.
2003-09-01 23:01:49 +00:00
Tom Lane
df63503dc2 Have a go at fixing various outstanding portability issues in code that
was modified for IPv6.  Use a robust definition of struct sockaddr_storage,
do a proper configure test to see if ss_len exists, don't assume that
getnameinfo() will handle AF_UNIX sockets, don't trust getaddrinfo to
return the protocol we ask for, etc.  This incorporates several outstanding
patches from Kurt Roeckx, but I'm to blame for anything that doesn't
work ...
2003-07-23 23:30:41 +00:00
Bruce Momjian
99308891ef Remove references to sa_family_t, except when SOCKADDR_STORAGE requires
it.

Also handle __ss_family as a synonym for ss_family.

Kurt Roeckx
2003-06-23 23:52:00 +00:00
Tom Lane
ccd99a5eb5 <sys/socket.h> requires <sys/types.h> to already have been included
on some platforms.
2003-06-12 16:05:10 +00:00
Bruce Momjian
b4cea00a1f IPv6 cleanups.
Kurt Roeckx
Andrew Dunstan
2003-06-12 07:36:51 +00:00
Tom Lane
c120f4ba0a Adjust configure so that extern tzname[] will be checked for
independently of whether the struct tm tm_zone member exists.
Also run autoheader, which seems not to have been done lately;
it added about three more things to pg_config.h.in than I was expecting...
2003-05-22 16:39:30 +00:00
Bruce Momjian
e8f4f2f92d Properly test for buggy flex 2.5.3. 2003-05-06 23:33:52 +00:00
Tom Lane
f690920a75 Infrastructure for upgraded error reporting mechanism. elog.c is
rewritten and the protocol is changed, but most elog calls are still
elog calls.  Also, we need to contemplate mechanisms for controlling
all this functionality --- eg, how much stuff should appear in the
postmaster log?  And what API should libpq expose for it?
2003-04-24 21:16:45 +00:00
Tom Lane
e138630251 On some systems <sys/types.h> must be included before <sys/socket.h>. 2003-04-12 23:25:42 +00:00
Peter Eisentraut
cb1d036acb Generate pg_config.h.in by autoheader. Separate out manually editable
parts.  Standardize spelling of comments in pg_config.h.
2003-04-06 22:45:23 +00:00
Tom Lane
1da6eb7fda Whack getaddrinfo() patch around until it works, more or less, on
machines without IPv6.  Or at least it works on HPUX 10.20 ...
2003-04-02 00:49:28 +00:00
Peter Eisentraut
955a1f81a7 Factor out the code that detects the long long int snprintf format into a
separate macro.  Also add support for %I64d which is the way on Windows.

The code that checks for the 64-bit int type now gives more reasonable
results when cross-compiling: In that case we just take the compiler's
information and trust that the arithmetic works.  Disabling int64 is too
pessimistic.
2003-01-28 21:57:12 +00:00
Peter Eisentraut
e43ecb3d1a Remove leftovers from subproject removals. Fixes for Python and Kerberos
configuration.
2002-09-04 22:54:18 +00:00
Peter Eisentraut
b0c3c48eb3 Assemble portability modules into libpgport library.
Some makefile simplifications.
2002-07-27 20:10:05 +00:00
Bruce Momjian
7fb9b5d434 This fixes 2 inaccuracies in the recently added SQL99 feature list docs.
UNIQUE and DISTINCT predicates are both listed as implemented -- AFAIK,
neither is.

I also included another trivial patch which adds the default location
of the DSSSL stylesheets on my system (Debian unstable, docbook-dsssl
1.76) to the list of paths that configure looks for.

Neil Conway
2002-07-16 00:51:37 +00:00
Peter Eisentraut
7662419f1b Change PL/Perl and Pg interface build to use configured compiler and
Makefile.shlib system, not MakeMaker.
2002-05-28 16:57:53 +00:00
Peter Eisentraut
2f2d05763d Change PL/Tcl build to use configured compiler and Makefile.shlib
system, not Tcl-provided one.

Make sure export file, if any, is cleaned.

Tcl configuration is now read directly in configure and recorded in
Makefile.global.  This eliminates some duplicate efforts and allows
for easier hand-editing of the results, if necessary.
2002-05-24 18:10:17 +00:00
Peter Eisentraut
2e32eca8d0 Allow detection of collateindex.pl in stylesheet directory or in path,
which covers some recent installation schemes.

Add Mandrake installation layout to directories to check for stylesheets.

Allow documentation build to proceed if stylesheets were not found, in case
the stylesheets might be found through the SGML catalog mechanism.
2002-04-14 17:23:20 +00:00
Peter Eisentraut
5c1f31d2d4 Readline and Zlib now required by default. Add options --without-readline
and --without-zlib to turn them off.
2002-04-10 22:47:09 +00:00
Peter Eisentraut
563673e15d Add make install-strip target. 2002-04-10 16:45:25 +00:00
Peter Eisentraut
25004eec95 Fix more random breakage manifesting on FreeBSD. 2002-03-30 00:59:52 +00:00
Peter Eisentraut
ea13a3fab2 Add missing comma. 2002-03-29 20:54:33 +00:00
Peter Eisentraut
7c1ff35410 Upgrade to Autoconf version 2.53. Replaced many custom macro
calls with new or now-built-in versions.  Make sure that all
calls to AC_DEFINE have a third argument, for possible use of
autoheader in the future.
2002-03-29 17:32:55 +00:00
Peter Eisentraut
42c3381fc7 Heimdal support (Kerberos V implementation from KTH) 2002-02-23 04:17:47 +00:00
Bruce Momjian
8799d84603 Add memcmp() test and new memcmp.c file, for SunOS. Tested by Tatsuo. 2001-12-20 21:23:05 +00:00
Peter Eisentraut
15abc7788e More correct way to check for existence of types, which allows to specify
which include files to consider.  Should fix BeOS problems with int8 types.
2001-12-02 11:38:40 +00:00
Peter Eisentraut
7505e5d0cd Make prep_buildtree harmless when run on top of the source tree.
from Ian Lance Taylor
2001-09-10 23:28:59 +00:00
Peter Eisentraut
8f3627d89b Add explicit '-print' to 'find' commands.
(partially) from Ian Lance Taylor
2001-09-10 22:25:48 +00:00
Bruce Momjian
a7621c92ae Update SCM_CREDS for Net/Free/BSD-OS. Add configure checks. 2001-09-07 19:52:54 +00:00
Peter Eisentraut
5298eb47dc Fix the readline test to find dependent libraries on NetBSD and OpenBSD.
Not pretty, but it doesn't look like the OS will get fixed sometime soon.
2001-08-28 14:59:11 +00:00
Peter Eisentraut
ef7152f99b Put the right runpath to libpq into the Perl module shared object on more
platforms and without relinking.

Also support VPATH builds and DESTDIR installs.  One hopes.
2001-08-26 22:28:04 +00:00
Peter Eisentraut
5558e15ce5 Do not pre-expand localedir as substituted in the makefile, so that 'make
install prefix=elsewhere' works.
2001-08-06 15:46:44 +00:00
Peter Eisentraut
4e75fcb80c update from upstream 2001-08-06 13:58:26 +00:00
Peter Eisentraut
8237d89c0f Support fake root install, separate build dir, dependency tracking, our
choice of compiler and flags, uninstall, and peculiar Python installation
layouts for PyGreSql.  Also install into site-packages now, as officially
recommended.  And pgdb.py is also installed now, used to be forgotten.
2001-07-10 16:33:02 +00:00
Peter Eisentraut
2f3bd9eb88 Check for jakarta-ant before ant, in case 'ant' is the screen saver program.
Then, run a small reality test with $ANT to see whether it works.
2001-07-04 21:22:55 +00:00
Peter Eisentraut
e542036461 Native Language Support (NLS)
Use --enable-nls to turn it on; see installation instructions for details.
See developer's guide how to make use of it in programs and how to add
translations.

psql sources have been almost fully prepared and an incomplete German
translation has been provided.  In the backend, only elog() calls are
currently translatable, and the provided German translation file is more
of a placeholder.
2001-06-02 18:25:18 +00:00
Peter Eisentraut
bbc3920fe9 PL/Python should build portably now, if you can get over the fact that
there's no shared libpython.  Test suite works as well. Also, add some
documentation.
2001-05-12 17:49:32 +00:00
Peter Eisentraut
0d5407e6e0 Throw error if Ant is not found and Java is requested. Remove redundant
AC_SUBST that messed up the diversions and thus the configure output.
2001-03-11 11:24:59 +00:00
Peter Mount
79e2dd5875 There's always 1 file missed out ;-)
Found while testing against a full checkout. Peter
2001-03-05 10:02:35 +00:00
Peter Eisentraut
23e41fb7fb Add configure check for -lunix, for QNX.
Recode test for equality of source and build directory using 'test -ef',
because even using pwd you might not get equal strings.  Thanks, QNX.
2001-03-03 15:53:41 +00:00
Peter Eisentraut
2660803697 Only look for bison as YACC; other yaccs need to be selected explicitly.
When no suitable YACC is configured, supply useful informational messages
to users.  (Same way flex has been handled for a while.)
2001-02-10 22:31:42 +00:00