6240 Commits

Author SHA1 Message Date
Ed Maste
9ef62fdb87 Set up default shstrtab entries at shstrtab initialization
Instead of waiting until the addition of the first non-default entry.
This fixes a segfault when strip(1) is asked to remove every section from
an object file.

Upstream elftoolchain ticket 463

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1341
2014-12-22 16:31:09 +00:00
Enji Cooper
92e8bbfdfd Add __FreeBSD_version guards around hsearch_r to ease MFCing the code to
stable/10

It was added when __FreeBSD_version was ~1100027
2014-12-21 23:47:30 +00:00
Ian Lepore
040610408e Allow -march=armv7a on the gcc command line, for compatibility with clang.
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.
2014-12-21 23:45:13 +00:00
Ed Maste
17eee5222e Include section name in strip warning message 2014-12-18 19:09:59 +00:00
Dimitry Andric
e65720e1ac Merge ^/head r275759 through r275911. 2014-12-18 18:44:22 +00:00
Justin Hibbits
e5701220a8 Make gas parse '__tls_get_addr(foo@tlsgd)'.
Corresponds to 727fc41e077139570ea8b8ddfd6c546b2a55627c.

This allows us to use -no-integrated-as with clang, if we prefer.

Obtained from:	binutils-gdb (Relicensed from Alan Modra as GPLv2)
MFC after:	2 weeks
X-MFC-with:	r275718
2014-12-18 03:12:46 +00:00
Ed Maste
a356a1f51f Do not strip all when stripping an explicit symbol
When requested to strip specific symbols (-N flag) the default should be
to strip nothing (other than the requested symbols). This is consistent
with binutils strip(1).

PR:		196038
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1327
2014-12-17 14:46:21 +00:00
Xin LI
52df462f7f MFV r275844:
Fix unbound remote denial of service vulnerability.

Security:	FreeBSD-SA-14:30.unbound
Security:	CVE-2014-8602
2014-12-17 06:55:44 +00:00
Ed Maste
2c23cb7c27 Copy elftoolchain readelf from vendor branch 2014-12-16 16:23:54 +00:00
Ed Maste
30568ad37e Correct elftoolchain strip(1) memory size calculation
Calculate the segment's memory size (p_memsz) using the virtual
addresses, not the file offsets. Otherwise padding preceeding SHT_NOBITS
sections may be excluded from the calculation, resulting in a segment
that is too small.

PR:		195653
Sponsored by:	The FreeBSD Foundation
2014-12-15 18:18:57 +00:00
Dimitry Andric
580210532a Add clang patch corrsponding to r275773. 2014-12-14 18:21:03 +00:00
Dimitry Andric
01a314e59a Pull in r221170 from upstream clang trunk (by Roman Divacky):
Implement vaarg lowering for ppc32. Lowering of scalars and
  aggregates is supported. Complex numbers are not.

This adds va_args support for PowerPC (32 bit) to clang.
2014-12-14 18:20:03 +00:00
Dimitry Andric
f843434e37 Update clang patch for r275759 to use correct test cases. 2014-12-14 18:16:49 +00:00
Dimitry Andric
be038cc81f Add clang patch corresponding to r275759. 2014-12-14 13:40:42 +00:00
Dimitry Andric
b567315ffc Pull in r221170 from upstream clang trunk (by Roman Divacky):
Implement vaarg lowering for ppc32. Lowering of scalars and
  aggregates is supported. Complex numbers are not.

This adds va_args support for PowerPC (32 bit) to clang.

Reviewed by:	jhibbits
MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D1308
2014-12-14 13:38:10 +00:00
Dimitry Andric
b7f7b09969 Update patch-r274286-llvm-r201784-asm-dollar.diff, so
test/MC/AsmParser/macros.s is properly deleted when patching.
2014-12-14 13:32:14 +00:00
Dimitry Andric
60d2871897 Update llvm patch for r275635 so all the tests will pass. 2014-12-13 20:17:54 +00:00
Dimitry Andric
be281d7007 Merge ^/head r275715 through r275748. 2014-12-13 19:45:18 +00:00
Dimitry Andric
e5141ad104 Update llvm patches for r274286 and r275633 so all the tests will pass. 2014-12-13 18:54:46 +00:00
Justin Hibbits
ff0bab9760 Add new PowerPC relocations to binutils
Summary:
LLVM/Clang generates relocations that our binutils doesn't understand, but newer
binutils does.  I got permission from the author of a series of patches to
relicense them as GPLv2 for use in FreeBSD.  The upstream git hashes are:

ac2df442ac7901f00af15b272fc48b594b433713
2b95367962dc14f69d3c338c4d54195266e2e169
102890f04c44b64cf5cef4588267dd9f24086ac7
b7fcf6f6bb53b5027e111107f5416769cb9a5798
1d483afedd5a628dc84fb58d1d570f79fdfbfa7b
90aecf7a80c1cefeb45fc10a6cd02c8338e34b4c
3a71aa26df2a372a58e9c11ef9ba51fd0e83320a
727fc41e077139570ea8b8ddfd6c546b2a55627c

With the import of clang 3.5, and a few backported patches, we should be able to
move powerpc and powerpc64 to clang-as-cc soon.

Test Plan: Passes make tinderbox, so no regressions.  Binaries built with clang
run on powerpc64.

Reviewers: #committers, dim

Reviewed By: dim

Differential Revision: https://reviews.freebsd.org/D1297

Obtained from:	Alan Modra, upstream binutils-gdb git
MFC after:	3 weeks
Relnotes:	yes
2014-12-12 03:58:51 +00:00
Dimitry Andric
f45aab62b7 Merge ^/head r275685 through r275714. 2014-12-11 19:27:27 +00:00
Xin LI
c293113327 MFV r275696: file 5.21.
MFC after:	 2 weeks
2014-12-11 06:52:10 +00:00
Dimitry Andric
377af4f123 Merge ^/head r274961 through r275684. 2014-12-10 19:24:42 +00:00
Edward Tomasz Napierala
be3a49ee62 Add fstyp(8). This utility, named after its SVR4 counterpart, detects
filesystems.  It differs from file(1) in that it gives machine-parseable
output, it outputs filesystem labels, doesn't get confused by other
formats metadata, and runs in Capsicum sandbox.

Differential Revision:	https://reviews.freebsd.org/D1255
Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
2014-12-10 14:14:16 +00:00
Xin LI
2c4f16476d Fix multiple vulnerabilities in file(1) and libmagic(3).
Security:	FreeBSD-SA-14:28.file
Security:	CVE-2014-3710, CVE-2014-8116, CVE-2014-8117
2014-12-10 08:19:55 +00:00
Dimitry Andric
bdc6b44506 Add llvm patch corresponding to r275654, and clean up a few other patches. 2014-12-09 20:46:17 +00:00
Dimitry Andric
3f0ad6cf3c Pull in r223147, r223255 and r223390 from upstream llvm trunk (by Roman
Divacky):

  Introduce CPUStringIsValid() into MCSubtargetInfo and use it for ARM
  .cpu parsing.

  Previously .cpu directive in ARM assembler didnt switch to the new
  CPU and therefore acted as a nop. This implemented real action for
  .cpu and eg. allows to assembler FreeBSD kernel with -integrated-as.

  Change the name to be in style.

  Add a FIXME as requested by Renato Golin.
2014-12-09 20:41:51 +00:00
Dimitry Andric
ee287c9033 Add llvm patch corresponding to r275635. 2014-12-09 20:05:05 +00:00
Dimitry Andric
2ee6121f79 Add llvm patch corresponding to r275633. 2014-12-09 20:04:26 +00:00
Dimitry Andric
292d912acf Pull in r223171 from upstream llvm trunk (by Michael Zolotukhin):
PR21302. Vectorize only bottom-tested loops.

  rdar://problem/18886083

This fixes a bug in the llvm vectorizer, which could sometimes cause
vectorized loops to perform an additional iteration, leading to possible
buffer overruns.  Symptoms of this, which are usually segfaults, were
first noticed when building gcc ports, here:

https://lists.freebsd.org/pipermail/freebsd-ports/2014-September/095466.html
https://lists.freebsd.org/pipermail/freebsd-toolchain/2014-September/001211.html

Note: because this is applied on top of llvm/clang 3.5.0, this fix is
slightly different from the one just checked into head in r275633.
2014-12-09 07:48:25 +00:00
Dimitry Andric
cd9521158d Pull in r223171 from upstream llvm trunk (by Michael Zolotukhin):
PR21302. Vectorize only bottom-tested loops.

  rdar://problem/18886083

This fixes a bug in the llvm vectorizer, which could sometimes cause
vectorized loops to perform an additional iteration, leading to possible
buffer overruns.  Symptoms of this, which are usually segfaults, were
first noticed when building gcc ports, here:

https://lists.freebsd.org/pipermail/freebsd-ports/2014-September/095466.html
https://lists.freebsd.org/pipermail/freebsd-toolchain/2014-September/001211.html

Since this fix is very important for ports, bump __FreeBSD_version to
make it easier for port maintainers to test whether the fix has been
applied.

Upstream PR:	http://llvm.org/PR21302
MFC after:	3 days
2014-12-09 07:34:28 +00:00
Dimitry Andric
d7e0694a59 Merge ^/head r275478 through r275622. 2014-12-08 19:56:34 +00:00
Andrew Turner
6ed7db33bc Fix mrc and mrc2 with APSR_nzcv. Binutils encodes it internally as 0 where
we need it to be set to 15 for it to be equivalent to r15.

MFC after:	1 week
X-MFC with:	r275415
Sponsored by:	ABT Systems Ltd
2014-12-07 21:47:19 +00:00
Dimitry Andric
24ce0a02e5 Merge ^/head r275387 through r275477. 2014-12-04 17:38:32 +00:00
Dimitry Andric
b42a6953a1 Pull in r174303 from upstream gcc trunk (by Jason Merrill):
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
2014-12-04 17:26:04 +00:00
Christian Brueffer
850d588074 Add libcuse and libxo. 2014-12-03 18:14:21 +00:00
Baptiste Daroussin
1fb816da82 Update to mandoc cvs version as of 20141201
- Compatiblity with existing manpages has been improved
- Now support ".so" directive with compressed manpages (which fixes a regression
we have since we have new man(1))
2014-12-02 23:24:57 +00:00
Ed Maste
ccbdcd03f2 libelf: Fix cross-endian ELF note file / memory conversion
The namesz and descsz variables need to be used in native endianness.
The sizes are in native order after swapping in the file to memory case,
and before swapping in the memory to file case.

This issue was identified for r273443, but the change was applied to the
wrong case. Revert r273443 to fix the to-memory case, and apply the
equivalent change to the to-file case.

Sponsored by:	DARPA, AFRL
Reviewed by:	adrian, brooks, marcel
Differential Revision: https://reviews.freebsd.org/D1257
2014-12-02 22:35:43 +00:00
Andrew Turner
06b6b5da5e Allow the UAL APSR_nzcv format for the mrc and mrc2 instructions. The clang
integrated assembler only allows these forms so binutils will need to
support them.

MFC after:	1 Week
Sponsored by:	AB Systems Ltd
2014-12-02 18:12:16 +00:00
Dimitry Andric
2383695dc3 Merge ^/head r274961 through r275386. 2014-12-02 01:45:04 +00:00
Dimitry Andric
2d764cca51 Let GNU ld be less obscure about missing symbols and DSOs. If the BFD
object looks like a typical shared library, suggest adding '-l<foo>',
where <foo> has the 'lib' prefix and '.so<bar>' or '.a' suffix removed.

Otherwise, suggest adding '-l:<foo>', where <foo> is the full DT_SONAME.

Submitted by:	Conrad Meyer <conrad.meyer@isilon.com>
Sponsored by:	EMC / Isilon storage division
Reviewed by:	emaste
PR:		194296
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D1152
2014-12-02 01:30:53 +00:00
Baptiste Daroussin
e3ef75f1ea Sync the svn template with the one from ports 2014-12-02 00:23:26 +00:00
Andrew Turner
f9867ad74d Use the floating-point instruction on ARMv7 as the clang 3.5 integrated
assembler doesn't allow these two instructions to use co-processor 11.

MFC after:	1 Week
Sponsored by:	ABT Systems Ltd
2014-12-01 21:13:47 +00:00
Ed Maste
257d0dda42 Track libarchive API change 2014-12-01 16:10:44 +00:00
Ed Maste
310b1572ef Temporarily disable non-FreeBSD NT_ note types 2014-12-01 16:10:03 +00:00
Ed Maste
50f69bfbd6 Fix elftoolchain tools in-tree build
* make variables static
 * add header for uint*_t typedefs
2014-12-01 16:07:31 +00:00
Dimitry Andric
840b8445a5 Merge ^/head r274961 through r275366. 2014-12-01 15:11:29 +00:00
Dimitry Andric
15ad7a7c39 Pull in r209785 from upstream libc++ trunk (by Marshall Clow):
Fix a problem exposed by r208825, which caused bind (and other bits of
  libc++) to stop working. And tests

This fix is needed to support clang 3.5.0 and higher, which are more
strict about forming pointer-to-function types with cv-qualifiers or
ref-qualifiers.  See also the upstream PR <http://llvm.org/PR19742> and
<http://llvm.org/viewvc/llvm-project?rev=208825&view=rev>

Reported by:	amdmi3
MFC after:	3 days
2014-12-01 15:02:49 +00:00
Dimitry Andric
60c317af72 Merge ^/head r275262 through r275363. 2014-12-01 13:14:39 +00:00
Dimitry Andric
d814fbe9d2 Add patch file for r275362. 2014-12-01 13:07:49 +00:00