Skip to content
Snippets Groups Projects
  1. Dec 18, 2012
    • Tom Lane's avatar
      Ignore libedit/libreadline while probing for standard functions. · 31e0349a
      Tom Lane authored
      Some versions of libedit expose bogus definitions of setproctitle(),
      optreset, and perhaps other symbols that we don't want configure to pick up
      on.  There was a previous report of similar problems with strlcpy(), which
      we addressed in commit 59cf88da, but the
      problem has evidently grown in scope since then.  In hopes of not having to
      deal with it again in future, rearrange configure's tests for supplied
      functions so that we ignore libedit/libreadline except when probing
      specifically for functions we expect them to provide.
      
      Per report from Christoph Berg, though this is slightly more aggressive
      than his proposed patch.
      31e0349a
  2. Dec 03, 2012
  3. Sep 19, 2012
  4. Sep 06, 2012
  5. Aug 31, 2012
    • Tom Lane's avatar
      Make configure probe for mbstowcs_l as well as wcstombs_l. · e4679442
      Tom Lane authored
      We previously supposed that any given platform would supply both or neither
      of these functions, so that one configure test would be sufficient.  It now
      appears that at least on AIX this is not the case ... which is likely an
      AIX bug, but nonetheless we need to cope with it.  So use separate tests.
      Per bug #6758; thanks to Andrew Hastie for doing the followup testing
      needed to confirm what was happening.
      
      Backpatch to 9.1, where we began using these functions.
      e4679442
  6. Aug 24, 2012
  7. Aug 17, 2012
    • Tom Lane's avatar
      Check LIBXML_VERSION instead of testing in configure script. · 33f40976
      Tom Lane authored
      We had put a test for libxml2's xmlStructuredErrorContext variable in
      configure, but of course that doesn't work on Windows builds.  The next
      best alternative seems to be to test the LIBXML_VERSION symbol provided
      by xmlversion.h.
      
      Per report from Talha Bin Rizwan, though this fixes it in a different way
      than his proposed patch.
      33f40976
  8. Aug 15, 2012
  9. Aug 03, 2012
  10. Jun 01, 2012
  11. May 14, 2012
  12. May 12, 2012
    • Peter Eisentraut's avatar
      Remove unused AC_SUBST variables · 7b85527e
      Peter Eisentraut authored
      These were apparently never used.  The AC_SUBST was probably just
      added in a copy-and-paste manner.  (The shell variables continue to be
      used inside configure.  The change is just that we don't need them
      outside of configure.)
      7b85527e
  13. May 11, 2012
  14. May 07, 2012
  15. May 03, 2012
  16. May 01, 2012
    • Peter Eisentraut's avatar
      Remove dead ports · f2f9439f
      Peter Eisentraut authored
      Remove the following ports:
      
      - dgux
      - nextstep
      - sunos4
      - svr4
      - ultrix4
      - univel
      
      These are obsolete and not worth rescuing.  In most cases, there is
      circumstantial evidence that they wouldn't work anymore anyway.
      f2f9439f
  17. Feb 23, 2012
  18. Feb 07, 2012
    • Robert Haas's avatar
      Support fls(). · 4f658dc8
      Robert Haas authored
      The immediate impetus for this is that Noah Misch's patch to elide
      unnecessary table and index rebuilds when changing typmod for temporal
      types uses it; and this is extracted from that patch, with some
      further commentary by me.  But it seems logically separate from the
      remainder of the patch, so I'm committing it separately; this is not
      the first time someone has wanted fls() in the backend and probably
      won't be the last.
      
      If we end up using this in more performance-critical spots it may be
      worthwhile to add some architecture-specific optimizations to our
      src/port version of fls() - e.g. any x86 platform can implement this
      using the assembly instruction BSRL.  But performance won't matter
      a bit for assessing typmod changes, so I'm not worried about that
      right now.
      4f658dc8
  19. Jan 07, 2012
    • Tom Lane's avatar
      Use __sync_lock_test_and_set() for spinlocks on ARM, if available. · 0a41e865
      Tom Lane authored
      Historically we've used the SWPB instruction for TAS() on ARM, but this
      is deprecated and not available on ARMv6 and later.  Instead, make use
      of a GCC builtin if available.  We'll still fall back to SWPB if not,
      so as not to break existing ports using older GCC versions.
      
      Eventually we might want to try using __sync_lock_test_and_set() on some
      other architectures too, but for now that seems to present only risk and
      not reward.
      
      Back-patch to all supported versions, since people might want to use any
      of them on more recent ARM chips.
      
      Martin Pitt
      0a41e865
  20. Jan 02, 2012
    • Tom Lane's avatar
      Use mutex hint bit in PPC LWARX instructions, where possible. · 5cfa8dd3
      Tom Lane authored
      The hint bit makes for a small but measurable performance improvement
      in access to contended spinlocks.
      
      On the other hand, some PPC chips give an illegal-instruction failure.
      There doesn't seem to be a completely bulletproof way to tell whether the
      hint bit will cause an illegal-instruction failure other than by trying
      it; but most if not all 64-bit PPC machines should accept it, so follow
      the Linux kernel's lead and assume it's okay to use it in 64-bit builds.
      Of course we must also check whether the assembler accepts the command,
      since even with a recent CPU the toolchain could be old.
      
      Patch by Manabu Ori, significantly modified by me.
      5cfa8dd3
    • Bruce Momjian's avatar
      Update copyright notices for year 2012. · e126958c
      Bruce Momjian authored
      e126958c
  21. Dec 27, 2011
    • Peter Eisentraut's avatar
      Remove support for on_exit() · d383c23f
      Peter Eisentraut authored
      All supported platforms support the C89 standard function atexit()
      (SunOS 4 probably being the last one not to), and supporting both
      makes the code clumsy.
      d383c23f
  22. Dec 14, 2011
  23. Dec 10, 2011
  24. Nov 18, 2011
  25. Sep 10, 2011
    • Peter Eisentraut's avatar
      Add missing format attributes · 52ce2058
      Peter Eisentraut authored
      Add __attribute__ decorations for printf format checking to the places that
      were missing them.  Fix the resulting warnings.  Add
      -Wmissing-format-attribute to the standard set of warnings for GCC, so these
      don't happen again.
      
      The warning fixes here are relatively harmless.  The one serious problem
      discovered by this was already committed earlier in
      cf15fb5c.
      52ce2058
  26. Sep 01, 2011
  27. Aug 28, 2011
  28. Aug 03, 2011
    • Robert Haas's avatar
      Make pgbench use erand48() rather than random(). · 4af43ee3
      Robert Haas authored
      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.
      4af43ee3
  29. Jul 26, 2011
  30. Jul 20, 2011
    • Tom Lane's avatar
      Rewrite libxml error handling to be more robust. · cacd42d6
      Tom Lane authored
      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
      cacd42d6
  31. Jun 16, 2011
    • Peter Eisentraut's avatar
      Start using flexible array members · dbbba527
      Peter Eisentraut authored
      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.
      dbbba527
  32. Jun 11, 2011
  33. Jun 10, 2011
  34. Jun 02, 2011
  35. May 31, 2011
    • Tom Lane's avatar
      Replace use of credential control messages with getsockopt(LOCAL_PEERCRED). · be4585b1
      Tom Lane authored
      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.
      be4585b1
  36. May 26, 2011
    • Tom Lane's avatar
      Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible. · 44404f39
      Tom Lane authored
      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.
      44404f39
  37. May 24, 2011
Loading