freebsd-dev/lib
John Baldwin ad06e987b1 The System V ABI for amd64 allows functions to use space in a 128 byte
redzone below the stack pointer for scratch space and requires
interrupt and signal frames to avoid overwriting it. However, EFI uses
the Windows ABI which does not support this. As a result, interrupt
handlers in EFI push their interrupt frames directly on top of the
stack pointer. If the compiler used the red zone in a function in the
EFI loader, then a device interrupt that occurred while that function
was running could trash its local variables.  In practice this happens
fairly reliable when using gzipfs as an interrupt during decompression
can trash the local variables in the inflate_table() function
resulting in corrupted output or hangs.

Fix this by disabling the redzone for amd64 EFI binaries. This
requires building not only the loader but any libraries used by the
loader without redzone support.

Thanks to Jilles for pointing me at the redzone once I found the stack
corruption.

Differential Revision:	https://reviews.freebsd.org/D2054
Reviewed by:	imp
MFC after:	2 weeks
Sponsored by:	Cisco Systems, Inc.
2015-03-13 09:38:16 +00:00
..
atf Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
clang Followup to r278223, by only using -stdlib=libc++ when the compiler is 2015-02-04 21:48:50 +00:00
csu Add a comment explaining why gcc is needed. 2015-02-06 02:35:29 +00:00
libalias
libarchive Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libauditd
libbegemot
libblocksruntime Follow up to r276851 by also committing a necessary update to 2015-01-08 20:08:00 +00:00
libbluetooth
libbsdstat
libbsm
libbsnmp Fix build with recent binutils 2014-12-23 10:43:35 +00:00
libbz2
libc Add a SCTP socket option to limit the cwnd for each path. 2015-03-10 19:49:25 +00:00
libc_nonshared
libc++ Import libc++ trunk r224926. This fixes a number of bugs, completes 2015-01-15 21:17:36 +00:00
libcalendar
libcam Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libcapsicum Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libcasper Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libclang_rt Upgrade our copy of clang and llvm to 3.5.1 release. This is a bugfix 2015-01-18 14:14:47 +00:00
libcom_err Remove GNU texinfo from base along with all info pages. 2015-01-02 18:45:03 +00:00
libcompat rexec(3): prevent uninitialized access to "port" variable. 2015-02-16 21:35:29 +00:00
libcompiler_rt With the update of compiler-rt we try to build a number of files that 2015-01-09 20:00:37 +00:00
libcrypt Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libcuse Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libcxxrt Add support for __cxa_throw_bad_array_new_length in libcxxrt 2014-10-21 10:19:45 +00:00
libdevctl Add a new device control utility for new-bus devices called devctl. This 2015-02-06 16:09:01 +00:00
libdevinfo Expose the constants for internal new-bus device flags to userland. The 2015-02-05 22:42:44 +00:00
libdevstat Remove an obsolete comment in devstat(3) about the accuracy of the 2015-02-27 02:44:12 +00:00
libdpv mdoc: improvements to SEE ALSO. 2014-12-27 08:22:58 +00:00
libdwarf Update elftoolchain to upstream rev 3130 2014-12-29 19:16:40 +00:00
libedit revert r278414 2015-02-08 23:03:41 +00:00
libefi
libelf
libelftc Update elftoolchain to upstream revision 3163 2015-02-17 15:19:58 +00:00
libevent Promote libevent to lib/ level and fold ftp-proxy into its parent Makefile. 2014-10-13 22:15:26 +00:00
libexecinfo Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libexpat Add a ${CP} alias for copying files in the build. 2015-01-16 21:39:08 +00:00
libfetch Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libfigpar Add new libraries/utilities for data throughput visualization. 2014-11-04 23:46:01 +00:00
libgeom Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libgpib
libgpio Fix contraction and unnecessary commas in function arguments. 2015-03-08 21:17:56 +00:00
libgssapi mdoc: sort SEE ALSO. 2014-12-29 21:52:32 +00:00
libiconv_modules
libipsec
libjail In preparation for using clang's -Wcast-qual: 2014-11-25 21:01:08 +00:00
libkiconv Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
libkvm Allow libkvm to get the kernel va to pa delta without the need for 2014-10-19 20:23:31 +00:00
libldns Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
liblzma compress,gzip,xz: Preserve timestamps with nanosecond precision. 2015-02-17 13:12:54 +00:00
libmagic Since the merge of file 5.21 in r276415 and r276416, stable/9 and 2015-01-13 20:37:57 +00:00
libmandoc Update mandoc to 1.13.2 2014-12-25 21:56:56 +00:00
libmd Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
libmemstat Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libmilter
libmp Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libmt Add density code for DAT-72, and notes on DAT-160. 2015-03-03 22:49:07 +00:00
libnandfs
libnetbsd Commit missing header for sys/time.h compat on NetBSD to unbreak the amd64/i386 2014-11-04 02:00:07 +00:00
libnetgraph Some NetGraph debug polishing. 2015-02-06 09:41:16 +00:00
libngatm
libnv Fix lib/libnv tests compilation with -std=c++11, by adding appropriate 2015-03-08 00:30:52 +00:00
libohash
libopie Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libpam Conditionalize building radius support into libpam, ppp, etc via 2015-02-04 06:53:45 +00:00
libpcap MFV r276759: libpcap 1.6.2. 2015-01-06 22:29:12 +00:00
libpjdlog Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libpmc Fix Ivy Bridge+ MEM_UOPS_RETIRED counters 2015-03-10 01:24:08 +00:00
libproc Fix debug symbols loading in libproc: 0 is a valid file descriptor. 2015-03-13 04:26:48 +00:00
libprocstat Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libradius Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
librpcsec_gss mdoc: sort SEE ALSO. 2014-12-29 21:59:44 +00:00
librpcsvc
librt Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
librtld_db mdoc: improvements to SEE ALSO. 2014-12-27 08:31:52 +00:00
libsbuf
libsdp
libsm
libsmb Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libsmdb
libsmutil
libsqlite3 Fix typo 2014-11-25 11:08:58 +00:00
libstand The System V ABI for amd64 allows functions to use space in a 128 byte 2015-03-13 09:38:16 +00:00
libstdbuf
libstdthreads Use pthread_mutex_trylock(3) to implement mtx_trylock(3). 2015-02-26 16:39:57 +00:00
libtacplus Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libtelnet
libthr Fix a typo in comment and explain the reason. 2015-03-09 20:26:42 +00:00
libthread_db Constify a struct savexmm pointer in pt_ucontext_to_fpreg(), to silence 2015-01-27 18:56:46 +00:00
libucl Lower warnings to please gcc 4.2 2015-03-03 07:51:36 +00:00
libufs
libugidfw
libulog Convert libraries to use LIBADD 2014-11-25 11:07:26 +00:00
libunbound Add a ${CP} alias for copying files in the build. 2015-01-16 21:39:08 +00:00
libusb Add more USB request definitions. The values are described in section 2015-01-16 12:11:01 +00:00
libusbhid
libutil gr_equal(): Fix a crash that could occur if the first group's member list 2015-01-25 00:47:06 +00:00
libvgl
libvmmapi Fix a bug in libvmmapi 'vm_copy_setup()' where it would return success even if 2015-01-19 06:51:04 +00:00
libwrap
libxo Upgrade libxo to 0.2.0. 2015-01-19 02:22:03 +00:00
liby
libypclnt
libz only install .pc files when we are not installing 32bit compat libs... 2014-10-27 23:43:25 +00:00
msun According to POSIX.1-2008, the Bessel functions of second kind 2015-03-10 17:10:54 +00:00
ncurses Parallelize building lib/ncurses 2014-12-27 21:11:42 +00:00
tests
Makefile Significant upgrades to sa(4) and mt(1). 2015-02-23 21:59:30 +00:00
Makefile.inc