Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130724232141.GA6531@brightrain.aerifal.cx>
Date: Wed, 24 Jul 2013 19:21:41 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: C++ ABI compatibility and musl-gcc

I've just committed the last of a series of changes that make it
possible to load the glibc-built libstdc++.so.6 under musl. While it
may look like a bit of ugliness, roughly half of the changes were
needed anyway to lay the ground for future locale support; the
long-term goal is to support customizable LC_TIME, LC_MONETARY,
LC_COLLATE, and LC_MESSAGES, but I don't expect any of that to happen
until after the 1.0 release.

Anyway, back to musl-gcc. My hope was that supporting the glibc
libstdc++ would make it possible to use musl-gcc to compile C++ code,
which could in turn be useful for bootstrapping compilers written in
C++ (gcc 4.8 or clang/LLVM). However, it seems the installed C++
headers are also full of glibc-header-specific assumptions, so using
musl-gcc for C++ is not as easy as I'd hoped it might be.

I''ve already spent a great deal of time and effort onthis C++ ABI
topic and would rather focus on release prep and other issues for a
while now. But perhaps someone interested in this topic could do some
research and see if the idea of using musl-gcc for C++ can be
salvaged. Here are some possible approaches:

1. Figuring out what's wrong with the headers and working around it.
   Or, in other words:

   <chris2> lets write a musl-fixincludes :P

2. Determining if the C++ headers that result from building a
   musl-targetted libstdc++ are clean and arch-agnostic, and if so,
   just packaging them up in a tarball that users could download and
   install.

Whichever approach is taken, if we get this working there should be a
doc on the wiki explaining what to do. This would include not only
dealing with the header issue, but also things like copying
libstdc++.so.6 into $(prefix)/lib or similar.

By the way, merely running existing C++ apps linked against glibc IS
possible under musl now, and it should work with either the original
glibc libstdc++.so.6 or the (new, post-ABI-fixes) musl libstdc++.so.6.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.