Commit Graph
36 Commits
Author SHA1 Message Date
Long Nguyen 8ff26ac253 Add a script for cross building python 2021-08-16 11:26:37 +03:00
Martin Storsjö 9188cce153 build-llvm.sh: Bump to llvmorg-13.0.0-rc1
Notable changes since 12.0.0 for llvm-mingw are:

llvm:
- Produce proper cross-section relative relocations on ARM and AArch64
- Fixed the calling convention for AArch64 for variadic functions involving
  floats in the fixed arguments
- Added a windres compatible frontend in llvm-rc, avoiding the need for
  external wrappers
- Build LLVM with -ffunction-sections and --gc-sections, shrinking
  a full build of llvm-mingw without LLVM_BUILD_LLVM_DYLIB by 22%
  (but llvm-mingw uses LLVM_BUILD_LLVM_DYLIB these days, which shrinks
  the build even more)
- Avoid optimizing/changing function calls into stpcpy due to optimizations
- llvm-ml has improved to the point where it can build the OpenMP assembly
  file without needing to use another assembler tool

lld:
- Support linking directly against DLLs without using import libraries
- Improved reliability when running on Windows, avoiding some hangs
  when terminating
- Fixed linking with --export-all-symbols in combination with
  -ffunction-sections
- Fixed --export-all-symbols when linking EXEs
- Fixed autoexport from LTO objects with comdat symbols
- Print warnings with a "ld.lld" prefix instead of "lld-link"
- Avoid thread exhaustion on 32 bit Windows
- Accepting more forms of options, like -static and --stack=

clang:
- Fixed reading long doubles with va_arg on x86_64
- Fixed calling std::once in a dynamically linked libstdc++

runtimes:
- Complete support for std::filesystem in libc++ (which was previously
  backported to 12.0.0 in llvm-mingw too, but the previous release had
  a bug in using e.g. the u8path() method when linking against the DLL
  version of libc++)
- Implemented semaphores in libc++
- Provide the __gcc_personality_seh0 symbol, fixing building C code with
  -fexceptions and __attribute__((cleanup))
- Simplified building/installing compiler-rt and libunwind
- Silenced lots of build warnings in OpenMP
2021-08-09 12:08:13 +03:00
Martin Storsjö 657d12c8a5 Backport another libc++ patch for std::filesystem (and locale) usage
This fixes linking against a DLL of libc++ while using the common headers
(generated from the static version of the library, but which work for
both shared and static versions) when calling e.g. std::filesystem::u8path.
2021-05-25 23:55:32 +03:00
Martin Storsjö 2094638569 patches: Patch the llvm 12.x release to include support for std::filesystem in libcxx 2021-04-23 10:58:42 +03:00
Martin Storsjö c571ff004e Update to the latest version of libcxx
This version can do without the two patches we carried locally.
2017-09-13 09:58:00 +03:00
Martin Storsjö 403cbade55 Update to the latest version of llvm/clang/lld
This allows getting rid of the local patches to lld.
2017-09-12 14:20:04 +03:00
Martin Storsjö 728046d5ea Add a lld patch that makes more cmake tests with lld pass 2017-08-25 23:59:18 +03:00
Martin Storsjö 9dcdca1563 Update to the latest version of mingw-w64 with the local patches merged 2017-08-25 23:59:18 +03:00
Martin Storsjö ed96326423 Build libcxx and libcxxabi statically for armv7 and test building a C++ hello world 2017-08-25 14:21:45 +03:00
Martin Storsjö f672db193b Adjust cmake invocations for building compiler-rt
This fixes cross-building for i686.
2017-08-25 14:01:16 +03:00
Martin Storsjö 72ec9880c8 Update to the latest version of mingw-w64 where the clang ctors patch is merged 2017-08-22 23:19:17 +03:00
Martin Storsjö bf656d77e7 Update to a LLVM 5.0-ish version from trunk
Using the 5.0 release branch should work equally well except for
aarch64/win support.
2017-08-22 14:10:08 +03:00
Martin Storsjö 9f6a9c9510 Renumber the clang/llvm patches
This is done in two steps to help git make sensible diffs.
2017-04-03 14:48:28 +03:00
Martin Storsjö 2504fdbd88 Update to the LLVM 4.0 release branch 2017-04-03 14:42:55 +03:00
Martin Storsjö 935d8f40ad Add a comment about a patch that now has been upstreamed 2016-11-19 23:45:12 +02:00
Martin Storsjö 1957272cd5 Remove the compiler-rt mingw/arm patch
This has now been committed upstream in the master branch (we
check out the master branch of compiler-rt, not the 3.9 branch),
in SVN rev 287465 (git mirror commit 8134888c4d01).
2016-11-19 23:34:12 +02:00
Martin Storsjö 701bc94b8f Update the compiler-rt patches for building for arm/mingw
The second one, for msvc mode (which vlc doesn't need anyway), isn't
necessary now that llvm has been patched to emit calls properly using
the msvc helper function names.
2016-11-01 11:16:30 +02:00
Martin Storsjö be1357f467 Backport more llvm patches from current master
This fixes up handling of divisions on ARM/Windows, and consistently
does calls to helper functions using the windows/msvc names, instead
of the libgcc naming.
2016-11-01 11:13:50 +02:00
Martin Storsjö 26be2e70cc Remove mingw patches that now have been merged upstream (in a different form) 2016-10-04 10:41:31 +03:00
Martin Storsjö c1e32c9587 Updated libunwind, libcxx and libcxx patches and build commands
Build libcxx and libcxxabi (succeeding) and libunwind (patch rebased
but build not working).
2016-08-31 12:25:08 +03:00
Martin Storsjö 0e847128ef Add mingw patches for fixing math functions 2016-08-27 22:48:15 +03:00
Martin Storsjö d71fab8802 Add a patch for adding open/read/write/close/setmode aliases to the arm msvcrt
This requires using llvm-dlltool, since genlib currently doesn't
support aliases.
2016-08-27 22:48:15 +03:00
Martin Storsjö e22accd247 Build compiler-rt using cmake, add arm division and float/int64 conversion routines
Build using the master branch instead of 3.9.

By building using cmake, we don't need to build the files that
require an upper case Windows.h.
2016-08-27 22:48:15 +03:00
Martin Storsjö b3fdc5c4e9 Update clang patches for mingw target defaults 2016-08-27 22:48:11 +03:00
Martin Storsjö ffff621129 Add patches for llvm-dlltool 2016-08-24 23:36:44 +03:00
Martin Storsjö 4de5f192a6 Add a clang patch for adding support for __declspec(selectany) 2016-08-24 23:36:44 +03:00
Martin Storsjö 8b36ede40d Update the mingw patch for ctors 2016-08-24 23:25:01 +03:00
Martin Storsjö 4449d80c05 Patch compiler-rt to fix "make clang_mingw" with the 3.9 branch 2016-08-10 14:52:16 +03:00
Martin Storsjö 93a77a441a Update patches for lld 3.9
The previously existing patch needed some modifications to fit
on top of lld 3.9.

Patch 2 makes sure that one still can use the lld built in this
way for linking in MSVC mode.

Patch 3 fixes linking binaries larger than 4 MB or so (previously
the binaries linked fine but didn't work).

Patch 4 makes sure to error out if the relocations are too far
away (instead of producing a broken binary), which happens after
16 MB.

Patch 5 fixes relocations that have an offset, which probably
happens in hand-written assembly (in libav).
2016-08-10 14:52:16 +03:00
Martin Storsjö 3eb63bea3d Apply patches for LLVM 3.9
Patches 1 and 2 fix a bug (that has been present in 3.7 and 3.8)
where it can use the wrong instruction in some cases (libav
with inline assembly disabled), causing rounding errors in
integer audio dct's there.

Patch 3 allows building inline assembly with clang/llvm in MSVC mode.
2016-08-10 14:52:16 +03:00
Martin Storsjö feac2f56ba Update patches for clang 3.9
Patches 1-2 are just rebased from the earlier version for clang
3.8, no changes in surrounding code there.

Patch 3 is necessary to fix a regression in assembling standalone
assembly files in 3.9.

Patch 4 makes clang work in MSVC mode with the MSVC SDK for ARM
(to simplify testing of the toolchain in that mode).
2016-08-10 00:02:09 +03:00
Hugo Beauzée-Luyssen 0355fd9f4b Update mingw-w64 patchset 2016-08-04 16:20:17 +02:00
Hugo Beauzée-Luyssen 3837b18e40 Update msvcr120_app patch 2016-08-04 16:20:17 +02:00
Hugo Beauzée-Luyssen d52220c121 Update patchset 2016-08-04 16:20:17 +02:00
Hugo Beauzée-Luyssen 1e0a216c46 libcxx now compiles 2016-08-04 16:20:17 +02:00
Hugo Beauzée-Luyssen 4808f05671 Add an early arm toolchain
This isn't fully functionnal yet
2016-08-04 16:20:17 +02:00