Commit graph

84 commits

Author SHA1 Message Date
adam
0e12e44da9 Changes 4.0.1:
This is a bug-fix release.
2017-07-11 19:47:37 +00:00
jlam
000f312c98 Use public SHLIB_TYPE instead of private _OPSYS_SHLIB_TYPE. 2017-06-01 13:30:24 +00:00
kamil
53397f9859 Update buildlink3.mk with reality in LLVM projects 2017-05-05 23:13:05 +00:00
kamil
c3143caa8a Reduce diff with pkgsrc-wip/clang-git
This also fixes linking with libstdc++ in clang and should make it usable.
2017-05-05 22:47:00 +00:00
jperkin
6b547497bb Convert CXXFLAGS setting C++ standard to USE_LANGUAGES. 2017-05-03 08:38:38 +00:00
adam
60b9132584 LLVM 4.0.0:
The minimum compiler version required for building LLVM has been raised to 4.8 for GCC and 2015 for Visual Studio.
The C API functions LLVMAddFunctionAttr, LLVMGetFunctionAttr, LLVMRemoveFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute and LLVMRemoveInstrAttribute have been removed.
The C API enum LLVMAttribute has been deleted.
The definition and uses of LLVM_ATRIBUTE_UNUSED_RESULT in the LLVM source were replaced with LLVM_NODISCARD, which matches the C++17 [[nodiscard]] semantics rather than gcc’s __attribute__((warn_unused_result)).
The Timer related APIs now expect a Name and Description. When upgrading code the previously used names should become descriptions and a short name in the style of a programming language identifier should be added.
LLVM now handles invariant.group across different basic blocks, which makes it possible to devirtualize virtual calls inside loops.
The aggressive dead code elimination phase (“adce”) now removes branches which do not effect program behavior. Loops are retained by default since they may be infinite but these can also be removed with LLVM option -adce-remove-loops when the loop body otherwise has no live operations.
The llvm-cov tool can now export coverage data as json. Its html output mode has also improved.
2017-03-17 22:38:17 +00:00
brook
8f064fc680 Use the system-specific libtool on Darwin.
This fixes bugs relating to unrecognized libtool options on Darwin.
2017-01-16 17:26:47 +00:00
adam
a3ebdf18b6 Changes 3.9.1:
The LLVMContext gains a new runtime check (see LLVMContext::discardValueNames()) that can be set to discard Value names (other than GlobalValue). This is intended to be used in release builds by clients that are interested in saving CPU/memory as much as possible.
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9 requires CMake 3.4.3 or later to build. For information about using CMake please see the documentation on Building LLVM with CMake. For information about the CMake language there is also a CMake Primer document available.
C API functions LLVMParseBitcode, LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext and LLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has been removed (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecated in favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor of the new LLVMAttributeRef API. The deprecated functions are LLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr, LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute, LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns an iterator to the next instruction instead of void. Targets that previously did MBB.erase(I); return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets will need to be updated to replace the argument node and remove any dead nodes in cases where they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis. It should provide higher-quality results than MemDep, and be algorithmically faster than MemDep. Currently, GVNHoist (which is off by default) makes use of MemorySSA.
The minimum density for lowering switches with jump tables has been reduced from 40% to 10% for functions which are not marked optsize (that is, compiled with -Os).
2017-01-05 11:54:32 +00:00
joerg
6818ae5252 Revert. 2016-12-17 23:28:51 +00:00
joerg
0de27f6641 Explicitly build LLVM projects with -std=c++11, it doesn't get detected
automatically in all cases.
2016-12-17 23:28:34 +00:00
ryoon
861be02d4d Update llvm packages to 3.9.0
* Drop CppBackend. It is removed.

Changelog:
* GCC ABI Tag
* LLVM IR: new intrinsics etc.
* Change LLVM IPO model
* Support ThinLTO
* Improve the ARM targets, ARMv8.2-A support etc.
* Improve the MIPS targets
* Improve the PowerPC target, default optim O3 to O2
* Improve the X86 target, SKylake AVX-512 etc.
* Improve the AMDGPU, better support for Mesa 12
2016-11-14 20:15:32 +00:00
wiz
1ea1c32028 Update llvm and clang* to 3.8.1.
This release contains bug-fixes for the LLVM 3.8.0 release. This
release is API and ABI compatible with 3.8.0.
2016-07-26 12:43:51 +00:00
tnn
b861e8f85b Update to clang-3.8.0. Split out llvm tools to lang/llvm.
Packaged in pkgsrc-wip by myself and Kamil.
Remove stale pkgsrc/SunOS bread crumbs that were difficult to merge
following the build framework switch. Needs to be redone. (Sorry!)

Summary of significant changes in LLVM:
- switch build framework from autoconf to CMake
- llvm-ar now supports thin archives.
- llvm doesn t produce .data.rel.ro.local or .data.rel sections anymore.
- opional support for linking clang and the LLVM tools with a single
  libLLVM shared library

  pkgsrc note: we have this library in lang/libLLVM, but we don't currently
  use it. We may do so in the future if/when the API matures.

- The optimization to move the prologue and epilogue of functions in colder
  code path (shrink-wrapping) is now enabled by default
- new target-independent gcc-compatible emulated Thread Local Storage mode
- various target specific optimizations

Summary of significant changes in Clang:

- new compiler flags for tuning what DWARF information is included
- better strict alignment handling
- better support for __builtin_object_size
2016-03-10 15:01:52 +00:00
tnn
7b4e10c0e1 g/c obsolete comment 2016-03-08 21:11:44 +00:00
jperkin
41c43a2d5e Do not use "-z discard-unused" linker flags on SunOS, it is only supported
by the very latest Oracle Solaris release.
2016-03-07 16:27:47 +00:00
jperkin
4583c711ee Fix library names on Darwin. 2016-02-25 10:05:48 +00:00
jperkin
89d56bd749 Update PLIST for current Darwin build. 2016-02-22 12:22:52 +00:00
ryoon
a601802c79 Update to 3.7.1
Changelog:
Major changes in 3.7.1
======================

* 3.7.0 was released with an inadvertent change to the signature of the C
  API function: LLVMBuildLandingPad, which made the C API incompatible with
  prior releases.  This has been corrected in LLVM 3.7.1.

  As a result of this change, 3.7.0 is not ABI compatible with 3.7.1.

  +----------------------------------------------------------------------------+
  | History of the LLVMBuildLandingPad() function                              |
  +===========================+================================================+
  | 3.6.2 and prior releases  | LLVMBuildLandingPad(LLVMBuilderRef,            |
  |                           |                     LLVMTypeRef,               |
  |                           |                     LLVMValueRef,              |
  |                           |                     unsigned, const char*)     |
  +---------------------------+------------------------------------------------+
  | 3.7.0                     | LLVMBuildLandingPad(LLVMBuilderRef,            |
  |                           |                     LLVMTypeRef,               |
  |                           |                     unsigned, const char*)     |
  +---------------------------+------------------------------------------------+
  | 3.7.1 and future releases | LLVMBuildLandingPad(LLVMBuilderRef,            |
  |                           |                     LLVMTypeRef,               |
  |                           |                     LLVMValueRef,              |
  |                           |                     unsigned, const char*)     |
  +---------------------------+------------------------------------------------+
2016-01-11 19:16:08 +00:00
bsiegert
930eaa9d94 Re-add a buildlink3.mk for a future include-what-you-use package. 2015-12-30 15:54:56 +00:00
dholland
41c6e246f4 Add patch comments. 2015-12-29 23:34:43 +00:00
wiz
3117b47713 Remove static-analyzer option, moved into a separate package. 2015-11-06 13:51:18 +00:00
agc
54622f28e2 Add SHA512 digests for distfiles for lang category
Problems found with existing digests:
	Package nhc98 distfile nhc98src-1.22.tar.gz
	a8adc8f22371998ee0657bc0e01058a57d876abc [recorded]
	81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated]

Problems found locating distfiles:
	Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz
	Package icc11: missing distfile l_cproc_p_11.1.080.tgz
	Package jini: missing distfile jini-1_2_1_001-src.zip
	Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz
	Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz
	Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin
	Package sun-jdk6: missing distfile jdk-6u45-solaris-i586.sh
	Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz
	Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz
	Package sun-jre6: missing distfile jce_policy-6.zip
	Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
	Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh
	Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz
	Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 22:50:31 +00:00
tnn
272746bd4b Update to clang-3.7.0 and libLLVM-3.7.0
Compacted version of upstream's release notes:

The LLVM C API LLVMGetTargetMachineData is deprecated
DataLayout is no longer optional
Comdats are now ortogonal to the linkage
On ELF now supports multiple sections with the same name and comdat
LLVM now lazily loads metadata in some cases
Creating archives with IR files with debug info is now 25X faster
llvm-ar(1) can create archives in the BSD format used by OS X
LLVM received a backend for the extended Berkely Packet Filter instruction set
The BPF target is now available by default
Switch-case lowering was rewritten to avoid generating unbalanced search trees
The debug info IR class hierarchy now inherits from Metadata
Argument-less TargetMachine::getSubtarget has been removed from the tree
2015-09-26 08:42:19 +00:00
tnn
b090ce48ec preempt any fallout by including a comment abount making sure MesaLib
still works when updating this.
2015-09-25 15:59:19 +00:00
tnn
abff23d75f drop obsolete patches 2015-09-11 01:21:57 +00:00
adam
b4c78357c5 Changes 3.6.2:
Bug-fix release.
2015-07-20 05:49:53 +00:00
adam
3f186447e0 Changes 3.6.1:
* Support for AuroraUX has been removed.
* Added support for a native object file-based bitcode wrapper format.
* Added support for MSVC’s __vectorcall calling convention as x86_vectorcallcc.
* Prefix data rework
* Metadata is not a Value
* Alias syntax change
* The old JIT has been removed
* object::Binary doesn’t own the file buffer
* IR in object files is now supported
* The gold plugin has been rewritten
2015-05-28 13:25:59 +00:00
ryoon
3034f5c947 Fix Linux PLIST issue.
Tested under Debian GNU/Linux 8.
2015-05-22 22:44:08 +00:00
tnn
9fda9d2447 Use full paths to archive files instead of -lfoo to avoid wrapper reordering
when linking a shared library out of .a files.
This is what other packages that use -Wl,--whole-archive seem to do.
This works with and without cwrappers.

XXX someone please apply similar fixes for Darwin and SunOS if necessary
2015-04-26 13:08:38 +00:00
tnn
a5ec43770d Unbreak C++ on NetBSD, by popular demand.
Background:
LLVM 3.6 upstream added support for being a native toolchain on NetBSD.
This changed the default C++ runtime library from libstdc++ to libc++.
Patch this in pkgsrc's clang so we continue to use libstdc++ (for now)
Proper support for libc++ should be added later (perhaps w/ PKG_OPTIONs).
Thanks to Joerg for explaining the problem.
2015-04-07 22:05:36 +00:00
tnn
8d49bf7da9 Teach the llvm shared library build rules about NetBSD so we get a single
shlib with whole-archive like on other platforms. Bump revision and bl3.
2015-04-06 17:25:05 +00:00
tnn
d054e51544 Remove shlib option. lang/libLLVM provides equivalent functionality. 2015-04-03 11:06:57 +00:00
tnn
7046b1b0c7 need zlib 2015-03-22 16:07:59 +00:00
tnn
fea7aba9e6 needs gzip(1) tool for generation of html.tar.gz 2015-03-13 18:00:33 +00:00
tnn
376585c1d8 delete bl3.mk. It only has a handful of users in wip/, will adjust them. 2015-03-04 17:03:33 +00:00
tnn
7b3aa04857 Makefile: move some stuff from Makefile.common here
PLIST: unsubstitute ${MACHINE_ARCH}
2015-03-04 13:57:42 +00:00
tnn
1ebfda6111 convert to Makefile.common-style package so libLLVM can reference this 2015-03-04 09:59:57 +00:00
tnn
812ab404d1 Add default off shlib option for building PIC & installing shared libLLVM libs.
I will spin this off to a libLLVM package when we have a ready use case for it.

Packages that may want to use libLLVM are for example MesaLib and OpenJDK.
2015-03-03 16:27:33 +00:00
tnn
f11d3036d7 Update to clang-3.6.0 (2015-02-27)
Non-comprehensive list of changes in this release:
- Support for AuroraUX has been removed.
- Added support for a native object file-based bitcode wrapper format.
- Added support for MSVC?s __vectorcall calling convention as x86_vectorcallcc.
2015-03-03 12:04:08 +00:00
adam
5e7f3b076f Changes 3.5.1:
All backends have been changed to use the MC asm printer and support for the non MC one has been removed.
Clang can now successfully self-host itself on Linux/Sparc64 and on FreeBSD/Sparc64.
LLVM now assumes the assembler supports .loc for generating debug line numbers. The old support for printing the debug line info directly was only used by llc and has been removed.
All inline assembly is parsed by the integrated assembler when it is enabled. Previously this was only the case for object-file output. It is now the case for assembly output as well. The integrated assembler can be disabled with the -no-integrated-as option.
llvm-ar now handles IR files like regular object files. In particular, a regular symbol table is created for symbols defined in IR files, including those in file scope inline assembly.
LLVM now always uses cfi directives for producing most stack unwinding information.
The prefix for loop vectorizer hint metadata has been changed from llvm.vectorizer to llvm.loop.vectorize. In addition, llvm.vectorizer.unroll metadata has been renamed llvm.loop.interleave.count.
Some backends previously implemented Atomic NAND(x,y) as x & ~y. Now all backends implement it as ~(x & y), matching the semantics of GCC 4.4 and later.
2015-01-29 11:38:29 +00:00
riz
e1d0f01ea6 This builds with gcc 4.8 too, don't make me build 4.7. 2014-11-15 00:04:33 +00:00
taca
0098c131eb clang 3.5 needs gcc 4.7 and later when build with gcc. 2014-10-14 16:26:00 +00:00
wiz
ce32265c0e Add option for installing the static analyzer.
Default off since it depends on perl AND python.
2014-10-01 09:41:02 +00:00
adam
be3256dbd3 Changes 3.5.0:
All backends have been changed to use the MC asm printer and support for the non MC one has been removed.
Clang can now successfully self-host itself on Linux/Sparc64 and on FreeBSD/Sparc64.
LLVM now assumes the assembler supports .loc for generating debug line numbers. The old support for printing the debug line info directly was only used by llc and has been removed.
All inline assembly is parsed by the integrated assembler when it is enabled. Previously this was only the case for object-file output. It is now the case for assembly output as well. The integrated assembler can be disabled with the -no-integrated-as option.
llvm-ar now handles IR files like regular object files. In particular, a regular symbol table is created for symbols defined in IR files, including those in file scope inline assembly.
LLVM now always uses cfi directives for producing most stack unwinding information.
The prefix for loop vectorizer hint metadata has been changed from llvm.vectorizer to llvm.loop.vectorize. In addition, llvm.vectorizer.unroll metadata has been renamed llvm.loop.interleave.count.
Some backends previously implemented Atomic NAND(x,y) as x & ~y. Now all backends implement it as ~(x & y), matching the semantics of GCC 4.4 and later.
2014-09-06 07:37:14 +00:00
cheusov
b593ef4c9f Fix build failure on Linux (PLIST issue) 2014-07-19 11:12:28 +00:00
adam
79fbd5434e Changes 3.4.2:
libLLVM-3.4.so soname fix.
PowerPC: Fix for 128-bit shifts.
R600: Shader calling convention fix.
2014-07-18 13:54:05 +00:00
adam
8d579799ca Changes 3.4.1:
Various bug fixes for AArch64, ARM, PowerPC, R600, and X86 targets.
R600 geometry shader support
Fix for vaargs on X86
2014-05-28 15:49:34 +00:00
wiz
3faf991a33 Bump applications PKGREVISIONs for python users that might be using
python3, since the default changed from python33 to python34.

I probably bumped too many. I hope I got them all.
2014-05-17 16:10:41 +00:00
adam
c5476f224f Added libc++ 2014-02-27 17:35:35 +00:00
minskim
1e6b3e8595 Fix library extension on Darwin 2014-02-19 20:16:07 +00:00