6489 Commits

Author SHA1 Message Date
dim
cf0553900d Pull in r227089 from upstream llvm trunk (by Vasileios Kalintiris):
[mips] Enable arithmetic and binary operations for the i128 data type.

  Summary:
  This patch adds support for some operations that were missing from
  128-bit integer types (add/sub/mul/sdiv/udiv... etc.). With these
  changes we can support the __int128_t and __uint128_t data types
  from C/C++.

  Depends on D7125

  Reviewers: dsanders

  Subscribers: llvm-commits

  Differential Revision: http://reviews.llvm.org/D7143

This fixes "error in backend" messages, when compiling parts of
compiler-rt using 128-bit integer types for mips64.

Reported by:	sbruno
PR:		197259
2015-02-07 23:25:56 +00:00
dim
d8becb12b6 Back out r278349 and r278350 for now, since this apparently blows up the
kernel build in sys/dev/hptmv/hptproc.c for some people.

Reported by:	sbruno, Matthew Fuller <fullermd@over-yonder.net>
2015-02-07 16:57:32 +00:00
dim
6598113636 Merging ^/head r278298 through r278350. 2015-02-07 12:57:40 +00:00
dim
b2608b7652 Add llvm patch corresponding to r278349. 2015-02-07 12:52:34 +00:00
dim
69ca00fde3 Pull in r224884 from upstream llvm trunk (by Keno Fischer):
[FastIsel][X86] Fix invalid register replacement for bool args

  Summary:
  Consider the following IR:

   %3 = load i8* undef
   %4 = trunc i8 %3 to i1
   %5 = call %jl_value_t.0* @foo(..., i1 %4, ...)
   ret %jl_value_t.0* %5

  Bools (that are the result of direct truncs) are lowered as whatever
  the argument to the trunc was and a "and 1", causing the part of the
  MBB responsible for this argument to look something like this:

   %vreg8<def,tied1> = AND8ri %vreg7<kill,tied0>, 1, %EFLAGS<imp-def>; GR8:%vreg8,%vreg7

  Later, when the load is lowered, it will insert

   %vreg15<def> = MOV8rm %vreg14, 1, %noreg, 0, %noreg; mem:LD1[undef] GR8:%vreg15 GR64:%vreg14

  but remember to (at the end of isel) replace vreg7 by vreg15. Now for
  the bug. In fast isel lowering, we mistakenly mark vreg8 as the result
  of the load instead of the trunc. This adds a fixup to have
  vreg8 replaced by whatever the result of the load is as well, so
  we end up with

   %vreg15<def,tied1> = AND8ri %vreg15<kill,tied0>, 1, %EFLAGS<imp-def>; GR8:%vreg15

  which is an SSA violation and causes problems later down the road.

  This fixes PR21557.

  Test Plan: Test test case from PR21557 is added to the test suite.

  Reviewers: ributzka

  Reviewed By: ributzka

  Subscribers: llvm-commits

  Differential Revision: http://reviews.llvm.org/D6245

This fixes a possible assertion failure when compiling toolbox.cxx from
LibreOffice 4.3.5.

Reported by:	kwm
2015-02-07 12:50:33 +00:00
emaste
fa0e7b4169 Update LLDB snapshot to upstream r225923 (git 2b588ecd)
Sponsored by:	DARPA, AFRL
2015-02-06 22:25:21 +00:00
jhb
571edab7e4 Add a new device control utility for new-bus devices called devctl. This
allows the user to request administrative changes to individual devices
such as attach or detaching drivers or disabling and re-enabling devices.
- Add a new /dev/devctl2 character device which uses ioctls for device
  requests.  The ioctls use a common 'struct devreq' which is somewhat
  similar to 'struct ifreq'.
- The ioctls identify the device to operate on via a string.  This
  string can either by the device's name, or it can be a bus-specific
  address.  (For unattached devices, a bus address is the only way to
  locate a device.)  Bus drivers register an eventhandler to claim
  unrecognized device names that the driver recognizes as a valid address.
  Two buses currently support addresses: ACPI recognizes any device
  in the ACPI namespace via its full path starting with "\" and
  the PCI bus driver recognizes an address specification of
  'pci[<domain>:]<bus>:<slot>:<func>' (identical to the PCI selector
  strings supported by pciconf).
- To make it easier to cut and paste, change the PnP location string
  in the PCI bus driver to output a full PCI selector string rather
  than 'slot=<slot> function=<func>'.
- Add a devctl(3) interface in libdevctl which provides a wrapper around
  the ioctls and is the preferred interface for other userland code.
- Add a devctl(8) program which is a simple wrapper around the requests
  supported by devctl(3).
- Add a device_is_suspended() function to check DF_SUSPENDED.
- Add a resource_unset_value() function that can be used to remove a
  hint from the kernel environment.  This is used to clear a
  hint.<driver>.<unit>.disabled hint when re-enabling a boot-time
  disabled device.

Reviewed by:	imp (parts)
Requested by:	imp (changing PCI location string)
Relnotes:	yes
2015-02-06 16:09:01 +00:00
dim
f27eb4094e Add the llvm patch corresponding to r278112. 2015-02-02 20:36:16 +00:00
dim
fe14cf7eed Pull in r227752 from upstream llvm trunk (by Michael Kuperstein):
[X86] Convert esp-relative movs of function arguments to pushes, step 2

  This moves the transformation introduced in r223757 into a separate MI pass.
  This allows it to cover many more cases (not only cases where there must be a
  reserved call frame), and perform rudimentary call folding. It still doesn't
  have a heuristic, so it is enabled only for optsize/minsize, with stack
  alignment <= 8, where it ought to be a fairly clear win.

  (Re-commit of r227728)

  Differential Revision: http://reviews.llvm.org/D6789

This helps to get sys/boot/i386/boot2 below the required size again,
when optimizing with -Oz.
2015-02-02 20:34:40 +00:00
dim
8dc8474065 Merge ^/head r278005 through r278109. 2015-02-02 20:18:47 +00:00
dim
54f475a481 Belatedly add the clang patch corresponding to r277423. 2015-02-02 20:05:52 +00:00
jilles
6bc8b6eb4c ttyname_r(): Return actual error, not always [ENOTTY].
Adjust the test that used to fail because of this bug.

PR:		191936
MFC after:	1 week
2015-02-01 22:50:33 +00:00
andrew
1a44efb220 FreeBSD expects _Unwind_GetGR, _Unwind_SetGR, and _Unwind_SetIP to be
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.
2015-02-01 09:50:33 +00:00
dim
bcd1c03c73 Belatedly bump the clang repository URL for 3.6.0 RC2. 2015-02-01 01:53:59 +00:00
dim
86d69c3d82 Import libcxxrt master 1cb607e89f6135bbc10f3d3b6fba1f983e258dcc.
Interesting fixes:
1cb607e	Correct gcc version check for __cxa_begin_catch() declaration
	with or without throw()

MFC after:	3 days
2015-01-31 23:31:45 +00:00
dim
addd2d04c7 Revert r256642, not only to reduce diffs against upstream libcxxrt, but
also because it is the wrong approach: comparing typeinfo names deeply
causes trouble if two loaded DSOs use independent types of the same
name.

In addition, this particular change was never merged to FreeBSD 10.x and
9.x, so let's get rid of it before it ends up in an 11.x release.

Discussed with:	theraven, joerg@netbsd
2015-01-31 23:08:29 +00:00
dim
c9d63888fe Merge llvm 3.6.0rc2 from ^/vendor/llvm/dist, merge clang 3.6.0rc2 from
^/vendor/clang/dist, resolve conflicts, and cleanup patches.
2015-01-31 21:57:38 +00:00
dim
de7d9ba1a1 Merge ^/head r277975 through r277998. 2015-01-31 20:49:30 +00:00
pfg
78884a3349 MFV r277981:
Upstream fixes for issues found with afl (Issue #417).

- Fix length checking.

Check both the captured length and the on-the-wire length (the latter
*should* be greater than or equal to the former, but that's not
guaranteed).

Add some additional length checks, so neither caplen nor length
underflow.

If we stop dissecting because the packet is too short, return 1, not 0,
as we've "dissected" what we can; 0 means "this is LLC+SNAP with an OUI
of 0 and an unknown Ethertype".

commit:	743bcecdc92f88b118ec7aac4f68b606601205cc

- Clean up length checks.

Check only the amount of length that matters at any given point; yes,
this means we do multiple checks, but so it goes.

We don't need to check for LLC+SNAP - llc_print() does that for us.  We
do, however, need to check to make sure we can safely skip the Fore
header.

commit:	5c65e7532fa16308e01299988852b0dc5b027559
2015-01-31 16:34:39 +00:00
dim
2f964f86f0 Merge ^/head r277902 through r277944. 2015-01-30 18:34:56 +00:00
dim
ff569dac96 Partially revert r273382, to reduce diffs against upstream. This was a
temporary fix to solve a conflict with an older version of libc++, and
it is no longer relevant.

MFC after:	3 days
2015-01-30 18:26:38 +00:00
dim
1d69d7d459 Merge ^/head r277861 through r277895. 2015-01-29 19:21:21 +00:00
pfg
38e3f37854 MFV r277870
Fix compile warnings for gcc-4.4.x
This also fixes at least a warning with clang 3.6.0
including the fix for r277841.

MFC after:	1 week
2015-01-29 15:35:55 +00:00
pfg
4d1e358c77 Revert r277841: It will be re-merged through the vendor area. 2015-01-29 15:33:05 +00:00
pfg
9608c0caa1 MFV r277866
amd: Add extra check for NULL before deref.

CID:		274421
Obtained from:	NetBSD
MFC after:	4 days
2015-01-29 01:28:39 +00:00
pfg
6789315d88 Revert r277814: It will be re-merged through the vendor area. 2015-01-29 01:26:23 +00:00
dim
e375b19ff6 Merge ^/head r277804 through r277843. 2015-01-28 18:45:40 +00:00
emaste
b4f4496909 Preserve hard & symbolic links when modifying source file
Strip is often used to modify existing files, rather than creating new
files. If the existing file has hard links or is a symbolic link, act as
if editing the file in place and preserve the links.

Reported by:	luigi
Reviewed by:	imp, rpaulo
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D1682
2015-01-28 18:37:09 +00:00
dim
110aa2a0d0 Fix the following clang 3.6.0 warning in contrib/amd/hlfsd/homedir.c:
contrib/amd/hlfsd/homedir.c:497:8: error: address of array 'buf' will
always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
  if (!buf || buf[0] == '\0')
      ~^~~

In the affected function, 'buf' is declared as an array of char, so it
can never be null.  Remove the unecessary check.
2015-01-28 18:19:25 +00:00
dim
021a871674 Apply changeset 854 from upstream openpam (by Dag-Erling Smørgrav):
Silence all remaining qual-cast warnings except in the test suite.
2015-01-28 18:13:52 +00:00
ngie
a109e38597 Revert r277357 as expr has been enhanced to better detect overflow conditions,
and now the tests pass

PR: 196867
X-MFC with: r277798
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division
2015-01-28 11:38:12 +00:00
pfg
1d356945ea amd: Add extra check for NULL before deref.
CID:		274421
Obtained from:	NetBSD
MFC after:	5 days
2015-01-27 20:48:05 +00:00
dim
93d1b629ef Merging ^/head r277777 through r277803. 2015-01-27 19:40:08 +00:00
gshapiro
8827f4c641 Remove build specific details from sendmail.cf/submit.cf in support of
https://wiki.freebsd.org/ReproducibleBuilds

The contrib/sendmail change will be made in the upstream source for a
future sendmail release.

Reviewed by:	des
MFC after:	3 days
2015-01-27 04:06:47 +00:00
pfg
484a2d55e5 MFV r277782:
Merge some cherry-picked fixes originating in OpenBSD

Check whether the version field is available before looking at it.
While we're at it, use ND_TCHECK(), rather than a hand-rolled check, to
check whether we have the full fixed-length portion of the IPv4 header.

commit c67afe913011138a2504ec4d3d423b48e73b12f3

Do more length checking. From OpenBSD.

commit d7516761f9c4877bcb05bb6543be3543e165249
2015-01-27 01:45:47 +00:00
dim
a53e4d44d0 Merge ^/head r277719 through 277776. 2015-01-26 21:41:54 +00:00
dim
191df99881 Add llvm and clang patches corresponding to r277774 and r277775. 2015-01-26 21:24:04 +00:00
dim
52823954cb Pull in r227062 from upstream clang trunk (by Renato Golin):
Allows Clang to use LLVM's fixes-x18 option

  This patch allows clang to have llvm reserve the x18
  platform register on AArch64. FreeBSD will use this in the kernel for
  per-cpu data but has no need to reserve this register in userland so
  will need this flag to reserve it.

  This uses llvm r226664 to allow this register to be reserved.

  Patch by Andrew Turner.

Requested by:	andrew
2015-01-26 21:19:24 +00:00
dim
bb27da195a Pull in r226664 from upstream llvm trunk (by Tim Northover):
AArch64: add backend option to reserve x18 (platform register)

  AAPCS64 says that it's up to the platform to specify whether x18 is
  reserved, and a first step on that way is to add a flag controlling
  it.

  From: Andrew Turner <andrew@fubar.geek.nz>

Requested by:	andrew
2015-01-26 21:17:14 +00:00
dim
26ab20c8dc Merge ^/head r277327 through r277718. 2015-01-25 23:43:12 +00:00
dim
7db7b571b9 Merge llvm 3.6.0rc1 from ^/vendor/llvm/dist, merge clang 3.6.0rc1 from
^/vendor/clang/dist, resolve conflicts, and cleanup patches.
2015-01-25 23:36:55 +00:00
pfg
58730a3555 MFV r277658:
GDB: Replace use of sprintf.

2005-03-17  Mark Kettenis  <kettenis@gnu.org>

      * corelow.c (get_core_register_section): Replace usage of sprintf
      and strcpy with xstrprintf and xstrdup.

Sourceware commit:	3ecda4574edb38ad12fb491ccaf6d9b0caa3a07a

CID:	1006819
MFC after:	4 days
2015-01-24 21:05:18 +00:00
pfg
984840d5af MFV: r277654
gdb: Add missing break statements

2004-05-21  Jim Blandy  <jimb@redhat.com>

       * dwarf2expr.c (execute_stack_op): Add 'break' statements after
       cases for DW_OP_div and DW_OP_shr.  (Thanks to Reva Cuthbertson.)

Sourceware commit	99c87dab95747d380392a3698740507a21ad3236

CID:	1008254
MFC after:	4 days
2015-01-24 20:25:21 +00:00
jilles
9dbba1ddab Enable utimensat tests from NetBSD.
As with other tests from c063, a required #include <sys/stat.h> was missing.
2015-01-24 15:49:40 +00:00
delphij
ca1fdb3c2c Don't include libcapsicum headers when requested.
Reported by:	luigi
MFC after:	14 days
X-MFC-with:	r276788
2015-01-24 06:06:46 +00:00
pfg
7de9767772 MFV r277607:
GDB: Fix memset thinkos.

2005-03-25  Anthony Green  <green@redhat.com>

       * remote.c (remote_store_registers): Fix memset usage.
       * std-regs.c (value_of_builtin_frame_reg): Ditto.
       (value_of_builtin_frame_fp_reg): Ditto.
       (value_of_builtin_frame_reg): Ditto.

Reported by:	Dirk Engling
CID:		604160, 604161, 604162, 604163
MFC after:	5 days
2015-01-23 20:40:31 +00:00
emaste
b0c7bd39a2 redelf: Add missing R_X86_64_ relocation types
PR:		196918
Reviewed by:	dim
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D1570
2015-01-21 01:07:58 +00:00
sbruno
667029aa90 Allow clang to be built for mips/mips64 backend types by adding our mips
triple ids

This only allows testing and does not change the defaults for mips/mips64.
They still build/use gcc by default.

Differential Revision:	https://reviews.freebsd.org/D1190
Reviewed by:	dim
2015-01-20 17:00:28 +00:00
ngie
4b4c58b79e Expect :overflow to fail with FreeBSD's expr as it doesn't have stringent
overflow checks like NetBSD's expr does

MFC after: 3 days
PR: 196867
2015-01-19 06:10:01 +00:00
marcel
ea59bea593 Upgrade libxo to 0.2.0.
Obtained from:	https://github.com/Juniper/libxo
Requested by: Phil Shafer <phil@juniper.net>

Revisions 276253 & 276273 were incorporated into 0.2.0.
Revision 276260 has been merged-in.
2015-01-19 02:22:03 +00:00