pgsql: Implement a few changes to how shared libraries and dynamically

Started by Nonamealmost 18 years ago4 messages
#1Noname
petere@postgresql.org

Log Message:
-----------
Implement a few changes to how shared libraries and dynamically loadable
modules are built. Foremost, it creates a solid distinction between these two
types of targets based on what had already been implemented and duplicated in
ad hoc ways before. Specifically,

- Dynamically loadable modules no longer get a soname. The numbers previously
set in the makefiles were dummy numbers anyway, and the presence of a soname
upset a few packaging tools, so it is nicer not to have one.

- The cumbersome detour taken on installation (build a libfoo.so.0.0.0 and
then override the rule to install foo.so instead) is removed.

- Lots of duplicated code simplified.

Modified Files:
--------------
pgsql/src:
Makefile.shlib (r1.113 -> r1.114)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/Makefile.shlib?r1=1.113&r2=1.114)
pgsql/src/backend/snowball:
Makefile (r1.5 -> r1.6)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/snowball/Makefile?r1=1.5&r2=1.6)
pgsql/src/backend/utils/mb/conversion_procs:
proc.mk (r1.8 -> r1.9)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/proc.mk?r1=1.8&r2=1.9)
pgsql/src/interfaces/ecpg/compatlib:
Makefile (r1.39 -> r1.40)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/ecpg/compatlib/Makefile?r1=1.39&r2=1.40)
pgsql/src/interfaces/ecpg/ecpglib:
Makefile (r1.58 -> r1.59)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/ecpg/ecpglib/Makefile?r1=1.58&r2=1.59)
pgsql/src/interfaces/ecpg/pgtypeslib:
Makefile (r1.41 -> r1.42)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/ecpg/pgtypeslib/Makefile?r1=1.41&r2=1.42)
pgsql/src/interfaces/libpq:
Makefile (r1.164 -> r1.165)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/Makefile?r1=1.164&r2=1.165)
pgsql/src/makefiles:
pgxs.mk (r1.11 -> r1.12)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/makefiles/pgxs.mk?r1=1.11&r2=1.12)
pgsql/src/pl/plperl:
GNUmakefile (r1.33 -> r1.34)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/GNUmakefile?r1=1.33&r2=1.34)
pgsql/src/pl/plpgsql/src:
Makefile (r1.31 -> r1.32)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/Makefile?r1=1.31&r2=1.32)
pgsql/src/pl/plpython:
Makefile (r1.28 -> r1.29)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/Makefile?r1=1.28&r2=1.29)
pgsql/src/pl/tcl:
Makefile (r1.50 -> r1.51)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/Makefile?r1=1.50&r2=1.51)
pgsql/src/test/regress:
GNUmakefile (r1.72 -> r1.73)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/GNUmakefile?r1=1.72&r2=1.73)
pgsql/src/tutorial:
Makefile (r1.20 -> r1.21)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/tutorial/Makefile?r1=1.20&r2=1.21)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: pgsql: Implement a few changes to how shared libraries and dynamically

petere@postgresql.org (Peter Eisentraut) writes:

Implement a few changes to how shared libraries and dynamically loadable
modules are built.

Seems this patch has broken all the Windows buildfarm animals ... is
anybody on that?

regards, tom lane

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: [HACKERS] pgsql: Implement a few changes to how shared libraries and dynamically

Tom Lane wrote:

petere@postgresql.org (Peter Eisentraut) writes:

Implement a few changes to how shared libraries and dynamically loadable
modules are built.

Seems this patch has broken all the Windows buildfarm animals ... is
anybody on that?

Not all, only those that use the Makefile build system, i.e. MSVC is not
failing, but MinGW and Cygwin are.

Specifically, we are failing thus during initdb:

creating conversions ... FATAL: could not access file "$libdir/ascii_and_mic": No such file or directory

I can't immediately see the cause, although presumably it's the changes in Makefile.shlib that have done it.

Maybe we need to set up a Windows machine or two somewhere so that committers can test out stuff like this ...

cheers

andrew

#4Magnus Hagander
magnus@hagander.net
In reply to: Andrew Dunstan (#3)
Re: [HACKERS] pgsql: Implement a few changes to how shared libraries and dynamically

Andrew Dunstan wrote:

Tom Lane wrote:

petere@postgresql.org (Peter Eisentraut) writes:

Implement a few changes to how shared libraries and dynamically
loadable modules are built.

Seems this patch has broken all the Windows buildfarm animals ... is
anybody on that?

Not all, only those that use the Makefile build system, i.e. MSVC is
not failing, but MinGW and Cygwin are.

Specifically, we are failing thus during initdb:

creating conversions ... FATAL: could not access file
"$libdir/ascii_and_mic": No such file or directory

I can't immediately see the cause, although presumably it's the
changes in Makefile.shlib that have done it.

Maybe we need to set up a Windows machine or two somewhere so that
committers can test out stuff like this ...

I offered this before, and nobody was interested at the time. I don't
have the resources to do it right now if it would be interesting now,
but I think we can put one up in a VM on one of the community managed
servers actually - as long as you don't need performance, that's
certainly doable.

(I don't have a working mingw env at all right now, still
working on setting up a proper VM with windows + msvc since
changing job, so I can't look at this specific issue right now
myself)

//Magnus