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
libauditd Disable -Wcast-align in libbsm and libauditd 2018-07-28 20:04:39 +00:00
libbegemot
libblacklist
libblocksruntime
libbluetooth
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
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
libcompiler_rt
libcrypt libcrypt: There is no need to clear message digest context after they 2018-07-20 07:16:28 +00:00
libcuse
libcxxrt
libdevctl
libdevdctl
libdevinfo
libdevstat
libdl
libdpv
libdwarf
libedit
libefivar Fix an obvious 'is odd' check. 2018-07-12 16:19:17 +00:00
libelf
libelftc
libevent
libexecinfo
libexpat
libfetch
libfigpar
libgcc_eh In r308100, an explicit -fexceptions flag was added for the C sources 2018-08-10 19:57:55 +00:00
libgcc_s
libgeom
libgpio
libgssapi
libiconv_modules libiconv: correct undefined behavior. 2018-07-08 23:22:04 +00:00
libifconfig
libipsec
libipt
libjail
libkiconv
libkvm Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
libldns
liblzma
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
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
libopencsd
libopie
libpam Don't use CCACHE for linking. 2018-06-27 19:29:15 +00:00
libpathconv
libpcap
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
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
librpcsec_gss
librpcsvc
librss
librt
librtld_db
libsbuf
libsdp
libsm
libsmb
libsmdb
libsmutil
libsqlite3
libstdbuf
libstdthreads
libsysdecode
libtacplus
libtelnet
libthr
libthread_db Implement pt_fpreg_to_ucontext(), pt_ucontext_to_fpreg(). 2018-08-02 12:24:34 +00:00
libucl
libufs
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
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
libwrap
libxo
liby
libypclnt
libz
libzstd
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