[cfe-dev] FORTIFY_SOURCE produces a broken libc++
John Bartholomew
jpa.bartholomew at gmail.com
Mon Jun 17 02:49:56 PDT 2013
I recently built libc++ (with clang 3.3, against libsupc++ from gcc
4.8.1). The library was produced without error and building a test
program with clang++ -stdlib=libc++ appeared to work. Unfortunately,
those appearances were deceiving: the libc++ I had built was broken,
and when I ran the test program it locked up during program termination
(i.e., the program ran, but instead of terminating as normal it got
stuck somewhere; the stack trace indicates that it got stuck in
std::__1::codecvt::do_unshift when calling wcrtomb).
I eventually determined that these problems were caused by having
-D_FORTIFY_SOURCE=2 in my C(XX)FLAGS while building libc++. This was
enabled because ArchLinux includes that flag in its default package
build options.
I'd like to check whether this is a known incompatibility, and if so
whether it is documented anywhere? I wonder if libc++'s build system
could give a warning/error if an attempt is made to build with
FORTIFY_SOURCE, or if that would be considered too specific/unusual a
situation?
Thanks,
John B
More information about the cfe-dev
mailing list