libg++ and libstdc++ also have internal calls to libm. Programs using the

shared versions should not need to add -lm unless the program uses libm
itself.  Strictly speaking, libg++ depends on libstdc++, but libstdc++
has dynamic dependencies on some exception tables and binutils doesn't
seem to like it when a secondary library has undefined references.  It
doesn't seem to care when -lstdc++ is added on the command line to ld
though.  Anyway, the c++ driver adds -lstdc++ explicitly, so that should
be OK.  c++ also adds -lm explicitly too, even though it wouldn't need
to now. [except for statically linked binaries as .a files don't have an
equivalent of automatic internal shared object dependencies.]
This commit is contained in:
peter 1998-10-11 04:56:03 +00:00
parent 02ed78af40
commit 9f6be4544f
2 changed files with 10 additions and 2 deletions

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.19 1997/05/06 00:49:28 jdp Exp $
# $Id: Makefile,v 1.20 1997/05/23 08:33:55 asami Exp $
#
GPPDIR= ${.CURDIR}/../../../contrib/libg++
@ -15,6 +15,11 @@ SHLIB_MINOR= 0
CFLAGS+= -I${GPPDIR}/include -I${DESTDIR}/usr/include/g++
CXXFLAGS+= -I${GPPDIR}/include -I${GPPDIR}/libio -I${GPPDIR}/libstdc++
# Strictly speaking, libg++ should depend on libstdc++, but 1) It doesn't
# work (ld freaks out), and 2) the c++ driver adds it explicitly (which works).
LDADD+= -lm
DPADD+= ${LIBM}
# C source
SRCS= bitand.c bitany.c bitblt.c bitclear.c bitcopy.c bitcount.c \
bitinvert.c bitlcomp.c bitset1.c bitxor.c timer.c

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.8 1998/02/25 01:23:28 bde Exp $
# $Id: Makefile,v 1.9 1998/03/20 15:10:59 bde Exp $
#
GPPDIR= ${.CURDIR}/../../../contrib/libg++
@ -15,6 +15,9 @@ CFLAGS+= -I${GPPDIR}/include -I${DESTDIR}/usr/include/g++ -I.
CXXFLAGS+= -I${GPPDIR}/include -I${GPPDIR}/libio -I${GPPDIR}/libstdc++
CXXFLAGS+= -fno-implicit-templates
LDADD+= -lm
DPADD+= ${LIBM}
DIR= ${GPPDIR}/libstdc++
HDRS= cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \