Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Jan 2001 10:43:34 -0800
From:      "David O'Brien" <TrimYourCc@NUXI.com>
To:        Erich Zigler <erichz@superhero.org>, freebsd-stable@FreeBSD.ORG
Subject:   Re: Threaded C++ Question
Message-ID:  <20010103104333.C62250@dragon.nuxi.com>
In-Reply-To: <Pine.BSF.4.21.0101031945040.93832-100000@iclub.nsu.ru>; from fjoe@iclub.nsu.ru on Wed, Jan 03, 2001 at 07:55:21PM %2B0600
References:  <20010102175034.B43962@superhero.org> <Pine.BSF.4.21.0101031945040.93832-100000@iclub.nsu.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jan 03, 2001 at 07:55:21PM +0600, Max Khon wrote:
> I have made another patch available at

Use this patch instead.  Note that with it, things are broken if you use
-static.

I have been unable to get a good test report on what I plan to commit.
If you are able to test it, here it is.  What I want to see is, take a
stock [and up to date] RELENG_4 or 5-CURRENT box and test your
application to see that it fails.

Apply my patch, do a full `make world' + reboot.  Then run your
application and test if it does or doesn't work.  Report back here.



Index: gnu/lib/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/lib/Makefile,v
retrieving revision 1.29
diff -u -r1.29 Makefile
--- gnu/lib/Makefile	2000/11/25 13:04:08	1.29
+++ gnu/lib/Makefile	2000/12/25 22:37:00
@@ -2,8 +2,10 @@
 
 SUBDIR= csu libdialog libgcc libgmp libmp libregex libreadline
 
+.if ${OBJFORMAT} == aout
 .if !defined(NOLIBC_R)
 SUBDIR+= libgcc_r
+.endif
 .endif
 
 .if !defined(NO_CXX)
Index: gnu/lib/libgcc/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/lib/libgcc/Makefile,v
retrieving revision 1.33
diff -u -r1.33 Makefile
--- gnu/lib/libgcc/Makefile	2000/06/04 06:56:21	1.33
+++ gnu/lib/libgcc/Makefile	2000/12/25 22:38:41
@@ -4,12 +4,15 @@
 
 .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,9 @@
 CFLAGS+=	-I${GCCDIR}/config -I${GCCDIR} -I.
 CFLAGS+=	-fexceptions
 CFLAGS+=	-DIN_GCC
+.if ${OBJFORMAT} != aout
+CFLAGS+=	-D_PTHREADS -fPIC -DGTHREAD_USE_WEAK
+.endif
 CXXFLAGS+=	-I${GCCDIR}/cp/inc
 CXXFLAGS+=	-nostdinc++
 
Index: gnu/usr.bin/cc/cc_tools/freebsd-native.h
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc_tools/freebsd-native.h,v
retrieving revision 1.7
diff -u -r1.7 freebsd-native.h
--- gnu/usr.bin/cc/cc_tools/freebsd-native.h	2000/11/10 16:54:45	1.7
+++ gnu/usr.bin/cc/cc_tools/freebsd-native.h	2000/12/21 22:10:18
@@ -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}}"
Index: lib/libpam/modules/pam_cleartext_pass_ok/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_cleartext_pass_ok/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- lib/libpam/modules/pam_cleartext_pass_ok/Makefile	2000/03/27 15:24:45	1.3
+++ lib/libpam/modules/pam_cleartext_pass_ok/Makefile	2000/12/21 22:10:18
@@ -31,8 +31,8 @@
 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
 
Index: lib/libpam/modules/pam_deny/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_deny/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- lib/libpam/modules/pam_deny/Makefile	1999/05/08 01:59:25	1.1
+++ lib/libpam/modules/pam_deny/Makefile	2000/12/21 22:10:18
@@ -33,8 +33,6 @@
 SRCS=		pam_deny.c
 CFLAGS+=	-Wall
 CFLAGS+=	-I${PAMDIR}/libpam/include
-DPADD+=		${LIBGCC_PIC}
-LDADD+=		-lgcc_pic
 INTERNALLIB=	yes
 INTERNALSTATICLIB=yes
 
Index: lib/libpam/modules/pam_kerberosIV/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_kerberosIV/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- lib/libpam/modules/pam_kerberosIV/Makefile	2000/02/24 22:24:36	1.5
+++ lib/libpam/modules/pam_kerberosIV/Makefile	2000/12/21 22:10:18
@@ -39,8 +39,8 @@
 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
 
Index: lib/libpam/modules/pam_opie/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_opie/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- lib/libpam/modules/pam_opie/Makefile	2000/04/17 00:14:41	1.1
+++ lib/libpam/modules/pam_opie/Makefile	2000/12/21 22:10:18
@@ -33,8 +33,8 @@
 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
 
Index: lib/libpam/modules/pam_permit/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_permit/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- lib/libpam/modules/pam_permit/Makefile	1999/05/08 01:59:25	1.1
+++ lib/libpam/modules/pam_permit/Makefile	2000/12/21 22:10:18
@@ -34,8 +34,6 @@
 CFLAGS+=	-Wall
 CFLAGS+=	-I${PAMDIR}/libpam/include
 CFLAGS+=	-I${.CURDIR}/../../libpam
-DPADD+=		${LIBGCC_PIC}
-LDADD+=		-lgcc_pic
 INTERNALLIB=	yes
 INTERNALSTATICLIB=yes
 
Index: lib/libpam/modules/pam_radius/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_radius/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- lib/libpam/modules/pam_radius/Makefile	1999/08/20 18:32:45	1.4
+++ lib/libpam/modules/pam_radius/Makefile	2000/12/21 22:10:18
@@ -32,8 +32,8 @@
 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
 
Index: lib/libpam/modules/pam_skey/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_skey/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- lib/libpam/modules/pam_skey/Makefile	1999/01/20 21:55:27	1.2
+++ lib/libpam/modules/pam_skey/Makefile	2000/12/21 22:10:18
@@ -32,8 +32,8 @@
 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
 
Index: lib/libpam/modules/pam_ssh/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_ssh/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- lib/libpam/modules/pam_ssh/Makefile	2000/03/06 15:28:30	1.2
+++ lib/libpam/modules/pam_ssh/Makefile	2000/12/21 22:10:18
@@ -7,8 +7,8 @@
 SHLIB_NAME=	pam_ssh.so
 SRCS=		log-client.c pam_ssh.c
 CFLAGS+=	-Wall -I${SSHSRC}
-DPADD+=		${LIBCRYPTO} ${LIBCRYPT} ${LIBUTIL} ${LIBZ} ${LIBGCC_PIC}
-LDADD+=		-L${.OBJDIR}/../../../../secure/lib/libssh -lssh -lcrypto -lcrypt -lutil -lz -lgcc_pic
+DPADD+=		${LIBCRYPTO} ${LIBCRYPT} ${LIBUTIL} ${LIBZ}
+LDADD+=		-L${.OBJDIR}/../../../../secure/lib/libssh -lssh -lcrypto -lcrypt -lutil -lz
 INTERNALLIB=	yes
 INTERNALSTATICLIB=yes
 
Index: lib/libpam/modules/pam_tacplus/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_tacplus/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- lib/libpam/modules/pam_tacplus/Makefile	1999/01/20 21:55:28	1.2
+++ lib/libpam/modules/pam_tacplus/Makefile	2000/12/21 22:10:18
@@ -32,8 +32,8 @@
 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
 
Index: lib/libpam/modules/pam_unix/Makefile
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/pam_unix/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- lib/libpam/modules/pam_unix/Makefile	1999/09/30 18:53:34	1.4
+++ lib/libpam/modules/pam_unix/Makefile	2000/12/21 22:10:18
@@ -32,8 +32,8 @@
 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
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010103104333.C62250>