public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "developer at sandoe-acoustics dot co dot uk" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug other/39888] TLS emutls not linked to automatically on Darwin
Date: Mon, 27 Apr 2009 19:07:00 -0000	[thread overview]
Message-ID: <20090427190712.10364.qmail@sourceware.org> (raw)
In-Reply-To: <bug-39888-4688@http.gcc.gnu.org/bugzilla/>



------- Comment #4 from developer at sandoe-acoustics dot co dot uk  2009-04-27 19:07 -------
Sorry I got the attachments and the comment in the wrong order...

The basic issue is that TLS emulation needs to be linked just once in an
executable - but so does exception handling.  Exception handling is already
linked (for system libraries) with /usr/lib/libgcc_s.1.dylib  - so we cannot
simply replace that with our new lingcc_s.1.dylib version (or you will lose the
ability to unwind through the system libs).

I was working on the following engineering solution last year, but I'm afraid
it's possibly rough around the edges and is "undiscussed" and therefore any
part of all of it might be unacceptable to the various maintainers.    I'm
posting it now because the day job is not allowing any time to work on it --
and it might be useful to someone as it stands.

====

The basic idea is to add a "libgcc_ext.dylib" that is versioned and contains
all the added symbols between a given release of Darwin and the current state
of libgcc_s.  This means that we will all resolve to the same versions of
symbols - but that new programs can access newly-added gcc features.

There are various changes needed to accommodate this logic:
 changes to build the difference library (done in the libgcc mechanism).
 additions of the symbol version files.
changes of the testsuite to make sure that the testsuite search paths include
the multilib versions of libgcc_ext.dylib.

As I say, the _ext dylib is versioned (so there's a 10.4 and 10.5 one built).

=== 

I'm attaching:
 a diff against 4.4-branch -- this applies against 4.4.0 release with one
offset and I've bootstrapped & checked that - I'll post the results.
 a diff against 4.5-trunk.
 a set of added files - which are common to both.

So you need to patch 4.x as appropriate and then add the new files.

I don't think this change makes much sense unless you build with
--enable-version-specific-runtime-libs and I haven't tested it any other way...


-- 

developer at sandoe-acoustics dot co dot uk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |developer at sandoe-
                   |                            |acoustics dot co dot uk


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39888


  parent reply	other threads:[~2009-04-27 19:07 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-24 18:39 [Bug other/39888] New: " fago at earthlink dot net
2009-04-27 19:04 ` [Bug other/39888] " developer at sandoe-acoustics dot co dot uk
2009-04-27 19:05 ` developer at sandoe-acoustics dot co dot uk
2009-04-27 19:06 ` developer at sandoe-acoustics dot co dot uk
2009-04-27 19:07 ` developer at sandoe-acoustics dot co dot uk [this message]
2009-04-27 19:15 ` developer at sandoe-acoustics dot co dot uk
2009-09-22 18:56 ` mrs at apple dot com
2009-09-22 19:20 ` developer at sandoe-acoustics dot co dot uk
2009-09-22 21:18 ` mrs at apple dot com
2009-09-23  3:02 ` howarth at nitro dot med dot uc dot edu
2009-09-23 15:50 ` howarth at nitro dot med dot uc dot edu
2009-09-23 16:00 ` developer at sandoe-acoustics dot co dot uk
2009-09-23 16:19 ` howarth at nitro dot med dot uc dot edu
2009-09-23 16:28 ` howarth at nitro dot med dot uc dot edu
2009-09-23 16:36 ` developer at sandoe-acoustics dot co dot uk
2009-09-23 16:51 ` howarth at nitro dot med dot uc dot edu
2009-09-23 17:53 ` howarth at nitro dot med dot uc dot edu
2009-09-23 18:41 ` howarth at nitro dot med dot uc dot edu
2009-09-23 18:57 ` howarth at nitro dot med dot uc dot edu
2009-09-23 20:44 ` mrs at apple dot com
2009-09-23 20:48 ` mrs at apple dot com
2009-09-23 20:49 ` mrs at apple dot com
2009-09-23 20:52 ` mrs at apple dot com
2009-09-23 21:06 ` howarth at nitro dot med dot uc dot edu
2009-09-23 21:18 ` howarth at nitro dot med dot uc dot edu
2009-09-23 23:45 ` howarth at nitro dot med dot uc dot edu
2009-09-24  7:47 ` developer at sandoe-acoustics dot co dot uk
2009-09-24 13:06 ` howarth at nitro dot med dot uc dot edu
2009-09-24 13:15 ` howarth at nitro dot med dot uc dot edu
2009-09-24 20:55 ` developer at sandoe-acoustics dot co dot uk
2009-09-24 22:33 ` howarth at nitro dot med dot uc dot edu
2009-09-24 22:42 ` developer at sandoe-acoustics dot co dot uk
2009-09-24 23:47 ` howarth at nitro dot med dot uc dot edu
2009-09-24 23:48 ` howarth at nitro dot med dot uc dot edu
2009-09-25  1:20 ` howarth at nitro dot med dot uc dot edu
2009-09-25  2:19 ` howarth at nitro dot med dot uc dot edu
2009-09-25 10:07 ` developer at sandoe-acoustics dot co dot uk
2009-09-25 10:45 ` howarth at nitro dot med dot uc dot edu
2009-09-25 10:54 ` developer at sandoe-acoustics dot co dot uk
2009-09-25 19:17 ` howarth at nitro dot med dot uc dot edu
2009-09-25 19:25 ` developer at sandoe-acoustics dot co dot uk
2009-09-25 23:52 ` howarth at nitro dot med dot uc dot edu
2009-09-26  0:54 ` howarth at nitro dot med dot uc dot edu
2009-09-26  1:00 ` howarth at nitro dot med dot uc dot edu
2009-09-26  2:55 ` howarth at nitro dot med dot uc dot edu
2009-09-26  5:51 ` howarth at nitro dot med dot uc dot edu
2009-09-26 17:29 ` developer at sandoe-acoustics dot co dot uk
2009-09-26 20:36 ` howarth at nitro dot med dot uc dot edu
2009-09-28  7:48 ` developer at sandoe-acoustics dot co dot uk
2009-09-28  9:02 ` developer at sandoe-acoustics dot co dot uk
2009-09-30 16:58 ` developer at sandoe-acoustics dot co dot uk
2009-09-30 19:46 ` mrs at apple dot com
2009-09-30 19:54 ` developer at sandoe-acoustics dot co dot uk
2009-09-30 23:36 ` howarth at nitro dot med dot uc dot edu
2009-09-30 23:38 ` howarth at nitro dot med dot uc dot edu
2009-10-01  8:36 ` developer at sandoe-acoustics dot co dot uk
2009-10-01 14:00 ` howarth at nitro dot med dot uc dot edu
2009-10-01 17:22 ` developer at sandoe-acoustics dot co dot uk
2009-10-01 19:18 ` mrs at apple dot com
2009-10-02  8:17 ` developer at sandoe-acoustics dot co dot uk
2009-10-02 10:39 ` developer at sandoe-acoustics dot co dot uk
2009-11-18  7:36 ` andreast at gcc dot gnu dot org
2009-11-18  7:37 ` andreast at gcc dot gnu dot org
2010-01-22  9:59 ` developer at sandoe-acoustics dot co dot uk
2010-03-11  3:30 ` howarth at nitro dot med dot uc dot edu
2010-03-11 12:18 ` ubizjak at gmail dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090427190712.10364.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).