summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorjb <jb@FreeBSD.org>1998-04-30 09:13:48 +0000
committerjb <jb@FreeBSD.org>1998-04-30 09:13:48 +0000
commit18a366f3a01c96e9bb5b684ad825f600340ccb30 (patch)
treec22240ae6bebb8c6624e2f1fdfa986a5cfd81bca /lib/libc
parent0b5bef5fb753fa949c2fe6fa8e612678591e94bf (diff)
downloadFreeBSD-src-18a366f3a01c96e9bb5b684ad825f600340ccb30.zip
FreeBSD-src-18a366f3a01c96e9bb5b684ad825f600340ccb30.tar.gz
Build __error.c into libc, but not libc_r. The weak symbol in the
file works with libpthread, but when built into libc_r which has a non-weak symbol of the same name, the linker behaves unpredicatably and sometimes links the wrong symbol. The linker behaviour is a byproduct of what the program calls from object to object so it is like winning a lottery if the program actually works. The odds are quite good - 95:1, I think. We need a sure thing, though, so weak symbols can't be used instead of renaming things.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/sys/Makefile.inc9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc
index d36a7a2..02208ba 100644
--- a/lib/libc/sys/Makefile.inc
+++ b/lib/libc/sys/Makefile.inc
@@ -1,5 +1,5 @@
# @(#)Makefile.inc 8.3 (Berkeley) 10/24/94
-# $Id: Makefile.inc,v 1.49 1998/03/23 21:04:06 jb Exp $
+# $Id: Makefile.inc,v 1.50 1998/03/28 11:48:48 dufault Exp $
# sys sources
.PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/sys ${.CURDIR}/../libc/sys
@@ -26,7 +26,12 @@ SRCS+= netbsd_getdirentries.c netbsd_msync.c netbsd_stat.c netbsd_swapon.c
.endif
# Sources common to both syscall interfaces:
-SRCS+= __error.c ftruncate.c lseek.c mmap.c truncate.c
+SRCS+= ftruncate.c lseek.c mmap.c truncate.c
+
+# Build __error() into libc, but not libc_r which has it's own:
+.if ${LIB} == "c"
+SRCS+= __error.c
+.endif
# Add machine dependent asm sources:
SRCS+=${MDASM}
OpenPOWER on IntegriCloud