Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 Jan 2017 16:06:13 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-threads@FreeBSD.org
Subject:   [Bug 215709] Use of thread_local produces linking errors [now with gcc]
Message-ID:  <bug-215709-16-57z4f42aWf@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-215709-16@https.bugs.freebsd.org/bugzilla/>
References:  <bug-215709-16@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D215709

--- Comment #6 from commit-hook@freebsd.org ---
A commit references this bug:

Author: kib
Date: Sat Jan  7 16:05:19 UTC 2017
New revision: 311651
URL: https://svnweb.freebsd.org/changeset/base/311651

Log:
  Export __cxa_thread_atexit_impl as an alias for __cxa_thread_atexit.

  libstdc++ before gcc r244057 expected that libc provided
  __cxa_thread_atexit_impl, and libstdc++ implemented
  __cxa_thread_atexit, by forwarding the calls to _impl.  Mentioned gcc
  revision checks for __cxa_thread_atexit in libc and does not provide
  the symbol from libstdc++ if found.

  This change helps older gcc, in particular, all released versions
  which implement thread_local, by consolidating the implementation into
  libc.  For that versions, if configured with the current libc, the
  __cxa_thread_atexit is exported from libstdc++ as a trivial wrapper
  around libc::__cxa_thread_atexit_impl.

  The __cxa_thread_atexit implementation is put into separate source
  file to allow for static linking with older libstdc++.a.

  gcc bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D78968
  Reported by:  Hannes Hauswedell <h2+fbsdports@fsfe.org>
  PR:   215709
  Sponsored by: The FreeBSD Foundation
  MFC after:    2 weeks

Changes:
  head/lib/libc/include/libc_private.h
  head/lib/libc/stdlib/Makefile.inc
  head/lib/libc/stdlib/Symbol.map
  head/lib/libc/stdlib/cxa_thread_atexit.c
  head/lib/libc/stdlib/cxa_thread_atexit_impl.c

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-215709-16-57z4f42aWf>