From 3f6014e672836eb14364a252129c5affe2f7020c Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Sat, 6 Jan 2001 06:16:31 +0000 Subject: [PATCH] Use a unified libgcc rather than a seperate one for threaded and non-threaded programs. This provides threaded programs with the needed exception frame symbols. parts submitted by: Max Khon PR: 23252 --- gnu/lib/Makefile | 2 ++ gnu/lib/libgcc/Makefile | 7 +++++++ gnu/usr.bin/cc/cc_tools/freebsd-native.h | 10 ---------- lib/libpam/modules/pam_cleartext_pass_ok/Makefile | 4 ++-- lib/libpam/modules/pam_deny/Makefile | 2 -- lib/libpam/modules/pam_kerberosIV/Makefile | 4 ++-- lib/libpam/modules/pam_opie/Makefile | 4 ++-- lib/libpam/modules/pam_permit/Makefile | 2 -- lib/libpam/modules/pam_radius/Makefile | 4 ++-- lib/libpam/modules/pam_skey/Makefile | 4 ++-- lib/libpam/modules/pam_tacplus/Makefile | 4 ++-- lib/libpam/modules/pam_unix/Makefile | 4 ++-- 12 files changed, 23 insertions(+), 28 deletions(-) diff --git a/gnu/lib/Makefile b/gnu/lib/Makefile index 7be57b174ab0..41f323674005 100644 --- a/gnu/lib/Makefile +++ b/gnu/lib/Makefile @@ -2,9 +2,11 @@ SUBDIR= csu libdialog libgcc libgmp libmp libregex libreadline +.if ${OBJFORMAT} == aout .if !defined(NOLIBC_R) SUBDIR+= libgcc_r .endif +.endif .if !defined(NO_CXX) SUBDIR+= libstdc++ diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile index a9842a08a2ce..a16558ac4b2f 100644 --- a/gnu/lib/libgcc/Makefile +++ b/gnu/lib/libgcc/Makefile @@ -4,12 +4,15 @@ GCCDIR= ${.CURDIR}/../../../contrib/gcc.295 .PATH: ${GCCDIR}/cp ${GCCDIR} +# allow to be overridden for the a.out case .if !defined(LIB) || ${LIB} != "gcc_r" LIB= gcc .endif +.if ${OBJFORMAT} == aout # Install libgcc_pic.a, since ld.so uses it. INSTALL_PIC_ARCHIVE= yes +.endif # # XXX This is a hack, but it seems to work. libgcc1.a is supposed to be @@ -59,6 +62,10 @@ SRCS= frame.c tinfo.cc tinfo2.cc new.cc exception.cc CFLAGS+= -I${GCCDIR}/config -I${GCCDIR} -I. CFLAGS+= -fexceptions CFLAGS+= -DIN_GCC +.if ${OBJFORMAT} != aout +#CFLAGS+= -D_PTHREADS -fPIC -DGTHREAD_USE_WEAK +CFLAGS+= -D_PTHREADS -DGTHREAD_USE_WEAK +.endif CXXFLAGS+= -I${GCCDIR}/cp/inc CXXFLAGS+= -nostdinc++ diff --git a/gnu/usr.bin/cc/cc_tools/freebsd-native.h b/gnu/usr.bin/cc/cc_tools/freebsd-native.h index 6fd158c392f6..fd04a683ba20 100644 --- a/gnu/usr.bin/cc/cc_tools/freebsd-native.h +++ b/gnu/usr.bin/cc/cc_tools/freebsd-native.h @@ -46,13 +46,3 @@ /* FreeBSD is 4.4BSD derived */ #define bsd4_4 - -/* Tell gcc to locate libgcc.a for us according to the -m rules. */ -#undef LIBGCC_SPEC -#define LIBGCC_SPEC \ - "%{!shared: \ - %{!pthread:libgcc.a%s} \ - %{pthread:libgcc_r.a%s}} \ - %{shared: \ - %{!pthread:libgcc_pic.a%s} \ - %{pthread:libgcc_r_pic.a%s}}" diff --git a/lib/libpam/modules/pam_cleartext_pass_ok/Makefile b/lib/libpam/modules/pam_cleartext_pass_ok/Makefile index 1c39ce90b5b0..be964816c3fa 100644 --- a/lib/libpam/modules/pam_cleartext_pass_ok/Makefile +++ b/lib/libpam/modules/pam_cleartext_pass_ok/Makefile @@ -31,8 +31,8 @@ SHLIB_NAME= pam_cleartext_pass_ok.so SRCS= pam_cleartext_pass_ok.c CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -Wall -DPADD= ${LIBSKEY} ${LIBGCC_PIC} -LDADD= -lskey -lgcc_pic +DPADD= ${LIBSKEY} +LDADD= -lskey INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_deny/Makefile b/lib/libpam/modules/pam_deny/Makefile index 17b1447ece66..9374a4067946 100644 --- a/lib/libpam/modules/pam_deny/Makefile +++ b/lib/libpam/modules/pam_deny/Makefile @@ -33,8 +33,6 @@ SHLIB_NAME= pam_deny.so SRCS= pam_deny.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include -DPADD+= ${LIBGCC_PIC} -LDADD+= -lgcc_pic INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_kerberosIV/Makefile b/lib/libpam/modules/pam_kerberosIV/Makefile index b48794607c9c..6b4f124039a6 100644 --- a/lib/libpam/modules/pam_kerberosIV/Makefile +++ b/lib/libpam/modules/pam_kerberosIV/Makefile @@ -39,8 +39,8 @@ LDADD+= -lkrb DPADD+= ${LIBCRYPTO} LDADD+= -lcrypto .endif -DPADD+= ${LIBGCC_PIC} ${LIBCOM_ERR} -LDADD+= -lgcc_pic -lcom_err +DPADD+= ${LIBCOM_ERR} +LDADD+= -lcom_err INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_opie/Makefile b/lib/libpam/modules/pam_opie/Makefile index 4b7c0e259806..64723cc3e4ba 100644 --- a/lib/libpam/modules/pam_opie/Makefile +++ b/lib/libpam/modules/pam_opie/Makefile @@ -33,8 +33,8 @@ SRCS= pam_opie.c CFLAGS+= -Wall -g CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBOPIE} ${LIBGCC_PIC} -LDADD+= -lopie -lgcc_pic +DPADD+= ${LIBOPIE} +LDADD+= -lopie INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_permit/Makefile b/lib/libpam/modules/pam_permit/Makefile index 8863ff524467..0c254fe53f03 100644 --- a/lib/libpam/modules/pam_permit/Makefile +++ b/lib/libpam/modules/pam_permit/Makefile @@ -34,8 +34,6 @@ SRCS= pam_permit.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBGCC_PIC} -LDADD+= -lgcc_pic INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_radius/Makefile b/lib/libpam/modules/pam_radius/Makefile index 48bd39a6d194..25cb8600d96b 100644 --- a/lib/libpam/modules/pam_radius/Makefile +++ b/lib/libpam/modules/pam_radius/Makefile @@ -32,8 +32,8 @@ SRCS= pam_radius.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBRADIUS} ${LIBGCC_PIC} -LDADD+= -lradius -lgcc_pic +DPADD+= ${LIBRADIUS} +LDADD+= -lradius INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_skey/Makefile b/lib/libpam/modules/pam_skey/Makefile index bf6af9edd2b4..9ae24b1fcd4d 100644 --- a/lib/libpam/modules/pam_skey/Makefile +++ b/lib/libpam/modules/pam_skey/Makefile @@ -32,8 +32,8 @@ SRCS= pam_skey.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBSKEY} ${LIBGCC_PIC} -LDADD+= -lskey -lgcc_pic +DPADD+= ${LIBSKEY} +LDADD+= -lskey INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_tacplus/Makefile b/lib/libpam/modules/pam_tacplus/Makefile index 6430ca8a66fe..3c812c447b8d 100644 --- a/lib/libpam/modules/pam_tacplus/Makefile +++ b/lib/libpam/modules/pam_tacplus/Makefile @@ -32,8 +32,8 @@ SRCS= pam_tacplus.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBTACPLUS} ${LIBGCC_PIC} -LDADD+= -ltacplus -lgcc_pic +DPADD+= ${LIBTACPLUS} +LDADD+= -ltacplus INTERNALLIB= yes INTERNALSTATICLIB=yes diff --git a/lib/libpam/modules/pam_unix/Makefile b/lib/libpam/modules/pam_unix/Makefile index 7ef7ce33f1a3..4b6aadef21aa 100644 --- a/lib/libpam/modules/pam_unix/Makefile +++ b/lib/libpam/modules/pam_unix/Makefile @@ -32,8 +32,8 @@ SRCS= pam_unix.c CFLAGS+= -Wall CFLAGS+= -I${PAMDIR}/libpam/include CFLAGS+= -I${.CURDIR}/../../libpam -DPADD+= ${LIBUTIL} ${LIBGCC_PIC} ${LIBCRYPT} -LDADD+= -lutil -lgcc_pic -lcrypt +DPADD+= ${LIBUTIL} ${LIBCRYPT} +LDADD+= -lutil -lcrypt INTERNALLIB= yes INTERNALSTATICLIB=yes