summaryrefslogtreecommitdiff
path: root/configure
AgeCommit message (Collapse)Author
2011-08-18Improve detection of Python 3.2 installationsPeter Eisentraut
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-03Make pgbench use erand48() rather than random().Robert Haas
glibc renders random() thread-safe by wrapping a futex lock around it; testing reveals that this limits the performance of pgbench on machines with many CPU cores. Rather than switching to random_r(), which is only available on GNU systems and crashes unless you use undocumented alchemy to initialize the random state properly, switch to our built-in implementation of erand48(), which is both thread-safe and concurrent. Since the list of reasons not to use the operating system's erand48() is getting rather long, rename ours to pg_erand48() (and similarly for our implementations of lrand48() and srand48()) and just always use those. We were already doing this on Cygwin anyway, and the glibc implementation is not quite thread-safe, so pgbench wouldn't be able to use that either. Per discussion with Tom Lane.
2011-07-26Don't build replacement getpeereid function on mingw.Andrew Dunstan
Windows doesn't have Unix sockets, so it's not needed, and moreover causes compile warnings.
2011-07-20Rewrite libxml error handling to be more robust.Tom Lane
libxml reports some errors (like invalid xmlns attributes) via the error handler hook, but still returns a success indicator to the library caller. This causes us to miss some errors that are important to report. Since the "generic" error handler hook doesn't know whether the message it's getting is for an error, warning, or notice, stop using that and instead start using the "structured" error handler hook, which gets enough information to be useful. While at it, arrange to save and restore the error handler hook setting in each libxml-using function, rather than assuming we can set and forget the hook. This should improve the odds of working nicely with third-party libraries that also use libxml. In passing, volatile-ize some local variables that get modified within PG_TRY blocks. I noticed this while testing with an older gcc version than I'd previously tried to compile xml.c with. Florian Pflug and Tom Lane, with extensive review/testing by Noah Misch
2011-06-16Start using flexible array membersPeter Eisentraut
Flexible array members are a C99 feature that avoids "cheating" in the declaration of variable-length arrays at the end of structs. With Autoconf support, this should be transparent for older compilers. We start with one use in gist.h because gcc 4.6 started to raise a warning there. Over time, it can be expanded to other places in the source, but they will likely need some review of sizeof and offsetof usage. The current change in gist.h appears to be safe in this regard.
2011-06-11Stamp HEAD as 9.2devel.Tom Lane
2011-06-09Tag 9.1beta2.Tom Lane
2011-06-02Implement getpeereid() as a src/port compatibility function.Tom Lane
This unifies a bunch of ugly #ifdef's in one place. Per discussion, we only need this where HAVE_UNIX_SOCKETS, so no need to cover Windows. Marko Kreen, some adjustment by Tom Lane
2011-05-31Replace use of credential control messages with getsockopt(LOCAL_PEERCRED).Tom Lane
It turns out the reason we hadn't found out about the portability issues with our credential-control-message code is that almost no modern platforms use that code at all; the ones that used to need it now offer getpeereid(), which we choose first. The last holdout was NetBSD, and they added getpeereid() as of 5.0. So far as I can tell, the only live platform on which that code was being exercised was Debian/kFreeBSD, ie, FreeBSD kernel with Linux userland --- since glibc doesn't provide getpeereid(), we fell back to the control message code. However, the FreeBSD kernel provides a LOCAL_PEERCRED socket parameter that's functionally equivalent to Linux's SO_PEERCRED. That is both much simpler to use than control messages, and superior because it doesn't require receiving a message from the other end at just the right time. Therefore, add code to use LOCAL_PEERCRED when necessary, and rip out all the credential-control-message code in the backend. (libpq still has such code so that it can still talk to pre-9.1 servers ... but eventually we can get rid of it there too.) Clean up related autoconf probes, too. This means that libpq's requirepeer parameter now works on exactly the same platforms where the backend supports peer authentication, so adjust the documentation accordingly.
2011-05-26Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible.Tom Lane
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-24Adjust configure's probe for libselinux so it rejects too-old versions.Tom Lane
We need at least version 2.0.93, so probe for a function that was added in that version. Kaigai Kohei
2011-05-22Clarify the documentation of the --with-ossp-uuid optionPeter Eisentraut
2011-05-06Improve compiler string shown in version()Peter Eisentraut
With some compilers such as Clang and ICC emulating GCC, using a version string of the form "GCC $version" can be quite misleading. Also, a great while ago, the version output from gcc --version started including the string "gcc", so it is redundant to repeat that. In order to support ancient GCC versions, we now prefix the result with "GCC " only if the version output does not start with a letter.
2011-04-27Tag 9.1beta1.Tom Lane
2011-04-23Fix char2wchar/wchar2char to support collations properly.Tom Lane
These functions should take a pg_locale_t, not a collation OID, and should call mbstowcs_l/wcstombs_l where available. Where those functions are not available, temporarily select the correct locale with uselocale(). This change removes the bogus assumption that all locales selectable in a given database have the same wide-character conversion method; in particular, the collate.linux.utf8 regression test now passes with LC_CTYPE=C, so long as the database encoding is UTF8. I decided to move the char2wchar/wchar2char functions out of mbutils.c and into pg_locale.c, because they work on wchar_t not pg_wchar_t and thus don't really belong with the mbutils.c functions. Keeping them where they were would have required importing pg_locale_t into pg_wchar.h somehow, which did not seem like a good plan.
2011-03-02Support for DragonFly BSDPeter Eisentraut
Mapped to NetBSD, the closest existing match. (Even though DragonFly BSD is derived from FreeBSD, the shared library version numbering matches NetBSD, and the rest is mostly the same among all BSD variants.) per "Rumko"
2011-02-26Add a configure check for Python.h if building with python.Andrew Dunstan
2011-02-16Better support for thread-support flag detection with clangPeter Eisentraut
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-08Per-column collation supportPeter Eisentraut
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-01-31Enable building with the Mingw64 compiler.Andrew Dunstan
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-26Use -Wformat-security when availablePeter Eisentraut
2011-01-26autoreconfPeter Eisentraut
Synchronize pg_config.h.in with configure.in (someone must have forgotten to run autoheader or autoreconf), and clean up some spurious change in configure introduced by the last commit there.
2011-01-24sepgsql, an SE-Linux integration for PostgreSQLRobert Haas
This is still pretty rough - among other things, the documentation needs work, and the messages need a visit from the style police - but this gets the basic framework in place. KaiGai Kohei
2011-01-01Stamp copyrights for year 2011.Bruce Momjian
2010-12-26Only build in crashdump support on Windows if there's a working dbghelp.h.Andrew Dunstan
2010-12-16Fix up getopt() reset management so it works on recent mingw.Tom Lane
The mingw people don't appear to care about compatibility with non-GNU versions of getopt, so force use of our own copy of getopt on Windows. Also, ensure that we make use of optreset when using our own copy. Per report from Andrew Dunstan. Back-patch to all versions supported on Windows.
2010-09-29Add/fix caching on some configure checksPeter Eisentraut
2010-09-22Fix remaining stray references to CVS.Tom Lane
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-11Introduce latches. A latch is a boolean variable, with the capability toHeikki Linnakangas
wait until it is set. Latches can be used to reliably wait until a signal arrives, which is hard otherwise because signals don't interrupt select() on some platforms, and even when they do, there's race conditions. On Unix, latches use the so called self-pipe trick under the covers to implement the sleep until the latch is set, without race conditions. On Windows, Windows events are used. Use the new latch abstraction to sleep in walsender, so that as soon as a transaction finishes, walsender is woken up to immediately send the WAL to the standby. This reduces the latency between master and standby, which is good. Preliminary work by Fujii Masao. The latch implementation is by me, with helpful comments from many people.
2010-07-09Stamp HEAD as 9.1devel.Tom Lane
(And there was much rejoicing.)
2010-07-09tag beta3Marc G. Fournier
2010-07-05Split the LDFLAGS make variable into two parts: LDFLAGS is now used forTom Lane
linking both executables and shared libraries, and we add on LDFLAGS_EX when linking executables or LDFLAGS_SL when linking shared libraries. This provides a significantly cleaner way of dealing with link-time switches than the former behavior. Also, make sure that the various platform-specific %.so: %.o rules incorporate LDFLAGS and LDFLAGS_SL; most of them missed that before. (I did not add these variables for the platforms that invoke $(LD) directly, however. It's not clear if we can do that safely, since for the most part we assume these variables use CC command-line syntax.) Per gripe from Aaron Swenson and subsequent investigation.
2010-06-04tag 9.0beta2Marc G. Fournier
2010-05-25Replace self written 'long long int' configure test by standard ↵Michael Meskes
'AC_TYPE_LONG_LONG_INT' macro call.
2010-05-25Added a configure test for "long long" datatypes. So far this is only used ↵Michael Meskes
in ecpg and replaces the old test that was kind of hackish.
2010-05-13Fix up lame idea of not using autoconf to determine if platform has scandir().Tom Lane
Should fix buildfarm failures.
2010-04-30tag for 9.0beta1Marc G. Fournier
2010-03-17Don't link PL/Python against LOCALMODLIBSPeter Eisentraut
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-02-23Fix configure's regexp for extracting the Perl version number from perl -vTom Lane
output. Per bug #5339, Perl 5.11 has changed the format of that output enough to break the previous coding. Alex Hunsaker
2010-02-22Revert configure warning to use "official distribution".Bruce Momjian
2010-02-22Use the term "bundled distribution" instead of "official distribution" inBruce Momjian
configure warnings.
2010-02-19Revert version stamping in wrong branchPeter Eisentraut
2010-02-19Version stamp 9.0alpha4Peter Eisentraut
2010-02-17Stamp HEAD as 9.0devel, and update various places that were referring to 8.5Tom Lane
(hope I got 'em all). Per discussion, this release will be 9.0 not 8.5.
2010-02-13Support inlining various small performance-critical functions on non-GCCTom Lane
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-01-16Re-order configure tests to reflect the fact that the code generated forTom Lane
posix_fadvise and other file-related functions can depend on _LARGEFILE_SOURCE and/or _FILE_OFFSET_BITS. Per report from Robert Treat. Back-patch to 8.4. This has been wrong all along, but we weren't really using posix_fadvise in anger before, and AC_FUNC_FSEEKO seems to mask the issue well enough for that function.
2010-01-07Fail in a nicer way if we have --with-perl and no Perl.Tom Lane
2010-01-07Make configure check the version of Perl we're building with, and rejectTom Lane
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-07Alter the configure script to fail immediately if the C compiler does notTom Lane
provide a working 64-bit integer datatype. As recently noted, we've been broken on such platforms since early in the 8.4 development cycle. Since it took nearly two years for anyone to even notice, it seems that the rationale for continuing to support such platforms has reached the point of non-existence. Rather than thrashing around to try to make it work again, we'll just admit up front that this no longer works. Back-patch to 8.4 since that branch is also broken. We should go around to remove INT64_IS_BUSTED support, but just in HEAD, so that seems like material for a separate commit.
2010-01-02Update copyright for the year 2010.Bruce Momjian