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>
