提交 a0b7daa1 编写于 作者: M Marc G. Fournier

Apply freebsd specific patches dealign with ELF system from FreeBSD's
ports collection ...
上级 61f618e7
......@@ -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)
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册