From owner-freebsd-bugs Mon Jun 3 17:20:03 1996 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id RAA29611 for bugs-outgoing; Mon, 3 Jun 1996 17:20:03 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id RAA29604; Mon, 3 Jun 1996 17:20:02 -0700 (PDT) Resent-Date: Mon, 3 Jun 1996 17:20:02 -0700 (PDT) Resent-Message-Id: <199606040020.RAA29604@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, smp@csn.net Received: from rick.systemsix.com (rick.systemsix.com [198.99.86.136]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id RAA29400 for ; Mon, 3 Jun 1996 17:13:22 -0700 (PDT) Received: (from root@localhost) by rick.systemsix.com (8.7.5/8.7.3) id SAA27142; Mon, 3 Jun 1996 18:12:27 -0600 (MDT) Message-Id: <199606040012.SAA27142@rick.systemsix.com> Date: Mon, 3 Jun 1996 18:12:27 -0600 (MDT) From: smp@csn.net Reply-To: smp@csn.net To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/1289: errno breaks in thread-safe c++ compiles Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Number: 1289 >Category: bin >Synopsis: errno breaks in thread-safe c++ compiles >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jun 3 17:20:01 PDT 1996 >Last-Modified: >Originator: Steve Passe >Organization: New Ideas >Release: FreeBSD 2.2-960501-SNAP i386 >Environment: FreeBSD 2.2-960501-SNAP, thread safe libc_r >Description: In the thread-safe libc, specifically errno.h, there is a mechanism for using a unique copy of errno for each thread. This mechanism breaks when a progam compliled under c++ uses errno (includes errno.h) >How-To-Repeat: foo.cc: #include cerr << "problem: " << errno << '\n'; g++ foo.cc: (mumbles about unresolvedfunction "__error__Fv") >Fix: RCS file: RCS/errno.h,v retrieving revision 1.1 diff -r1.1 errno.h 47c47,49 < extern int * __error(); --- > __BEGIN_DECLS > int * __error __P((void)); > __END_DECLS >Audit-Trail: >Unformatted: