From 87f5fda6b946917284d298a8251684c30eedbc61 Mon Sep 17 00:00:00 2001 From: Bryan Henderson Date: Mon, 18 Nov 1996 02:23:41 +0000 Subject: [PATCH] Make port-specific link libraries defined for linking backend more global so you can also link pgtclsh. --- src/Makefile.global | 138 ++++++++++++++----------------------------- src/backend/Makefile | 87 +-------------------------- 2 files changed, 45 insertions(+), 180 deletions(-) diff --git a/src/Makefile.global b/src/Makefile.global index fda540f4d3..5060a501e0 100644 --- a/src/Makefile.global +++ b/src/Makefile.global @@ -7,7 +7,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.70 1996/11/17 20:30:32 momjian Exp $ +# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.71 1996/11/18 02:23:16 bryanh Exp $ # # NOTES # Essentially all Postgres make files include this file and use the @@ -261,24 +261,8 @@ include $(SRCDIR)/Makefile.custom endif ############################################################################# -# include port specific rules and variables. For instance: +# include port specific rules and variables. # -# signal(2) handling - this is here because it affects some of -# the frontend commands as well as the backend server. -# -# Ultrix and SunOS provide BSD signal(2) semantics by default. -# -# SVID2 and POSIX signal(2) semantics differ from BSD signal(2) -# semantics. We can use the POSIX sigaction(2) on systems that -# allow us to request restartable signals (SA_RESTART). -# -# Some systems don't allow restartable signals at all unless we -# link to a special BSD library. -# -# We devoutly hope that there aren't any systems that provide -# neither POSIX signals nor BSD signals. The alternative -# is to do signal-handler reinstallation, which doesn't work well -# at all. # # HISTORY: Before October 1996, this file included the following line: # -include $(MKDIR)/port/postgres.mk.$(PORTNAME) @@ -309,8 +293,6 @@ SLSUFF= .so #---------------------------------------------------------------------- ifeq ($(PORTNAME), BSD44_derived) -MK_PORT= BSD44_derived - # cc is gcc, but never mind about that... CC= gcc @@ -319,7 +301,7 @@ RANLIB= /usr/bin/ranlib # FreeBSD 2.1R with new Flex v2.5.2 in /usr/local LEX= flex -LDADD+= -L/usr/local/lib -lfl +LDADD_BE= -L/usr/local/lib -lfl CFLAGS_SL= -fpic -DPIC @@ -337,13 +319,11 @@ endif #-------------------------------------------------------------------------- ifeq ($(PORTNAME), aix) -MK_PORT= aix - # might want to try installbsd instead INSTALL= /usr/ucb/install # the -lm is because "pow" is defined in libbsd.a and we want pow(3m) -LDADD_BE= -lm -lbsd +LDADD_BE= -lm -lbsd -ll -lld # MAKE_EXPORTS is required for svr4 loaders that want a file of # symbol names to tell them what to export/import. @@ -357,7 +337,7 @@ MAKE_EXPORTS= true # The HAVE_ANSI_CPP flag indicates that cc isn't ANSI but also doesn't # have a Reiser (pcc-style) cpp. # -CFLAGS_BE+= -qchars=signed -qmaxmem=4000 -DHAVE_ANSI_CPP +CFLAGS_BE= -qchars=signed -qmaxmem=4000 EXPSUFF= .exp @@ -377,9 +357,6 @@ endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), alpha) -MK_PORT= alpha -CFLAGS_BE+= -DUSE_POSIX_SIGNALS - # NOFIXADE disallows unaligned access. # on Ultrix and OSF/1 it invokes an explicit syscall. # on HP-UX it turns off certain compiler options. @@ -387,10 +364,11 @@ CFLAGS_BE+= -DUSE_POSIX_SIGNALS # which is where the work is done on HP-UX. It only affects the # backend on Ultrix and OSF/1. ifdef ENFORCE_ALIGNMENT -CFLAGS_BE+= -DNOFIXADE +CFLAGS_BE= -DNOFIXADE else -CFLAGS_BE+= -DNOPRINTADE +CFLAGS_BE= -DNOPRINTADE endif +LDADD_BE= -lln # use the regex library USE_REGEX= 1 @@ -398,8 +376,6 @@ USE_REGEX= 1 %.so: %.o $(LD) -shared -expect_unresolved '*' -o $@ $< -CLEANFILES+= so_locations - DASH_N= BACKSLASH_C= '\\\\c' @@ -408,8 +384,6 @@ endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), bsdi) -MK_PORT= bsdi - CC= gcc PRE_BSDI_2_1= false @@ -424,7 +398,7 @@ ifeq ($(PRE_BSDI_2_1), false) # cc is gcc v1.42 # gcc is gcc v2.7.2 LEX= lex - LD_ADD+= -ltermcap + LDADD_BE= -ltermcap -ldl -lipc else # cc is gcc v1.42 # gcc is gcc v2.6.3 @@ -432,7 +406,7 @@ else # use the regex library USE_REGEX= 1 CFLAGS_BE= -DPRE_BSDI_2_1 - LDADD_BE= -ldld -lcompat + LDADD_BE= -ldld -lcompat -lipc endif endif @@ -440,15 +414,12 @@ endif #-------------------------------------------------------------------------- ifeq ($(PORTNAME), dgux) -MK_PORT= linux - CFLAGS_SL= -fpic %.so: %.o $(CC) -shared -o $@ $< CC= gcc -CFLAGS_BE= -D__USE_POSIX_SIGNALS -DUSE_POSIX_SIGNALS LDADD_BE= -ldl -lfl LEX= flex @@ -461,16 +432,25 @@ endif #---------------------------------------------------------------------------- ifeq ($(PORTNAME), hpux) -MK_PORT= hpux +# -W l,-E export symbols for linking with the shared libraries +# dynamic loader -LDADD_BE= -lBSD +LDADD_BE= -lBSD -ll +ifeq $(CC), cc) + CFLAGS_BE= -W l,-E + LDFLAGS_BE= -W l,-E + LDADD_BE+= -ldld +endif +ifeq ($(CC), gcc) + LDADD_BE+= /usr/lib/libdld.sl +endif ifdef ENFORCE_ALIGNMENT -CFLAGS_BE= -DNOFIXADE + CFLAGS_BE= -DNOFIXADE else -HPUX_VERS:= $(shell uname -r) -HPUX_MAJOR= ${HPUX_VERS:R:E} -HPUX_MINOR= ${HPUX_VERS:E} + HPUX_VERS:= $(shell uname -r) + HPUX_MAJOR= ${HPUX_VERS:R:E} + HPUX_MINOR= ${HPUX_VERS:E} ifeq ($(HPUX_MAJOR), 08) CFLAGS_BE+= +u -DHP_S500_ALIGN LDFLAGS_BE+= +u @@ -509,13 +489,9 @@ endif #-------------------------------------------------------------------------- ifeq ($(PORTNAME), i386_solaris) -MK_PORT= i386_solaris - # cc won't work! CC= gcc -CFLAGS_BE+= -DUSE_POSIX_SIGNALS - # RANLIB is not used on solaris RANLIB= touch @@ -526,10 +502,10 @@ INSTALL= /usr/ucb/install # everything to compile. :-/ # # The extra -I flag is to scoop up extra BSD-emulating headers. -CFLAGS_BE+= -DSYSV_DIRENT -I$(SRCDIR)/backend/port/sparc_solaris -LDADD_BE+= -lsocket -lnsl - -LD_ADD+= $(LDADD_BE) +# This needs to be fixed. Things other than the backend should not be +# accessing headers in the backend directory. +CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris +LDADD_BE= -lsocket -lnsl -ll -ldl ifeq ($(CC), cc) CFLAGS_SL= -K PIC @@ -548,9 +524,7 @@ endif #---------------------------------------------------------------------------- ifeq ($(PORTNAME), irix5) -MK_PORT= irix5 - -CFLAGS_BE+= -DUSE_POSIX_SIGNALS +LDADD_BE= -ll # RANLIB is not used on IRIX 5 RANLIB= touch @@ -561,14 +535,6 @@ INSTLOPTS= -m 444 INSTL_EXE_OPTS= -m 555 INSTL_LIB_OPTS= -m 664 -# -# Random things that must be passed everywhere to enable -# everything to compile. :-/ -# -CFLAGS_BE+= -DSYSV_DIRENT - -LD_ADD+= $(LDADD_BE) - %.so: %.o $(LD) -G -Bdynamic -o $@ $< @@ -580,13 +546,13 @@ endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), linux) -MK_PORT= linux - ifndef LINUX_ELF SLSUFF= .o +LDADD_BE= -ldld else SLSUFF= .so -LDFLAGS+= -rdynamic +LDADD_BE= -ldl +LDFLAGS_BE= -rdynamic endif MK_NO_LORDER= true @@ -601,8 +567,7 @@ CFLAGS_SL= -fpic # The Linux gnulib #defines the problem away for you and calls # the BSD routines if you give it the right flags. -CFLAGS_BE= -D__USE_BSD -D__USE_BSD_SIGNAL -LDADD_BE= -lbsd +LDADD_BE+= -lbsd LEX= flex @@ -611,8 +576,6 @@ endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), sparc) -MK_PORT= sparc - # cc won't work! CC= gcc @@ -624,6 +587,7 @@ CFLAGS_SL= -PIC else CFLAGS_SL= -fPIC endif +LDADD_BE= -lln -ldl %.so: %.o $(LD) -dc -dp -Bdynamic -o $@ $< @@ -632,12 +596,10 @@ endif #---------------------------------------------------------------------------- ifeq ($(PORTNAME), sparc_solaris) -MK_PORT= sparc_solaris - # cc won't work! CC= gcc -CFLAGS_BE+= -DUSE_POSIX_SIGNALS +LDADD_BE= -ll -ldl # RANLIB is not used on solaris RANLIB= touch @@ -649,11 +611,9 @@ INSTALL= /usr/ucb/install # everything to compile. :-/ # # The extra -I flag is to scoop up extra BSD-emulating headers. -CFLAGS_BE+= -DSYSV_DIRENT -I$(SRCDIR)/backend/port/sparc_solaris +CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris LDADD_BE+= -lsocket -lnsl -LD_ADD+= $(LDADD_BE) - ifeq ($(CC), cc) CFLAGS_SL= -K PIC else @@ -671,13 +631,9 @@ endif #----------------------------------------------------------------------------- ifeq ($(PORTNAME), svr4) -MK_PORT= svr4 - CFLAGS+= -W0 YACC= bison -y -CFLAGS_BE+= -DUSE_POSIX_SIGNALS - # MAKE_EXPORTS is required for svr4 loaders that want a file of # symbol names to tell them what to export/import. MAKE_EXPORTS= true @@ -693,16 +649,9 @@ INSTALL= /home/tools/bin/install # everything to compile. :-/ # # The extra -I flag is to scoop up extra BSD-emulating headers. -CFLAGS_BE+= -DSYSV_DIRENT -I$(SRCDIR)/backend/port/svr4 -LDADD_BE+= -lsocket -lnsl -lc /usr/ucblib/libucb.a - -LD_ADD+= $(LDADD_BE) - -ifeq ($(CC), cc) -#CFLAGS_SL= -K PIC -else -#CFLAGS_SL= -fPIC -endif +CFLAGS_BE+= -I$(SRCDIR)/backend/port/svr4 +LDADD_BE= -lsocket -lnsl -lc /usr/ucblib/libucb.a -ll -ldl +LDFLAGS_BE= -LD-Blargedynsym %.so: %.o $(LD) -G -Bdynamic -o $@ $< @@ -714,11 +663,10 @@ endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), ultrix4) -MK_PORT= ultrix4 - ifdef ENFORCE_ALIGNMENT CFLAGS_BE= -DNOFIXADE endif +LDADD_BE= -ldl -lln # install creates intermediate directories NO_BEFOREINSTL= true @@ -732,6 +680,9 @@ SLSUFF= .o endif +ifneq ($(PORTNAME), next) +LDADD_BE+= -lm +endif # This goes here so that customization in Makefile.custom is effective ############################################################################## @@ -785,7 +736,6 @@ endif ifdef COPT CFLAGS+= $(COPT) - LDFLAGS+= $(COPT) else ifndef CFLAGS_OPT CFLAGS_OPT= -O diff --git a/src/backend/Makefile b/src/backend/Makefile index 38b7af4243..5578e2be9e 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -34,98 +34,13 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.15 1996/11/12 06:46:04 bryanh Exp $ +# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.16 1996/11/18 02:23:41 bryanh Exp $ # #------------------------------------------------------------------------- SRCDIR = .. include ../Makefile.global - -########################################################################## -# Determine linker flags for this platform (mainly, the libraries with -# which to link). -########################################################################## - -# All systems except NEXTSTEP require the math library. -# Loader flags for system-dependent libraries are appended in -# src/backend/port/$(PORTNAME)/Makefile.inc -# -ifneq ($(PORTNAME), next) -LDADD+= -lm -endif - -ifeq ($(PORTNAME), aix) -LDADD+= -ll -lld -endif - -ifeq ($(PORTNAME), alpha) -LDADD+= -lln -endif - -ifeq ($(PORTNAME), bsdi) - ifeq ($(PRE_BSDI_2_1), false) - LDADD+= -ldl -lipc - else - LDADD+= -ldld -lipc - endif -endif - -ifeq ($(PORTNAME), hpux) -# HP-UX needs: -# -W l,-E export symbols for linking with the shared libraries -# dynamic loader -# -W p,-H400000 expand cpp #define table size so the Nodes files don't -# break it -# -# -W p,-H400000 -ifeq ($(CC), cc) -CFLAGS+= -W l,-E -LDFLAGS+= -W l,-E -LDADD+= -ll -ldld -else -ifeq ($(CC), gcc) -LDADD+= -ll /usr/lib/libdld.sl -endif -endif -endif - -ifeq ($(PORTNAME), i386_solaris) -LDADD+= -ll -ldl -endif - -ifeq ($(PORTNAME), irix5) -LDADD+= -ll -endif - -ifeq ($(PORTNAME), linux) -ifdef LINUX_ELF -LDADD+= -ldl -else -LDADD+= -ldld -endif -endif - -ifeq ($(PORTNAME), sparc) -LDADD+= -lln -ldl -endif - -ifeq ($(PORTNAME), sparc_solaris) -LDADD+= -ll -ldl -endif - -ifeq ($(PORTNAME), svr4) -LDADD+= -ll -ldl -# the following is special for Reliant UNIX SVR4 (formerly SINIX) -LDFLAGS+= -LD-Blargedynsym -endif - -ifeq ($(PORTNAME), ultrix4) -LDADD+= -ldl -lln -endif - -############################################################################# - OBJS = access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o \ commands/SUBSYS.o executor/SUBSYS.o \ lib/SUBSYS.o libpq/SUBSYS.o main/SUBSYS.o nodes/SUBSYS.o \