Here is a pair of patches that (I hope) finish the configuration
issues with tcl/tk and make the recognition of the two packages
completely parallel in organization. This should make future changes
easier to maintain.
Hope to see this in 6.2.2.
probleme number 1 :
- configure can find the library readline , but don't
find the header file . so in this case we don't use lib readline
.
probleme number 2 :
- when you have postgres 6.2.1 and readline installed
with the same prefix( and generally all your software ) . you
can compile the version 6.3 . I use this prefix , when configure
ask me for "Additional directories to search for include files"
.
( because there a conflict in the header when you
compile psql.c ) In this case, you must permut the sequence of
directive -I .
Erwan MAS
the configuration of v6.3.1. I have replaced the queries for
include/lib directories with --with configuration options. I have
also included a list of potential tcl/tk include directories directly
in the CPPFLAGS variable. As new versions are needed, these should
be added to the list in reverse numerical order (libraries are in
a separate list near the end). This greatly simplifies the later
checks if --with-tcl is set. I hope this solution works for
everyone.
I also added a check to disable the perl support if postgres was
not already installed (as per the instructions in the directory).
By the way, why must there be an installed pgsql to compile perl
support? This seems odd, at best.
Finally, I changed the Makefile in the libpgtcl interface to place
the shared libraries at the end of the list of files, not at the
beginning. With NetBSD at least, libraries are linked in order,
so the original sequence does not work.
Brook Milligan
However somebody else also applied a patch to the same part of
configure to fix a different problem. So part of my patch was not
applied or got reversed or ... whatever.
The attached patch will restore configure --with-tcl to working
order and should remove a lot of the messages complaining about
tcl not working.
Alvin
2) Add "#define gettimeofday(a,b) gettimeofday(a) to src/include/config.h
On the 88k SVR4, gettimeofday only has one argument. This is
checked for in a few other packages by configure, so there should
be some examples of the configure test out there.
There is an error in the configure script when using
--with-pgport= that will cause the compiled version of
PostgreSQL to no longer allow connections to the
new port and to treat shared memory improperly.
What happens is that if the port is changed, the configure
script defines DEF_PGPORT as "", which atoi() will return
as 0, which makes the IPC_KEY value 0. This then causes
semaphores to be allocated, but never released. Postgres
eventually returns from semget() with
"no space left on device". The source of this error could
easily be overlooked in version 6.3 since it is possible
to connect via UNIX domain sockets, and having DEF_PGPORT
defined as "0" would not be noticed until TCP was used.
Included are patches intended for allowing PostgreSQL to handle
multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and
Mule internal code. With the MB patch you can use multi-byte character
sets in regexp and LIKE. The encoding system chosen is determined at
the compile time.
To enable the MB extension, you need to define a variable "MB" in
Makefile.global or in Makefile.custom. For further information please
take a look at README.mb under doc directory.
(Note that unlike "jp patch" I do not use modified GNU regexp any
more. I changed Henry Spencer's regexp coming with PostgreSQL.)
Ok. I have decided to use:
#if defined(sun) && if defined(sparc) && !defined(__svr4)
instead of defined(sunos4). interfaces/libpq/libpq-fe.h and
include/c.h have been modified(see included patches).
Another porblems I have found are:
o SunOS lacks strtoul(). to fix this I stole strtoul.c from FreeBSD
and place it under backend/port. necessary modifications have been
also made to backend/port/Makefile.in, include/config.h.in and
configure.in (see included patches).
whatsoever. The patch is not a solution, because configure is generated
from configure.in, and I don't know how to patch it to get a working
'configure'.
From: "Pedro J. Lobo" <pjlobo@euitt.upm.es>
Hi -- a couple of small items concerning the January 23rd snapshot:
the inclusion of the Kerberos stuff in one Makefile, a "leading tab"
cleanup in another, and a fix for a typo in the configure script.
The attached patches will allow postgreSQL to compile successfully on SCO
UNIXWARE 2.1.x. The patches fix the following problems:
1. Configure did not properly recognize the UNIXWARE system as needing the
univel port. It used the sys4 port.
2. Configure did not properly process the CC flag in the template file.
3. There was no working test and set locking implementation for the native
UNIXWARE compiler.
4. The test and set locking used for Intel X86 that was selected by defining
NEED_I386_TAS_ASM could fail in a multi-processor environment.
5. The makefiles for libpq and libpgtcl did not make a shared library for
the univel port.
Makefile.global.
End result, if all goes well, should allow for much easier porting, since
there will no longer be a concept of a "port". Most, if not everything,
*should* be determined by configure, or by the compiler itself. Still
work to be done though :)
Subject: [PATCHES] Patch for configure.in to not ask for CASSERT
The following patch defaults to CASSERT, so it doesn't ask you. You can
still use --enable-cassert and --disable-cassert to do it explicitly.
Default: disabled
Subject: [HACKERS] Another patch to configure.in
I heard very little in objections/approvals to defaulting some of the
parameters to configure. Enclosed is a patch to configure.in which
removes the questions for
PGPORT
USE_LOCALE
NOHBA
By default (i.e. assuming you don't put anything extra in the configure
command line), it assumes PGPORT=5432, USE_LOCAL=no and NOHBA=no (i.e.
HBA is turned on)
--with-pgport=PGPORT_NO Over-rides the PGPORT value
--enable-locale enables USE_LOCALE
--disable-hba disables HBA
Just for completeness:
--prefix=BASEDIR Defaults to /usr/local/pgsql
--with-template=TEMPLATE Defaults to asking you
FreeBSD
The Makefile(s) have all been cleaned up such that there is a single
LDFLAGS vs LD_ADD or LDADD or LDFLAGS or LDFLAGS_BE. The Makefile(s)
should be alot more straightforward then they were before...and
consistent
Further extended Makefile.global/build/configure so that we can
have a 'template' file for each OS (and each version of OS, as in BSDi)
which is used as much as possible to generate Makefile.global
Any future ports should look at using the template file as a basis,
before moving over to Makefile.global.
This will most probably break alot of the ports, atho I've tried to
be very neat about it...
Remove USE_LOCALE from Makefile.global.in
Add USE_LOCALE to build/configure/config.h
Add check for BUILDRUN in configure to make sure that build is run before
configure
of endian.h. I figure that if it exists it's pretty sure that it has
the byte order information and we may catch some other ports without
any further testing.
From: "D'Arcy J.M. Cain" <darcy@druid.net>
Essentially, config.h now includes an 'os.h', which is created via
configure by linking a "port.h" file from the port directory to the
include directory.
Going to try to merge backend/port in similar ways
Add a check to configure for strdup
Remove all the '-ltermcap' checks from psql/Makefile
Have {psql,pg_dump}/Makefile modified if strdup doesn't exist on the system
Add CFLAGS= @CPPFLAGS@ to Makefile.global and configure so that build is
useful for finding extra header files
Split header files from libraries in build. Doesn't make much sense to
look for a header file in /usr/local/lib, nor to look for a library
in /usr/local/include :)