[HACKERS] Porting PostgreSQL to DragonFly BSD
>From what I have checked, all work on making postgresql compile on new platforms should be posted to this list, so here it goes. The attached patch (also available at http://www.rumko.net/0001-DragonFly-BSD-support.patch ) applies cleanly to the master branch and can be cherry-picked to REL9_0_STABLE branch without conflicts. It's based on postgres' FreeBSD support with minimal changes (a few freebsd->dragonfly renames, removed mips support since dragonfly does not support it and it also includes a patch to properly define the linker on dfly as per PR pkg/44617 in http://www.netbsd.org/support/query-pr.html gnats database). -- Regards, Rumko 0001-DragonFly-BSD-support.patch Description: application/mbox -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] Porting PostgreSQL to DragonFly BSD
On Sunday 27. of February 2011 23:50:17 Peter Eisentraut wrote: > On sön, 2011-02-27 at 21:19 +0100, Rumko wrote: > > The attached patch (also available at > > http://www.rumko.net/0001-DragonFly-BSD-support.patch ) applies cleanly > > to the master branch and can be cherry-picked to REL9_0_STABLE branch > > without conflicts. > > It seems to me that it would be easier to just map dragonfly to the > freebsd template. I didn't see a precedence for that kind of introduction of a new platform (all others seem to have their own templates), so thought it would've had less chance of being accepted. Is it preferable to have it linked instead of having it separate like in the current patch? -- Regards, Rumko signature.asc Description: This is a digitally signed message part.
Re: [HACKERS] Porting PostgreSQL to DragonFly BSD
On Tuesday 1. of March 2011 16:07:47 Tom Lane wrote: > Rumko writes: > > On Sunday 27. of February 2011 23:50:17 Peter Eisentraut wrote: > >> It seems to me that it would be easier to just map dragonfly to the > >> freebsd template. > > > > I didn't see a precedence for that kind of introduction of a new platform > > (all others seem to have their own templates), so thought it would've had > > less chance of being accepted. > > When I looked at that patch, I actually couldn't see anything different > at all from freebsd. We aren't interested in maintaining 99% duplicate > code --- it seems much easier from a maintenance standpoint to introduce > an ifdef or two into the freebsd code, rather than deal with a large cut > and paste job. Please try it that way and see what you come up with. > (It's possible that it'll be so ugly that we agree your original patch > is better, but we need to see the results of the experiment.) > > regards, tom lane Well, wouldn't consider it ugly, but the patch (attached and available at http://www.rumko.net/0001-DragonFly-BSD-support-linked.patch ) is a lot shorter. Uses freebsd's template and defines the linker in Makefile.shlib. -- Regards, Rumko From cf98b549799fac991ee627f16f6131c092913101 Mon Sep 17 00:00:00 2001 From: Rumko Date: Sun, 27 Feb 2011 20:56:11 +0100 Subject: [PATCH] DragonFly BSD support. Based on FreeBSD port with minimal changes. --- configure |1 + configure.in |1 + src/Makefile.shlib | 11 +++ 3 files changed, 13 insertions(+), 0 deletions(-) diff --git a/configure b/configure index 0bddb5f..b4da314 100755 --- a/configure +++ b/configure @@ -2196,6 +2196,7 @@ case $host_os in darwin*) template=darwin ;; dgux*) template=dgux ;; freebsd*) template=freebsd ;; +dragonfly*) template=freebsd ;; hpux*) template=hpux ;; irix*) template=irix ;; linux*|gnu*|k*bsd*-gnu) diff --git a/configure.in b/configure.in index 6aae504..5178570 100644 --- a/configure.in +++ b/configure.in @@ -60,6 +60,7 @@ case $host_os in darwin*) template=darwin ;; dgux*) template=dgux ;; freebsd*) template=freebsd ;; +dragonfly*) template=freebsd ;; hpux*) template=hpux ;; irix*) template=irix ;; linux*|gnu*|k*bsd*-gnu) diff --git a/src/Makefile.shlib b/src/Makefile.shlib index a5cf6c6..a78c98c 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -198,6 +198,17 @@ ifeq ($(PORTNAME), netbsd) endif endif +ifeq ($(PORTNAME), dragonfly) + ifdef ELF_SYSTEM +LINK.shared= $(COMPILER) -shared +ifdef soname + LINK.shared += -Wl,-x,-soname,$(soname) +endif + else +LINK.shared= $(LD) -x -Bshareable -Bforcearchive + endif +endif + ifeq ($(PORTNAME), hpux) ifdef SO_MAJOR_VERSION shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) -- 1.7.3.5 signature.asc Description: This is a digitally signed message part.
Re: [HACKERS] Porting PostgreSQL to DragonFly BSD
On Tuesday 1. of March 2011 22:44:16 Peter Eisentraut wrote: > On tis, 2011-03-01 at 22:22 +0100, Rumko wrote: > > Well, wouldn't consider it ugly, but the patch (attached and available at > > http://www.rumko.net/0001-DragonFly-BSD-support-linked.patch ) is a lot > > shorter. > > > > Uses freebsd's template and defines the linker in Makefile.shlib. > > The piece in Makefile.shlib you add is dead code because PORTNAME will > never be "dragonfly" (it would be "freebsd"). Ah, good to know. > I see there is a > difference between the existing freebsd code and what you propose to add > in that freebsd doesn't use shared object minor versions. Is that also > or not the case on DragonFly BSD? Due to pkgsrc being the default on NetBSD and DragonFly BSD, it should create the libs in the same way ... maybe instead of using PORTNAME, we could use host_os to differentiate? -- Regards, Rumko signature.asc Description: This is a digitally signed message part.
Re: [HACKERS] Porting PostgreSQL to DragonFly BSD
On Tuesday 1. of March 2011 23:05:17 Rumko wrote: > On Tuesday 1. of March 2011 22:44:16 Peter Eisentraut wrote: > > On tis, 2011-03-01 at 22:22 +0100, Rumko wrote: > > > Well, wouldn't consider it ugly, but the patch (attached and available > > > at http://www.rumko.net/0001-DragonFly-BSD-support-linked.patch ) is a > > > lot shorter. > > > > > > Uses freebsd's template and defines the linker in Makefile.shlib. > > > > The piece in Makefile.shlib you add is dead code because PORTNAME will > > never be "dragonfly" (it would be "freebsd"). > > Ah, good to know. > > > I see there is a > > difference between the existing freebsd code and what you propose to add > > in that freebsd doesn't use shared object minor versions. Is that also > > or not the case on DragonFly BSD? > > Due to pkgsrc being the default on NetBSD and DragonFly BSD, it should > create the libs in the same way ... maybe instead of using PORTNAME, we > could use host_os to differentiate? What about this patch ( http://www.rumko.net/0001-DragonFly-BSD-support-linked-nbsd.patch )? instead of linking to freebsd, it's linked to netbsd and It still compiles due to the two templates being similar enough. -- Regards, Rumko From 1ba04688d97d8e6d489d2d44b335cf03c64564bb Mon Sep 17 00:00:00 2001 From: Rumko Date: Sun, 27 Feb 2011 20:56:11 +0100 Subject: [PATCH] DragonFly BSD support. Based on NetBSD port. --- configure|1 + configure.in |1 + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/configure b/configure index 0bddb5f..e55714c 100755 --- a/configure +++ b/configure @@ -2196,6 +2196,7 @@ case $host_os in darwin*) template=darwin ;; dgux*) template=dgux ;; freebsd*) template=freebsd ;; +dragonfly*) template=netbsd ;; hpux*) template=hpux ;; irix*) template=irix ;; linux*|gnu*|k*bsd*-gnu) diff --git a/configure.in b/configure.in index 6aae504..d45cbc8 100644 --- a/configure.in +++ b/configure.in @@ -60,6 +60,7 @@ case $host_os in darwin*) template=darwin ;; dgux*) template=dgux ;; freebsd*) template=freebsd ;; +dragonfly*) template=netbsd ;; hpux*) template=hpux ;; irix*) template=irix ;; linux*|gnu*|k*bsd*-gnu) -- 1.7.3.5 signature.asc Description: This is a digitally signed message part.
Re: [HACKERS] Porting PostgreSQL to DragonFly BSD
On Wednesday 2. of March 2011 20:18:08 Peter Eisentraut wrote: > On ons, 2011-03-02 at 09:10 +0100, Rumko wrote: > > What about this patch ( > > http://www.rumko.net/0001-DragonFly-BSD-support-linked-nbsd.patch )? > > instead of linking to freebsd, it's linked to netbsd and It still > > compiles due to the two templates being similar enough. > > Looks good. Committed. Thank you. -- Regards, Rumko signature.asc Description: This is a digitally signed message part.