freebsd-skq/lib
Dimitry Andric 33c39ab688 In r308100, an explicit -fexceptions flag was added for the C sources
from LLVM's libunwind, which end up in libgcc_eh.a and libgcc_s.so.
This is because the unwinder needs the unwinder data for its own
functions.

However, for the C++ sources in libunwind, -fexceptions is already the
default, and this can have the side effect of generating a reference to
__gxx_personality_v0, the so-called personality function, which is
normally provided by the C++ ABI library (libcxxrt or libsupc++).

If the reference ends up in the eventual libgcc_s.so, linking any
non-C++ programs against it will fail with "undefined reference to
`__gxx_personality_v0'".

Note that at high optimization levels, the reference is usually
optimized away, which is why we have never noticed this problem before.

With clang 7.0.0 though, higher optimization levels don't help anymore,
since the addition of address-significance tables [1] in
<https://reviews.llvm.org/rL337339>.  Effectively, this always causes a
reference to __gxx_personality_v0.

After discussion with the upstream author of that change, it turns out
that we should compile libunwind sources with the -fno-exceptions
-funwind-tables flags instead.  This ensures unwind tables are
generated, but no references to any personality functions are emitted.

[1] https://lists.llvm.org/pipermail/llvm-dev/2018-May/123514.html

Reported by:	jbeich
PR:		230399
MFC after:	1 week
2018-08-10 19:57:55 +00:00
..
atf
clang Add optional LLVM BPF target support 2018-08-09 21:28:31 +00:00
csu
geom geli init: Allow initialization of multiple geli providers at once if 2018-07-23 23:04:43 +00:00
lib80211
libalias
libarchive MFV r328323,328324: 2018-01-24 14:24:17 +00:00
libauditd Disable -Wcast-align in libbsm and libauditd 2018-07-28 20:04:39 +00:00
libbegemot
libblacklist
libblocksruntime
libbluetooth Fix bthidd build with GCC 4.2 after r333110 2018-05-01 08:03:12 +00:00
libbsdstat
libbsm Disable -Wcast-align in libbsm and libauditd 2018-07-28 20:04:39 +00:00
libbsnmp Update bsnmp to version 1.13. This does not bring user-visible changes. 2018-07-03 08:44:40 +00:00
libbz2
libc Update man page to include FreeBSD-specific details. 2018-08-10 15:16:41 +00:00
libc_nonshared
libc++
libc++experimental
libcalendar
libcam SPDX: Small for a license ID tags. 2017-12-27 21:36:37 +00:00
libcapsicum Fix description. 2018-07-18 21:57:04 +00:00
libcasper With r335636 C++ program use libcasper.h and capsicum_helpers.h. 2018-07-01 18:58:53 +00:00
libclang_rt Install the 32-bit compat sanitizer libraries. 2018-08-03 18:52:51 +00:00
libcom_err
libcompat Use __SCSSID() for SCCS IDs. 2018-06-10 02:34:41 +00:00
libcompiler_rt The routines defined in comparedf2 and comparesf2 are defined in libc 2018-02-02 05:04:43 +00:00
libcrypt libcrypt: There is no need to clear message digest context after they 2018-07-20 07:16:28 +00:00
libcuse
libcxxrt libcxxrt: Move mangled symbols out of extern "C++" in Version.map 2018-01-23 22:41:13 +00:00
libdevctl
libdevdctl zfsd: Allow zfsd to work on any type of GEOM provider 2018-02-14 23:52:39 +00:00
libdevinfo Update to device enumeration protocol 2 2018-05-31 02:58:03 +00:00
libdevstat
libdl Add libdl to clibs package 2018-03-29 19:43:29 +00:00
libdpv Fix comparison between pointer and char literal 2018-06-16 20:00:41 +00:00
libdwarf
libedit libedit: sort the Makefile in line with NetBSD's version. 2018-01-29 22:38:23 +00:00
libefivar Fix an obvious 'is odd' check. 2018-07-12 16:19:17 +00:00
libelf
libelftc Update ELF Tool Chain to r3614 2018-04-27 13:59:24 +00:00
libevent
libexecinfo
libexpat
libfetch Fix an inverted conditional in the netrc code, which would ignore the 2018-05-29 13:07:36 +00:00
libfigpar Bump copyright following recent changes 2018-03-14 20:55:28 +00:00
libgcc_eh In r308100, an explicit -fexceptions flag was added for the C sources 2018-08-10 19:57:55 +00:00
libgcc_s Fix build by escaping a line break. 2018-01-31 21:41:42 +00:00
libgeom
libgpio
libgssapi
libiconv_modules libiconv: correct undefined behavior. 2018-07-08 23:22:04 +00:00
libifconfig Finish removing FDDI and tokenring media support. 2018-04-23 21:10:33 +00:00
libipsec Update pfkey_open() function to set socket's write buffer size to 2018-03-11 19:26:34 +00:00
libipt Add new shared library -- libipt. 2018-03-21 14:37:04 +00:00
libjail Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
libkiconv
libkvm Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
libldns
liblzma MFV r333779: xz 5.2.4. 2018-05-18 06:10:16 +00:00
libmagic Don't use CCACHE for linking. 2018-06-27 19:29:15 +00:00
libmd libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
libmemstat Reduce <sys/queue.h> pollution. 2018-05-11 00:01:43 +00:00
libmilter
libmp
libmt
libnandfs
libnetbsd Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
libnetgraph
libngatm
libnv libnv: Remove -I${SRCTOP}/sys 2018-08-09 20:29:44 +00:00
libopenbsd Fix a few more speelling errors 2017-12-28 01:31:28 +00:00
libopencsd Add new shared library -- libopencsd. 2018-04-04 14:31:56 +00:00
libopie
libpam Don't use CCACHE for linking. 2018-06-27 19:29:15 +00:00
libpathconv
libpcap Remove redundant header file from source list in libpcap. 2018-05-30 08:24:57 +00:00
libpe
libpjdlog Revert 335888 ("Ensure va_list is declared by including stdarg.h.") 2018-07-03 15:48:34 +00:00
libpmc Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
libpmcstat pmc(3)/hwpmc(4): update supported Intel processors to rely fully on the 2018-05-26 19:29:19 +00:00
libproc Detach from the child process before completing the test. 2018-07-27 20:34:15 +00:00
libprocstat Do not blindly include illumos kernel headers instead of user-space. 2018-08-02 18:55:55 +00:00
libradius
libregex libregex: Mark gnuext test as an expected fail 2018-01-29 14:00:33 +00:00
librpcsec_gss
librpcsvc
librss
librt
librtld_db
libsbuf
libsdp libsdp: Add method that returns actual source BD_ADDR of SDP session. 2018-04-30 10:15:58 +00:00
libsm
libsmb
libsmdb
libsmutil
libsqlite3 Revert r333353 - FTS5 uses log(3) which currently breakes non-amd64 builds. 2018-05-08 06:09:49 +00:00
libstdbuf
libstdthreads
libsysdecode Retire lmc(4) 2018-05-01 16:30:48 +00:00
libtacplus
libtelnet
libthr Remove unused file. 2018-06-16 17:11:23 +00:00
libthread_db Implement pt_fpreg_to_ucontext(), pt_ucontext_to_fpreg(). 2018-08-02 12:24:34 +00:00
libucl
libufs Don't put multiple names on a single .Nm line. This fixes apropos(1) 2018-04-17 09:05:46 +00:00
libugidfw Allow jail names (not just IDs) to be specified for: cpuset(1), ipfw(8), 2018-07-03 23:47:20 +00:00
libulog
libunbound Upgrade Unbound to 1.6.4. More to follow. 2018-05-12 14:36:58 +00:00
libusb Improve the userspace USB string reading function in LibUSB. 2018-06-26 16:00:16 +00:00
libusbhid
libutil Stop exporting __pw_scan and __pw_initpwd as freebsd-private libc functions 2018-07-27 19:47:42 +00:00
libveriexec This library allows for user space applications to check file descriptors 2018-06-20 00:55:18 +00:00
libvgl
libvmmapi Fix style(9) space vs tab. 2018-06-14 01:28:55 +00:00
libwrap
libxo Import libxo-0.9.0: 2018-05-23 01:20:31 +00:00
liby liby: rewrite yyerror.h 2018-06-17 18:05:27 +00:00
libypclnt
libz Remove "All rights reserved" from my files. 2018-05-10 06:41:08 +00:00
libzstd lib(private)zstd: Fix riscv build 2018-03-18 03:42:57 +00:00
msun In C remquol() and thus also in C remainderl(), don't clobber the sign bit 2018-07-24 11:50:05 +00:00
ncurses Don't use CCACHE for linking. 2018-06-27 19:29:15 +00:00
ofed Move OFED libraries libmlx5.so.1 and libibverbs.so.1 to /lib. 2018-07-20 23:49:57 +00:00
tests
Makefile Remove special cases for armeb in the build. 2018-07-17 23:23:54 +00:00
Makefile.inc