| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r323997:
Fix handling of uncaught exceptions in a std::terminate() handler on arm.
When raising an exception, the unwinder searches for a catch handler and if
none is found it should invoke std::terminate() with the uncaught exception
as the "current" exception. Before this change, the terminate handler was
invoked with no exception as current (abi::__cxa_current_exception_type()
returned NULL), because the return value from the unwinder indicated an
internal failure in unwinding. It turns out that was because all errors
from get_eit_entry() were translated to _URC_FAILURE. Now the error is
returned untranslated, which allows _URC_END_OF_STACK to percolate upwards
to throw_exception() in libcxxrt. When it sees that return status it
properly calls std::terminate() with the uncaught exception installed
as the current exception, allowing custom terminate handlers to work
with it.
r323998:
Fix the return value from _Unwind_Backtrace() on arm.
If unwinding stops due to hitting the end of the call chain, the return
value is supposed to be _URC_END_OF_STACK; other values indicate internal
errors. The return value from get_eit_entry() is now returned without
translating it to _URC_FAILURE, so that callers can see _URC_END_OF_STACK
when it happens.
|
|
|
|
|
|
|
| |
r318024:
Fix _Unwind_Backtrace symbol version for ARM.
r318025:
Revert accidentally changed std.armv6 in r318024.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r208737 added support for the "mips64r2" architecture and "octeon" CPU,
and the saa/saad instructions.
Upstream binutils also added the "octeon+" CPU, and the saa/saad
instructions are only available in octeon+, not octeon. Since our
base system tool chain already accepts saa/saad with -march=octeon,
just allow octeon+ as an alias.
This allows the use of octeon+ in kernel config files, for use with both
external tool chain and in-tree GCC/binutils.
Also includes GCC FBSD_CC_VER bump (r313041 in HEAD)
PR: 216516
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
| |
llvm libunwind includes a libunwind.cpp, but on ARM libunwind.S is found
first in .PATH. Rename the latter one, since it is not going to be
updated again.
Approved by: re (kib)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DR #289[0] came down and gcc4.2.1 was on the wrong side of history.
Partially revert GCC r42574 (just remove the error) to rectify the parse
bug to match Clang and other compliant C99 compilers.
An example declaration gcc tripped on before this fix:
void foobar(int [static 1]);
An example declaration gcc did not trip on before this fix:
void foobar(int name[static 1]);
Bump __FreeBSD_cc_version.
[0]: http://www.open-std.org/JTC1/SC22/WG14/www/docs/dr_289.htm
Reported by: allanjude
Sponsored by: EMC / Isilon Storage Division
|
|
|
|
|
|
|
| |
Missing hunk from r300301.
Reported by: Ed Schouten
Obtained from: OpenBSD (CVS rev. 1.2)
|
|
|
|
|
|
|
|
|
| |
This is a C11 feature that is starting to get used in places such as Mesa.
This implementation takes a different approach to upstream and is
therefore not covered by GPLv3.
Obtained from: OpenBSD (CVS rev. 1.2)
MFC after: 3 weeks
|
|
|
|
|
|
|
|
|
| |
This is required to build csu.
Reviewed by: andrew
Sponsored by: DARPA, AFRL
Sponsored by: HEIF5
Differential Revision: https://reviews.freebsd.org/D5039
|
| |
|
|
|
|
|
|
|
|
| |
Correct handling of enum attributes with g++
It is causing issues on some platforms.
Reported by: sbruno (through adrian)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From OpenBSD's commit log:
This was responsible for memory corruption with recent versions
of Mesa where c and c++ code share a header with a packed enum type.
Reference:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39219
Obtained from: OpenBSD (CVS rev. 1.2)
MFC after: 1 week
|
|
|
|
|
|
|
| |
the non-executable stack.
Reviewed by: andrew
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
| |
This includes additional functions to be protected: those that
have local array definitions, or have references to local frame
addresses. This is a new option in GCC-4.9 that was relicensed
by Han Shen from Google under GPLv2 for OpenBSD.
Obtained from: OpenBSD (2014-01-14)
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
|
| |
Some point after gcc-4.2 the MIPS inline assembly restrictions changed -
=h (hi register) disappeared from the list of restrictions and can no
longer be used.
So, until someone requires an assembly version of this function,
just use a non-assembly version and let the compiler sort it out.
Suggested by: kan
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DW_OP_GNU_uninit
DW_OP_piece
This squashes the warnings about type 0x93 not known in kgdb when opening a kernel crash dump.
Upstream refs:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=87808bd699575a850139a1f916512ab7a47fd496
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=42be36b328ae784ae6981da7c7cab95b67ed7737
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=23572ecadc89af384c1804ad7692f32c55fbfc80
Differential Revision: https://reviews.freebsd.org/D2534
Reviewed by: emaste, jhb, davide
|
|
|
|
|
|
|
|
|
|
|
| |
The __builtin_init_dwarf_reg_size_table function is unimplemented in
clang 3.6 for AArch64. Comment it out for now and replace it with
a message and abort.
Tracked in upstream LLVM PR 22997
https://llvm.org/bugs/show_bug.cgi?id=22997
Submitted by: andrew
|
|
|
|
|
|
| |
this exceptions could write over the stack.
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
| |
get from gcc, and libgcc_eh.
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
| |
symbols and not macros. Make this so. This fixes a few ports that try to
link against these functions but fail as they previously didn't exist.
|
|
|
|
|
|
|
| |
This will result in __ARM_ARCH_7A__ being defined during the compile.
When compiling with gcc, it will still only generate armv6 opcodes itself,
but should pass the arch to gas so that inline asm can use v7 opcodes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/48211
* name-lookup.h (cp_class_binding): Make base a pointer.
* name-lookup.c (new_class_binding): Adjust.
(poplevel_class): Adjust.
This fixes a potential segfault when compiling gold, a part of the
devel/binutils port, with gcc. See also the upstream bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48211
Thanks to Jason Merrill, Tom Callaway and Red Hat legal for approving
the use of this patch under the GNU GPL, version 2 or later.
MFC after: 1 week
|
|
|
|
|
|
|
| |
assembler doesn't allow these two instructions to use co-processor 11.
MFC after: 1 Week
Sponsored by: ABT Systems Ltd
|
|
|
|
|
|
| |
are aliases.
Sponsored by: ABT Systems Ltd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the first argument of the following builtin function:
* __builtin_ia32_psrlqi128() takes __v2di instead of __v4si
This should fix the following errors when building the graphics/webp
port with base gcc:
lossless_sse2.c:403: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'
lossless_sse2.c:404: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'
Reported by: Jos Chrispijn <ports@webrz.net>
MFC after: 3 days
|
|
|
|
|
|
| |
relocations in unwind data as pc-relative indirect references.
MFC after: 1 week
|
|
|
|
|
|
|
| |
detailing how to report bugs.
Hat: bugmeister
MFC after: 3 days
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From the OpenBSD log:
x86-64 ABI requires arrays greater than 16 bytes to be aligned to
16byte boundary. However, GCC 16-byte aligns arrays of >=16 BITS,
not BYTES.
This diff improves bug detectability for code which has local arrays
of [16 .. 127] bits: in those cases SSP will now detect even 1-byte
overflows.
Obtained from: OpenBSD (CVS rev 1.4)
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
| |
This mimics the behaviour in clang and lets us build cleanly
the libdispatch port on platforms where the base gcc is still
the default compiler.
Bump __FreeBSD_version for ports.
Tested by: theraven
MFC after: 3 days
|
|
|
|
|
| |
sparc64 from contrib/gcc/longlong.h, which are considered "heinous" GNU
extensions by clang.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all of the features in the current working draft of the upcoming C++
standard, provisionally named C++1y.
The code generator's performance is greatly increased, and the loop
auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The
PowerPC backend has made several major improvements to code generation
quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ
backends have all seen major feature work.
Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.4/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html>
MFC after: 1 month
|
|
|
|
|
|
|
|
|
| |
Support for warnings about missing prototypes in C++ was added by Apple
GCC (Radar 6261539). Most of the code crept into r260311 so it felt
natural to make use of it.
Obtained from: Apple GCC - 5646
MFC after: 5 days
|
|
|
|
|
|
|
|
|
|
|
|
| |
Among some of the objc changes from Apple that crept into r260311,
Radar 5355344 is incomplete and is not used since we don't carry
ObjC in the base system.
The dead code seems to have caused issues in some Tinderboxes so
get rid of it altogether.
Reported by: luigi
MFC after: 9 days
|
|
|
|
|
|
| |
Without this gcc would generate byte loads for a little-endian core.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC-PR rtl-optimization/34628
* combine.c (try_combine): Stop and undo after the first combination
if an autoincrement side-effect on the first insn has effectively
been lost.
The issue was detected in OpenBSD but their fix was not very good. Huge
thanks to the upstream author, Eric Botcazou, for permitting the use of
this patch under GPLv2.
MFC after: 5 days
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
llvm-gcc backported some patches from gcc trunk:
http://gcc.gnu.org/ml/gcc-cvs/2007-05/msg00662.html
http://gcc.gnu.org/ml/gcc-cvs/2007-07/msg00019.html
http://gcc.gnu.org/ml/gcc-cvs/2007-08/msg00240.html
http://gcc.gnu.org/ml/gcc-cvs/2007-08/msg00493.html
The first two were always GPL2. The last two were
added after the GPL3 transition, but were written
by aaw@google.com and Rafael EspĂndola got permission
to relicense them under the GPL2 for inclusion in
llvm-gcc.
This fixes GCC-PR c++/31749
Obtained from: llvm-gcc (rev. 75463; GPLv2)
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Block objects [1] are a C-level syntactic and runtime feature. They
are similar to standard C functions, but in addition to executable
code they may also contain variable bindings to automatic (stack)
or managed (heap) memory. A block can therefore maintain a set of
state (data) that it can use to impact behavior when executed.
This port is based on Apple's GCC 5646 with some bugfixes from
Apple GCC 5666.3. It has some small differences with the support
in clang, which remains the recommended compiler.
Perhaps the most notable difference is that in GCC that __block
is not actually a keyword, but a macro. There will be workaround
for this issue in a near future. Other issues can be consulted in
the clang documentation [2]
For better compatiblity with Apple's GCC and llvm-gcc some related
fixes and features from Apple have been included. Support for the
non-standard nested functions in GCC is now off by default.
No effort was made to update the ObjC support since FreeBSD doesn't
carry ObjC in the base system, but some of the code crept in and
was more difficult to remove than to adjust.
Reference:
[1]
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html
[2]
http://clang.llvm.org/compatibility.html#block-variable-initialization
Obtained from: Apple GCC 4.2
MFC after: 3 weeks
|
|
|
|
|
|
|
|
|
| |
Fixes some bugs detected by Apple:
#error with unmatched quotes
pragma mark
Obtained from: Apple GCC 4.2 - 5553
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
Unfortunately this causes ICE on powerpc and sparc64.
Reducing these differences against upstream is not important
anymore so hopefully I have finished breaking the compiler
occasionally.
|
|
|
|
|
|
| |
While here, point where we dropped the support for objc from r260014.
MFC after: 3 weeks
|
|
|
|
|
| |
Obtained from: gcc 4.3 (rev. 121464, 122528, 124106; GPLv2)
MFC after: 3 weeks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apple GCC has extensions to support for both label attributes and
an "unavailable" attribute. These are critical for objc but are
also useful in regular C/C++.
Apparently at least the label attributes might have found their way to
upstream GCC but the code doesn't seem available on the GPLv2 tree so
we are taking the code directly from Apple. To make this clearer we
are preserving the annoying "APPLE LOCAL" tags and the ChangeLogs
when they are available.
Obtained from: Apple GCC 4.2 - 5531
MFC after: 3 weeks
|
|
|
|
|
|
|
|
|
|
|
| |
Backport from mainline:
2007-04-24 Hui-May Chang <hm.chang@apple.com>
* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
Obtained from: gcc 4.3 (rev. r124115: GPLv2)
MFC after: 1 week
|
|
|
|
|
|
|
| |
This is equivalent to -Wall -Wno-parentheses.
Obtained from: Apple GCC 4.2 - 5531
MFC after: 1 week
|
|
|
|
|
|
|
|
|
| |
Very small updates: fixes GCC-PR target/31152
Tested by building the cross-compiler.
Obtained from: gcc 4.3 (rev. r118461, 125973: GPLv2)
MFC after: 2 weeks
|
|
|
|
|
|
|
|
| |
DEBUG_PUBTYPES_SECTION is defined.
Obtained from: gcc 4.3 (rev. 118826; GPLv2)
MFC after: 2 weeks
|
|
|
|
|
|
|
| |
Minor mismatch in r259666.
Obtained from: Apple GCC 4.2 - 5646 (Radar 5764921)
MFC after: 1 week
|
|
|
|
|
| |
Obtained from: Apple GCC 4.2 - 5646 (Radar 5764921)
MFC after: 1 week
|
|
|
|
|
|
|
|
|
| |
Fixes GCC libstdc++/29286
The fix seems to work for amd64 but causes segfaults on powerpc.
At this time gcc is much more important on powerpc than on amd64.
Reported by: andreast
|
|
|
|
|
|
| |
They are very useful but at this time I prefer not to figure out
some minor conflicts with the bigger Apple's blocks support
patch that is being worked on for current.
|