aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.shlib7
-rw-r--r--src/backend/port/dynloader/freebsd.c2
-rwxr-xr-xsrc/configure2
-rw-r--r--src/configure.in2
-rw-r--r--src/makefiles/Makefile.freebsd10
5 files changed, 15 insertions, 8 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index 889f24b8325..a569b73cc32 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.8 1999/04/30 02:04:49 momjian Exp $
+# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.9 1999/05/17 04:13:24 scrappy Exp $
#
#-------------------------------------------------------------------------
@@ -59,10 +59,11 @@ install-shlib-dep :=
ifeq ($(PORTNAME), freebsd)
ifdef BSD_SHLIB
install-shlib-dep := install-shlib
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifdef ELF_SYSTEM
- LDFLAGS_SL := -x -Bshareable
+ shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ LDFLAGS_SL := -x -shared -soname $(shlib)
else
+ shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LDFLAGS_SL := -x -Bshareable -Bforcearchive
endif
CFLAGS += $(CFLAGS_SL)
diff --git a/src/backend/port/dynloader/freebsd.c b/src/backend/port/dynloader/freebsd.c
index 51ad3d99a66..14d21fb61f2 100644
--- a/src/backend/port/dynloader/freebsd.c
+++ b/src/backend/port/dynloader/freebsd.c
@@ -83,11 +83,13 @@ BSD44_derived_dlsym(void *handle, const char *name)
void *vp;
char buf[BUFSIZ];
+#ifndef __ELF__
if (*name != '_')
{
sprintf(buf, "_%s", name);
name = buf;
}
+#endif
if ((vp = dlsym(handle, (char *) name)) == (void *) NULL)
sprintf(error_message, "dlsym (%s) failed", name);
return vp;
diff --git a/src/configure b/src/configure
index ad220cc1b08..8fe5f429f3a 100755
--- a/src/configure
+++ b/src/configure
@@ -625,8 +625,8 @@ case "$host_os" in
aux*) os=aux need_tas=no ;;
linux*) os=linux need_tas=no ;;
bsdi*) os=bsdi need_tas=no ;;
- freebsd3*|freebsd4*) os=freebsd need_tas=no elf=yes ;;
freebsd1*|freebsd2*) os=freebsd need_tas=no ;;
+ freebsd*) os=freebsd need_tas=no elf=yes ;;
netbsd*)
os=bsd need_tas=no
case "$host_cpu" in
diff --git a/src/configure.in b/src/configure.in
index 792af606dfc..e4762d2baeb 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -20,8 +20,8 @@ case "$host_os" in
aux*) os=aux need_tas=no ;;
linux*) os=linux need_tas=no ;;
bsdi*) os=bsdi need_tas=no ;;
- freebsd3*|freebsd4*) os=freebsd need_tas=no elf=yes ;;
freebsd1*|freebsd2*) os=freebsd need_tas=no ;;
+ freebsd*) os=freebsd need_tas=no elf=yes ;;
netbsd*)
os=bsd need_tas=no
case "$host_cpu" in
diff --git a/src/makefiles/Makefile.freebsd b/src/makefiles/Makefile.freebsd
index fcbcd84de40..7bf42588168 100644
--- a/src/makefiles/Makefile.freebsd
+++ b/src/makefiles/Makefile.freebsd
@@ -1,13 +1,17 @@
+ifdef ELF_SYSTEM
+LDFLAGS+= -export-dynamic
+endif
+
%.so: %.o
+ifdef ELF_SYSTEM
+ $(LD) -x -shared -o $@ $<
+else
$(LD) -x -r -o $<.obj $<
@echo building shared object $@
@rm -f $@.pic
@${AR} cq $@.pic `lorder $<.obj | tsort`
${RANLIB} $@.pic
@rm -f $@
-ifdef ELF_SYSTEM
- $(LD) -x -Bshareable -o $@ $@.pic
-else
$(LD) -x -Bshareable -Bforcearchive -o $@ $@.pic
endif