1. 01 12月, 2015 1 次提交
    • G
      Rework SSE42 implementation and runtime logic to be more similar to PostgreSQL 9.5 · 6c025b52
      Garrett Thornburg 提交于
      This patch merges the PostgreSQL 9.5 implementation of SSE4.2 into GPDB.
      The SSE4.2 implementation was lifted right out of PostgreSQL without
      change to make merging later PostgreSQL releases easier.
      
      Update win32 configuration to support SSE4.2 runtime checks
      
      This change was pulled from "src/include/pg_config.h.win32" from the
      commits below.
      
      configure.in changes, determining if cpu instruction for perfomring runtime
      checks are availible, and moving some of the code to port SSE4.2 came from the
      following PostgreSQL commits:
      
      commit 3dc2d62d
      Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
      Date:   Tue Apr 14 17:05:03 2015 +0300
      
          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.
      
      commit b4eb2d16
      Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
      Date:   Tue Apr 14 19:56:00 2015 +0300
      	On gcc and clang, the _mm_crc32_u8 and _mm_crc32_u64 intrinsics are not
      	defined at all, when not building with -msse4.2. But on icc, they are.
      	So we cannot assume that if those intrinsics are defined, we can always use
      	them safely, we might still need the runtime check.
      
      	To fix, check if the __SSE_4_2__ preprocessor symbol is defined. That's
      	supposed to be defined only when the compiler is targeting a processor that
      	has SSE 4.2 support.
      
      	Per buildfarm members fulmar and okapi.
      6c025b52
  2. 28 10月, 2015 2 次提交
    • H
      Remove -Werror, replace with more specific -Wno-* options. · 0675ad72
      Heikki Linnakangas 提交于
      It's important to pay attention to compiler warnings, but -Werror isn't
      buying us much at the moment. Firstly, there are a lot of warnings on modern
      versions of gcc. I have to pass: "-Wno-error=unused-but-set-variable
      -Wno-error=enum-compare -Wno-error=address -Wno-error=maybe-uninitialized"
      to make it compile. More important than erroring out on warnings is to make
      sure there are no warnings to begin with. Once we get to that state, any
      warnings will stick out like sore thumb anyway, and you won't need -Werror
      to make them more annoying.
      
      We have a long way until we are 100% warning free, but most of the warnings
      come from upstream code. They have been fixed in later versions of
      PostgreSQL, so they will go away as we merge with upstream.
      0675ad72
    • I
      Import Greenplum source code. · 6b0e52be
      Initial Greenplum code dump 提交于
      6b0e52be
  3. 09 10月, 2006 1 次提交
  4. 04 10月, 2006 1 次提交
    • T
      Switch over to using our own qsort() all the time, as has been proposed · 6edd2b4a
      Tom Lane 提交于
      repeatedly.  Now that we don't have to worry about memory leaks from
      glibc's qsort, we can safely put CHECK_FOR_INTERRUPTS into the tuplesort
      comparators, as was requested a couple months ago.  Also, get rid of
      non-reentrancy and an extra level of function call in tuplesort.c by
      providing a variant qsort_arg() API that passes an extra void * argument
      through to the comparison routine.  (We might want to use that in other
      places too, I didn't look yet.)
      6edd2b4a
  5. 19 9月, 2006 1 次提交
  6. 11 9月, 2006 2 次提交
  7. 09 9月, 2006 1 次提交
  8. 23 8月, 2006 1 次提交
  9. 25 7月, 2006 1 次提交
  10. 22 7月, 2006 1 次提交
  11. 20 7月, 2006 1 次提交
  12. 20 4月, 2006 1 次提交
    • T
      Remove use of lorder and tsort while building static libraries. There's · 04ca4caa
      Tom Lane 提交于
      no evidence that any currently-supported platform needs this, and good
      reason to think that any platform that did need it couldn't use the static
      libraries anyway --- libpq, at least, has circular references.  Removing
      the code shuts up tsort warnings about the circular references on some
      platforms.
      04ca4caa
  13. 12 2月, 2006 1 次提交
  14. 28 9月, 2005 1 次提交
    • T
      Fix problems with PGXS builds against an installation tree that was · 4fc935a5
      Tom Lane 提交于
      relocated after installation.  We can't trust the installation paths
      inserted into Makefile.global by configure, so instead we must get the
      paths from pg_config.  This requires extending pg_config to support all
      the separately-configurable path names, but that was on TODO anyway.
      4fc935a5
  15. 03 8月, 2005 1 次提交
    • T
      Clean up CREATE DATABASE processing to make it more robust and get rid · 558730ac
      Tom Lane 提交于
      of special case for Windows port.  Put a PG_TRY around most of createdb()
      to ensure that we remove copied subdirectories on failure, even if the
      failure happens while creating the pg_database row.  (I think this explains
      Oliver Siegmar's recent report.)  Having done that, there's no need for
      the fragile assumption that copydir() mustn't ereport(ERROR), so simplify
      its API.  Eliminate the old code that used system("cp ...") to copy
      subdirectories, in favor of using copydir() on all platforms.  This not
      only should allow much better error reporting, but allows us to fsync
      the created files before trusting that the copy has succeeded.
      558730ac
  16. 28 7月, 2005 1 次提交
  17. 07 7月, 2005 1 次提交
  18. 06 7月, 2005 1 次提交
  19. 04 7月, 2005 1 次提交
  20. 18 5月, 2005 1 次提交
  21. 26 3月, 2005 2 次提交
  22. 25 3月, 2005 2 次提交
  23. 27 1月, 2005 1 次提交
  24. 19 12月, 2004 1 次提交
  25. 17 12月, 2004 2 次提交
  26. 19 11月, 2004 1 次提交
  27. 20 10月, 2004 1 次提交
    • N
      When using GCC, change the default CFLAGS to: · 857e210e
      Neil Conway 提交于
        -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.
      857e210e
  28. 16 10月, 2004 1 次提交
    • B
      The previous build rules caused each binary to be re-linked on every · db9e2fd0
      Bruce Momjian 提交于
      "make", even if nothing had changed. With this patch, it's only relinked
      if it's actually updated.
      
      //Magnus
      
      PS. Yes, the old buildrule for the .rc file is still needed, as it's
      used by pgevent.rc (or any other binary in the future that would need
      it's own .rc file)
      
      Magnus Hagander
      db9e2fd0
  29. 15 10月, 2004 1 次提交
    • B
      > This lets you do something like: · 4d94e99b
      Bruce Momjian 提交于
      >
      >    ./configure LDFLAGS=-static-libgcc LDFLAGS_SL=-static-libgcc
      >
      > to produce binaries that do not depend on libgcc_s.so at all.
      
      Oliver Jowett
      4d94e99b
  30. 12 10月, 2004 1 次提交
    • T
      Another try at making plpython autoconfiguration work correctly. Use a · 669ca7af
      Tom Lane 提交于
      -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.
      669ca7af
  31. 06 10月, 2004 4 次提交
  32. 01 10月, 2004 1 次提交