databases/postgresql(-client): Revert most of last commit

After discussing gcc47 build problems with postgresql developers, it
became apparent that the error was unique to DragonFly.  It turns out
that DragonFly was using an older offsetof macro instead of the builtin
version provided by GCC.

Fixing the offsetof macro on DragonFly allowed the pre-patched psgsql 91
to build without issue.  While the previous patches certainly don't hurt
anything, they are being removed to ease future maintenance.

The warning suppression fix is still valid, so the change to the pgsql
client makefile is being left in place.
This commit is contained in:
marino 2012-10-07 22:15:26 +00:00
parent 2541863196
commit b770c3aad4
4 changed files with 1 additions and 105 deletions

View file

@ -1,4 +1,4 @@
$NetBSD: distinfo,v 1.10 2012/10/07 10:24:54 marino Exp $
$NetBSD: distinfo,v 1.11 2012/10/07 22:15:26 marino Exp $
SHA1 (postgresql-9.1.6.tar.bz2) = a24b7c002463572ee7371f055e566b69e39cda3e
RMD160 (postgresql-9.1.6.tar.bz2) = 83ef4c516658c18c1e2937eee89b05a938aa8620
@ -9,9 +9,6 @@ SHA1 (patch-contrib_dblink_Makefile) = 4960ad57d42465fae203870548e4c53f8a32ce04
SHA1 (patch-contrib_dblink_dblink.c) = 4d7c40d107d4c13c63ef2908d9a02be319863657
SHA1 (patch-src_Makefile.shlib) = 2370e3c4260ba7f947b0c15b9bdc43e4820e01a4
SHA1 (patch-src_backend_Makefile) = 76ddd3015d93b19cdd6000eaffc4f53cbd4965b5
SHA1 (patch-src_backend_access_gist_gistutil.c) = 915f545f3cec156cc20b356feb5dd2fdd849dafc
SHA1 (patch-src_include_access_htup.h) = 5c057067a55f19af280e500f676583e5b653225e
SHA1 (patch-src_include_access_itup.h) = 140981895f4ec05cc0073cd4538721ab43602380
SHA1 (patch-src_makefiles_Makefile.solaris) = 0168f5bc105ffc89d5db40907a08966d8465f5a0
SHA1 (patch-src_pl_plperl_GNUmakefile) = 2b7448d6dd8550e2ea61f40728a2780068b93d07
SHA1 (patch-src_pl_plperl_plperl.h) = bd663fa80a47f7b82ce689060750fa6e631fbc61

View file

@ -1,22 +0,0 @@
$NetBSD: patch-src_backend_access_gist_gistutil.c,v 1.1 2012/10/07 10:24:54 marino Exp $
GCC 4.6 and GCC 4.7 do not consider the storage array has having a constant
size due to the macro definition of GEVHDRSZ found in gist.h
"gistutil.c:248:14: error: storage size of `storage` isn't constant"
Using an enumeration satisfies these compilers.
--- src/backend/access/gist/gistutil.c.orig 2012-09-19 21:50:31.000000000 +0000
+++ src/backend/access/gist/gistutil.c
@@ -244,8 +244,11 @@ gistMakeUnionKey(GISTSTATE *giststate, i
{
int dstsize;
+ enum {
+ GEV_STORAGE_SIZE = 2 * sizeof(GISTENTRY) + GEVHDRSZ
+ };
- static char storage[2 * sizeof(GISTENTRY) + GEVHDRSZ];
+ static char storage[GEV_STORAGE_SIZE];
GistEntryVector *evec = (GistEntryVector *) storage;
evec->n = 2;

View file

@ -1,53 +0,0 @@
$NetBSD: patch-src_include_access_htup.h,v 1.1 2012/10/07 10:24:54 marino Exp $
Fixes GCC 4.7 warning and error
Also see comments about similar problems in patch-src_include_access_ihup.h
htup.h:464:2: warning: variably modified 'mt_padding' at file scope
[enabled by default]
relscan.h:51:15: error: variably modified 'rs_vistuples' at file scope
The relscan.h error is caused by the MaxHeapTuplesPerPage definition found
in htup.h. Use enum method to satisfy gcc.
--- src/include/access/htup.h.orig 2012-09-19 21:50:31.000000000 +0000
+++ src/include/access/htup.h
@@ -16,6 +16,7 @@
#include "access/tupdesc.h"
#include "access/tupmacs.h"
+#include "storage/bufpage.h"
#include "storage/itemptr.h"
#include "storage/relfilenode.h"
@@ -405,9 +406,10 @@ do { \
* pointers to this anyway, to avoid excessive line-pointer bloat and not
* require increases in the size of work arrays.
*/
-#define MaxHeapTuplesPerPage \
- ((int) ((BLCKSZ - SizeOfPageHeaderData) / \
- (MAXALIGN(offsetof(HeapTupleHeaderData, t_bits)) + sizeof(ItemIdData))))
+#define MaxHeapTuplesPerPageInt \
+ (BLCKSZ - SizeOfPageHeaderData) / \
+ (MAXALIGN(offsetof(HeapTupleHeaderData, t_bits)) + \
+ sizeof(ItemIdData))
/*
* MaxAttrSize is a somewhat arbitrary upper limit on the declared size of
@@ -452,11 +454,16 @@ do { \
*/
#define MINIMAL_TUPLE_OFFSET \
((offsetof(HeapTupleHeaderData, t_infomask2) - sizeof(uint32)) / MAXIMUM_ALIGNOF * MAXIMUM_ALIGNOF)
-#define MINIMAL_TUPLE_PADDING \
+#define MINIMAL_TUPLE_PADDING_MACRO \
((offsetof(HeapTupleHeaderData, t_infomask2) - sizeof(uint32)) % MAXIMUM_ALIGNOF)
#define MINIMAL_TUPLE_DATA_OFFSET \
offsetof(MinimalTupleData, t_infomask2)
+enum {
+ MINIMAL_TUPLE_PADDING = MINIMAL_TUPLE_PADDING_MACRO,
+ MaxHeapTuplesPerPage = MaxHeapTuplesPerPageInt
+};
+
typedef struct MinimalTupleData
{
uint32 t_len; /* actual length of minimal tuple */

View file

@ -1,26 +0,0 @@
$NetBSD: patch-src_include_access_itup.h,v 1.1 2012/10/07 10:24:54 marino Exp $
GCC 4.7 fails on nbtree.h:509:16 with this message:
error: variably modified 'items' at file scope
It does like defining records with "variable" array lengths
Use the enum trick to convertMaxIndexTuplesPerPage into a constant
--- src/include/access/itup.h.orig 2012-09-19 21:50:31.000000000 +0000
+++ src/include/access/itup.h
@@ -133,10 +133,13 @@ typedef IndexAttributeBitMapData *IndexA
* IndexTupleData struct. We arrive at the divisor because each tuple
* must be maxaligned, and it must have an associated item pointer.
*/
-#define MaxIndexTuplesPerPage \
- ((int) ((BLCKSZ - SizeOfPageHeaderData) / \
- (MAXALIGN(sizeof(IndexTupleData) + 1) + sizeof(ItemIdData))))
+#define MaxIndexTuplesPerPageInt \
+ (BLCKSZ - SizeOfPageHeaderData) / \
+ (MAXALIGN(sizeof(IndexTupleData) + 1) + sizeof(ItemIdData))
+enum {
+ MaxIndexTuplesPerPage = MaxIndexTuplesPerPageInt
+};
/* routines in indextuple.c */
extern IndexTuple index_form_tuple(TupleDesc tupleDescriptor,