2015-02-23 11:15:18 +01:00
|
|
|
#
|
2015-12-07 20:41:40 +01:00
|
|
|
# spec file for package ldc
|
2015-02-23 11:15:18 +01:00
|
|
|
#
|
2019-01-10 15:01:46 +01:00
|
|
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
2015-02-23 11:15:18 +01:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
Accepting request 644172 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.12.0:
* Big news
- Frontend, druntime and Phobos are at version 2.082.1.
(#2818, #2837, #2858, #2873) (new)
Significant performance improvements for some transcendental
std.math functions in single and double precision, at least
for x86. (dlang/phobos#6272 (comment))
- Support for LLVM 7, which is used for the prebuilt packages.
Due to an LLVM 7.0.0 regression, the prebuilt x86[_64] LDC
binaries require a CPU with SSSE3, and so will your optimized
binaries (unless compiling with -mattr=-ssse3). (#2850)
- JIT compilation: new ldc.dynamic_compile.bind function with
interface similar to C++ std::bind, allowing to generate
efficient specialized versions of functions (much like
Easy::jit for C++). (#2726)
- LTO now working for Win64 too; the prebuilt package includes
the required external LLD linker and the optional LTO default
libs. Enable as usual with -flto=<thin|full>
[-defaultlib=druntime-ldc-lto,phobos2-ldc-lto]. (#2774)
- Config file: new lib-dirs array for directories to be searched
for libraries, incl. LLVM compiler-rt libraries. (#2790)
* Platform support
- Supports LLVM 3.7 - 7.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
- Android/ARM: This release slightly changes the way emulated TLS
is interfaced, but is missing a patch for 32-bit ARM. See the
wiki for instructions on patching that file manually before
cross-compiling the runtime libraries for 32-bit Android/ARM.
* Bug fixes
- Fix IR-based PGO on Windows (requires our LLVM fork). (#2539)
- Fix C++ class construction with D new on Posix. (#2801)
- Android: No more text relocations in Phobos zlib, required for
API level 23+. (#2822, #2835)
- Declare extern const/immutable globals as IR constants.
(#2849, #2852)
- Fix issue when emitting both object and textual assembly files
at once (-output-o -output-s). (#2847)
- Support address of struct member as key/value in AA literal.
(#2859, #2860)
- Fix ICE when computing addresses relative to functions/labels.
(#2865, #2867) (new)
- beta2 regression wrt. cross-compiling to Android. (#2863) (new)
- Fix so_version to 82
OBS-URL: https://build.opensuse.org/request/show/644172
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=23
2018-10-24 09:29:43 +02:00
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
2015-02-23 11:15:18 +01:00
|
|
|
#
|
|
|
|
|
2018-07-30 13:15:55 +02:00
|
|
|
|
Accepting request 696415 from home:elimat:branches:devel:languages:D
- Update to 1.15.0
* Big news
- Frontend, druntime and Phobos are at version 2.085.1, incl. new
command-line options -preview, -revert, -checkaction=context,
-verrors-context and -extern-std. (#3003, #3039, #3053) (new)
+ The Objective-C improvements from DMD 2.085 are not implemented
(#3007)
- Support for LLVM 8.0. The prebuilt packages have been upgraded to
LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that
dcompute can now emit OpenCL too. (#3005)
- Compiler memory requirements can now be reduced via the new -lowmem
switch, which enables the garbage collector for the front-end and
sacrifices compile times for less required memory. In some cases, the
overall max process memory can be reduced by more than 60%; see #2916
(comment) for some numbers. (#2916)
+ Note for package maintainers: this feature requires a recent D host
compiler (most notably, it doesn't work with ltsmaster), ideally
LDC 1.15 itself due to important GC memory overhead improvements in
2.085 druntime.
- Support for generic @llvmAttr("name") parameter UDAs, incl. new
@restrict with C-like semantics. (#3043) (new)
- macOS: 32-bit support was dropped in the sense of not being CI-tested
anymore and the prebuilt macOS package now containing x86_64 libraries
only. MACOSX_DEPLOYMENT_TARGET for the prebuilt package has been raised
from 10.8 to 10.9.
- Prebuilt packages don't depend on libtinfo and libedit anymore.
(#1827, #3019)
- x86: SSSE3 isn't required for the prebuilt packages and generated
optimized binaries anymore. (#3045) (new)
* Platform support
- Supports LLVM 3.9 - 8.0.
* Bug fixes
- Implicit cross-module-inlining of functions annotated with
pragma(inline, true) without explicit -enable-cross-module-inlining has
been restored. (#2552, #3014)
- Propagate well-known length of newly allocated dynamic arrays for
better optimizability. (#3041, #3042) (new)
- JIT: Support implicit __chkstk calls for Windows targets, e.g., for
large stack allocations. (#3051) (new)
- Update so_version to 85
OBS-URL: https://build.opensuse.org/request/show/696415
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=32
2019-04-21 09:55:38 +02:00
|
|
|
%define so_ver 85
|
2018-07-30 13:15:55 +02:00
|
|
|
%define lname_runtime libdruntime-%{name}
|
|
|
|
%define lname_phobos libphobos2-%{name}
|
2018-12-18 16:16:32 +01:00
|
|
|
%define _bashcompletionsdir %{_datadir}/bash-completion/completions
|
2019-01-21 14:43:13 +01:00
|
|
|
|
|
|
|
# Do bootstrap (even in Tumbleweed, and Leap 15+), otherwise LDC will build
|
|
|
|
# against old installed .so instead of new built one
|
2018-06-06 12:24:25 +02:00
|
|
|
%bcond_without ldc_bootstrap
|
2019-01-21 14:43:13 +01:00
|
|
|
|
|
|
|
%ifarch %{ix86} %arm
|
|
|
|
# 32-bit needs 1.12.0 intermediate build due to: https://github.com/ldc-developers/ldc/issues/2947
|
|
|
|
%bcond_without 1_12_0_intermediate
|
|
|
|
%else
|
|
|
|
%bcond_with 1_12_0_intermediate
|
2018-12-18 16:16:32 +01:00
|
|
|
%endif
|
2019-01-21 14:43:13 +01:00
|
|
|
|
2018-06-07 15:05:36 +02:00
|
|
|
%bcond_with ldc_tests
|
2019-01-21 14:43:13 +01:00
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
Name: ldc
|
Accepting request 696415 from home:elimat:branches:devel:languages:D
- Update to 1.15.0
* Big news
- Frontend, druntime and Phobos are at version 2.085.1, incl. new
command-line options -preview, -revert, -checkaction=context,
-verrors-context and -extern-std. (#3003, #3039, #3053) (new)
+ The Objective-C improvements from DMD 2.085 are not implemented
(#3007)
- Support for LLVM 8.0. The prebuilt packages have been upgraded to
LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that
dcompute can now emit OpenCL too. (#3005)
- Compiler memory requirements can now be reduced via the new -lowmem
switch, which enables the garbage collector for the front-end and
sacrifices compile times for less required memory. In some cases, the
overall max process memory can be reduced by more than 60%; see #2916
(comment) for some numbers. (#2916)
+ Note for package maintainers: this feature requires a recent D host
compiler (most notably, it doesn't work with ltsmaster), ideally
LDC 1.15 itself due to important GC memory overhead improvements in
2.085 druntime.
- Support for generic @llvmAttr("name") parameter UDAs, incl. new
@restrict with C-like semantics. (#3043) (new)
- macOS: 32-bit support was dropped in the sense of not being CI-tested
anymore and the prebuilt macOS package now containing x86_64 libraries
only. MACOSX_DEPLOYMENT_TARGET for the prebuilt package has been raised
from 10.8 to 10.9.
- Prebuilt packages don't depend on libtinfo and libedit anymore.
(#1827, #3019)
- x86: SSSE3 isn't required for the prebuilt packages and generated
optimized binaries anymore. (#3045) (new)
* Platform support
- Supports LLVM 3.9 - 8.0.
* Bug fixes
- Implicit cross-module-inlining of functions annotated with
pragma(inline, true) without explicit -enable-cross-module-inlining has
been restored. (#2552, #3014)
- Propagate well-known length of newly allocated dynamic arrays for
better optimizability. (#3041, #3042) (new)
- JIT: Support implicit __chkstk calls for Windows targets, e.g., for
large stack allocations. (#3051) (new)
- Update so_version to 85
OBS-URL: https://build.opensuse.org/request/show/696415
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=32
2019-04-21 09:55:38 +02:00
|
|
|
Version: 1.15.0
|
2015-12-07 20:41:40 +01:00
|
|
|
Release: 0
|
|
|
|
Summary: The LLVM D Compiler
|
2018-06-06 12:24:25 +02:00
|
|
|
License: BSD-3-Clause AND Artistic-1.0
|
2015-12-07 20:41:40 +01:00
|
|
|
Group: Development/Languages/Other
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
Url: https://wiki.dlang.org/LDC
|
2017-05-29 21:58:23 +02:00
|
|
|
Source0: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc-%{version}-src.tar.gz
|
2015-12-07 20:41:40 +01:00
|
|
|
Source1: %{name}-rpmlintrc
|
2018-06-06 12:24:25 +02:00
|
|
|
Patch0: ldc-1.9.0-fix_arm_build.patch
|
2018-07-30 13:15:55 +02:00
|
|
|
BuildRequires: cmake
|
|
|
|
BuildRequires: help2man
|
|
|
|
BuildRequires: libconfig++-devel
|
|
|
|
BuildRequires: libcurl-devel
|
|
|
|
BuildRequires: libstdc++-devel
|
|
|
|
BuildRequires: llvm-clang
|
2018-12-18 16:16:32 +01:00
|
|
|
BuildRequires: llvm-devel >= 3.9
|
2018-07-30 13:15:55 +02:00
|
|
|
BuildRequires: ncurses-devel
|
|
|
|
BuildRequires: sqlite3-devel
|
|
|
|
BuildRequires: zlib-devel
|
2018-12-18 16:16:32 +01:00
|
|
|
BuildRequires: pkgconfig(bash-completion)
|
2018-07-30 13:15:55 +02:00
|
|
|
# Should be installed, at least runtime
|
|
|
|
Recommends: ldc-phobos-devel = %{version}
|
|
|
|
Recommends: ldc-runtime-devel = %{version}
|
2018-12-18 16:16:32 +01:00
|
|
|
Recommends: %{name}-bash-completion
|
2019-01-25 11:15:06 +01:00
|
|
|
# Since version 1.13.0, ldc uses ld.gold by default
|
|
|
|
Requires: binutils-gold
|
2018-06-06 12:24:25 +02:00
|
|
|
%if %{with ldc_bootstrap}
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
# v0.17.6 is the last version buildable with a C++ compiler, so use it for bootstrapping
|
|
|
|
Source10: https://github.com/ldc-developers/ldc/releases/download/v0.17.6/ldc-0.17.6-src.tar.gz
|
2019-01-21 14:43:13 +01:00
|
|
|
%if %{with 1_12_0_intermediate}
|
|
|
|
# 1.12.0 is needed to build on 32-bit: https://github.com/ldc-developers/ldc/issues/2947
|
|
|
|
Source11: https://github.com/ldc-developers/ldc/releases/download/v1.12.0/ldc-1.12.0-src.tar.gz
|
|
|
|
%endif
|
2018-06-06 12:24:25 +02:00
|
|
|
%endif
|
2018-06-07 15:05:36 +02:00
|
|
|
%if %{with ldc_tests}
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
BuildRequires: gdb
|
|
|
|
%endif
|
2018-06-06 12:24:25 +02:00
|
|
|
%if %{without ldc_bootstrap}
|
2018-12-18 16:16:32 +01:00
|
|
|
BuildRequires: binutils-gold
|
2018-06-06 12:24:25 +02:00
|
|
|
BuildRequires: ldc
|
|
|
|
BuildRequires: ldc-phobos-devel
|
|
|
|
BuildRequires: ldc-runtime-devel
|
|
|
|
%endif
|
2018-06-07 15:05:36 +02:00
|
|
|
%if %{with ldc_tests}
|
|
|
|
BuildRequires: python
|
|
|
|
%endif
|
|
|
|
%if %{with ldc_tests}
|
|
|
|
BuildRequires: timezone
|
|
|
|
BuildRequires: unzip
|
|
|
|
%endif
|
2018-12-18 16:16:32 +01:00
|
|
|
# ppc64 is disabled due to boo#1113531
|
|
|
|
ExclusiveArch: %{ix86} x86_64 %arm aarch64
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%description
|
|
|
|
LDC is an LLVM based compiler for the D programming language. It uses the
|
|
|
|
frontend of the reference compiler (DMD), thereby supporting the same language
|
|
|
|
features, but profits from LLVM's superior optimizing and code generation
|
|
|
|
capabilities.
|
|
|
|
|
2015-12-07 20:41:40 +01:00
|
|
|
%package -n %{lname_runtime}%{so_ver}
|
|
|
|
Summary: Minimal D runtime library
|
2017-06-10 11:15:46 +02:00
|
|
|
Group: System/Libraries
|
2015-12-07 20:41:40 +01:00
|
|
|
|
|
|
|
%description -n %{lname_runtime}%{so_ver}
|
|
|
|
The minimal runtime library required to support the D programming language.
|
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
%package runtime-devel
|
2015-12-07 20:41:40 +01:00
|
|
|
Summary: Development files for the D runtime library
|
2017-06-10 11:15:46 +02:00
|
|
|
Group: Development/Libraries/Other
|
2015-12-07 20:41:40 +01:00
|
|
|
Requires: %{lname_runtime}%{so_ver} = %{version}
|
2018-07-30 13:15:55 +02:00
|
|
|
Recommends: ldc-phobos-devel = %{version}
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%description runtime-devel
|
|
|
|
This package contains the druntime development files necessary for developing
|
|
|
|
with LDC.
|
|
|
|
|
2015-12-07 20:41:40 +01:00
|
|
|
%package -n %{lname_phobos}%{so_ver}
|
|
|
|
Summary: The D standard library
|
2017-06-10 11:15:46 +02:00
|
|
|
Group: System/Libraries
|
2015-12-07 20:41:40 +01:00
|
|
|
|
|
|
|
%description -n %{lname_phobos}%{so_ver}
|
|
|
|
This package includes ldc's phobos library - The D standard library.
|
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
%package phobos-devel
|
2015-12-07 20:41:40 +01:00
|
|
|
Summary: Development files for the D standard library
|
2017-06-10 11:15:46 +02:00
|
|
|
Group: Development/Libraries/Other
|
2015-12-07 20:41:40 +01:00
|
|
|
Requires: %{lname_phobos}%{so_ver} = %{version}
|
2018-07-30 13:15:55 +02:00
|
|
|
Requires: %{name}-runtime-devel = %{version}
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%description phobos-devel
|
|
|
|
This package contains the Phobos development files necessary for developing
|
|
|
|
with LDC.
|
|
|
|
|
2018-12-18 16:16:32 +01:00
|
|
|
%package bash-completion
|
|
|
|
Summary: LDC Bash completion
|
|
|
|
Group: System/Shells
|
|
|
|
Requires: bash-completion
|
|
|
|
|
|
|
|
%description bash-completion
|
|
|
|
Optional dependency offering bash completion for ldc2
|
|
|
|
|
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
%prep
|
2017-05-29 21:58:23 +02:00
|
|
|
%setup -q -n ldc-%{version}-src
|
2018-06-06 12:24:25 +02:00
|
|
|
%patch0 -p1
|
|
|
|
%if %{with ldc_bootstrap}
|
|
|
|
tar xf %{SOURCE10}
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
pushd ldc-0.17.6-src
|
2018-06-06 12:24:25 +02:00
|
|
|
popd
|
2019-01-21 14:43:13 +01:00
|
|
|
%if %{with 1_12_0_intermediate}
|
|
|
|
tar xf %{SOURCE11}
|
|
|
|
pushd ldc-1.12.0-src
|
|
|
|
%patch0 -p1
|
|
|
|
popd
|
|
|
|
%endif
|
2018-06-06 12:24:25 +02:00
|
|
|
%endif
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%build
|
2018-06-06 12:24:25 +02:00
|
|
|
%if %{with ldc_bootstrap}
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
pushd ldc-0.17.6-src
|
2018-06-06 12:24:25 +02:00
|
|
|
#Needs to be compiled with clang, but opensuse_rules.cmake forces gcc so disable rule
|
|
|
|
touch ./no-suse-rules
|
|
|
|
mkdir build && pushd build
|
2018-07-30 13:15:55 +02:00
|
|
|
# FIXME: you should use %%cmake macros
|
2018-06-06 12:24:25 +02:00
|
|
|
cmake \
|
|
|
|
-DCMAKE_USER_MAKE_RULES_OVERRIDE=./no-suse-rules \
|
|
|
|
-DCMAKE_C_COMPILER="%{_bindir}/clang" \
|
|
|
|
-DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \
|
|
|
|
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir}/d \
|
|
|
|
-DCMAKE_CXX_FLAGS="-std=c++11" \
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
-DCMAKE_C_FLAGS="-fPIC" \
|
2018-07-30 13:15:55 +02:00
|
|
|
..
|
2018-06-06 12:24:25 +02:00
|
|
|
make %{?_smp_mflags}
|
|
|
|
popd
|
|
|
|
popd
|
2019-01-21 14:43:13 +01:00
|
|
|
%if %{with 1_12_0_intermediate}
|
|
|
|
pushd ldc-1.12.0-src
|
|
|
|
#Needs to be compiled with clang, but opensuse_rules.cmake forces gcc so disable rule
|
|
|
|
touch ./no-suse-rules
|
|
|
|
mkdir build && pushd build
|
|
|
|
# FIXME: you should use %%cmake macros
|
|
|
|
cmake \
|
|
|
|
-DCMAKE_USER_MAKE_RULES_OVERRIDE=./no-suse-rules \
|
|
|
|
-DCMAKE_C_COMPILER="%{_bindir}/clang" \
|
|
|
|
-DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \
|
|
|
|
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir}/d \
|
|
|
|
-DD_COMPILER:PATH=`pwd`/../../ldc-0.17.6-src/build/bin/ldmd2 \
|
|
|
|
-DCMAKE_CXX_FLAGS="-std=c++11" \
|
|
|
|
-DCMAKE_C_FLAGS="-fPIC" \
|
|
|
|
..
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
popd
|
|
|
|
popd
|
|
|
|
%endif
|
2018-06-06 12:24:25 +02:00
|
|
|
%endif
|
2015-12-07 20:41:40 +01:00
|
|
|
#Needs to be compiled with clang, but opensuse_rules.cmake forces gcc so disable rule
|
|
|
|
touch no-suse-rules
|
|
|
|
%cmake \
|
2017-05-29 21:58:23 +02:00
|
|
|
-DCMAKE_USER_MAKE_RULES_OVERRIDE=./no-suse-rules \
|
2015-12-07 20:41:40 +01:00
|
|
|
-DCMAKE_C_COMPILER="%{_bindir}/clang" \
|
2018-06-06 12:24:25 +02:00
|
|
|
-DCMAKE_CXX_COMPILER="%{_bindir}/clang++" \
|
2015-12-07 20:41:40 +01:00
|
|
|
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir}/d \
|
2018-06-06 12:24:25 +02:00
|
|
|
%if %{with ldc_bootstrap}
|
2019-01-21 14:43:13 +01:00
|
|
|
%if %{with 1_12_0_intermediate}
|
|
|
|
-DD_COMPILER:PATH=`pwd`/../ldc-1.12.0-src/build/bin/ldmd2 \
|
|
|
|
%else
|
Accepting request 631387 from home:Guillaume_G:branches:devel:languages:D
- Update to 1.11.0:
* Big news:
- Frontend, druntime and Phobos are at version 2.081.2.
(#2752, #2772, #2776, #2791, #2815) (new)
- Add some support for classes without TypeInfos, for
-betterC and/or a minimal (d)runtime. (#2765)
- LLVM for prebuilt packages upgraded to v6.0.1.
The x86_64 packages feature some more LLVM targets for
cross-compilation (experiments): MIPS, MSP430, RISC-V
and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to
WebAssembly. See the dedicated Wiki page for how to get
started. (#2766, #2779, #2785)
- AArch64 (64-bit ARM) now mostly working on Linux/glibc
and Android. Current ltsmaster is able to bootstrap v1.11,
which can also bootstrap itself; most tests pass.
(Preliminary) CI has been set up. (#2802, #2817, #2813) (new)
- LDC on Windows now uses 80-bit compile-time reals. This allows
for seamless cross-compilation to other x86(_64) targets,
e.g., without real.min underflowing to 0 and real.max
overflowing to infinity. (#2752)
- New @naked UDA in ldc.attributes & enhanced functionality
for @llvmAttr("<name>"). (#2773)
* Platform support:
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Alpine linux/x64: built against Musl libc to support Docker
images based on the Alpine distro, requires the llvm5-libs,
musl-dev, and gcc packages to build and link D apps and the
tzdata and libcurl packages for certain stdlib modules.
* Bug fixes:
- extern(C++) on Posix: Pass non-PODs indirectly by value.
(#2728)
- extern(C++) on Windows/MSVC: Methods return all structs via
hidden sret pointer. (#2720, #1935)
- Make GC2Stack IR optimization pass work as intended. (#2750)
- Work around inline assembly regression with LLVM 6 on Win32.
The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770)
- Fix overzealous check for multiple main() functions. (#2778) (new)
- Fix corrupt prefix in integrated LLD's console output. (#2781) (new)
- No context ptr for nested non-extern(D) functions. (#2808, #2809) (new)
* Known issues:
- LDC does not zero the padding area of a real variable. This may
lead to wrong results if the padding area is also considered.
See #770. Does not apply to real members inside structs etc.
- Update bootstrap version to 0.17.6:
* Added support for LLVM 6.0 and 7.0. (#2600, #2825)
* Backported AArch64 fixes from master; most tests passing on
Linux/glibc and Android
* Fix generation of debug info. (#2594)
* Added support for bootstrapping on DragonFly BSD
* Fixed missing definition in std.datetime on Solaris
* Fixed std.datetime unittest failure. (ldc-developers/phobos#59)
* Fixed tests for PowerPC. (#2634, #2635)
* Improvements for MIPS.
* Make core.stdc.stdarg.va_* functions nothrow to enable
compiling the 2.082 frontend. (#2821)
* CI updates.
- Remove upstreamed patches:
* ldc-0.17.5-add_missing_include.patch
* ldc-0.17.5-add_support_to_LLVM6.patch
* ldc-0.17.5-backport_pr_2315.patch
* ldc-0.17.5-default-to-pic.patch
- Enable aarch64 since it can be boostrapped with ldc 0.17.6
- Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap
OBS-URL: https://build.opensuse.org/request/show/631387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:D/ldc?expand=0&rev=20
2018-08-24 16:13:58 +02:00
|
|
|
-DD_COMPILER:PATH=`pwd`/../ldc-0.17.6-src/build/bin/ldmd2 \
|
2019-01-21 14:43:13 +01:00
|
|
|
%endif
|
2018-06-06 12:24:25 +02:00
|
|
|
%endif
|
2018-07-30 13:15:55 +02:00
|
|
|
-DCMAKE_CXX_FLAGS="-std=c++11"
|
2015-02-23 11:15:18 +01:00
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
2018-06-07 15:05:36 +02:00
|
|
|
%if %{with ldc_tests}
|
|
|
|
%check
|
|
|
|
pushd build/
|
2018-07-30 13:15:55 +02:00
|
|
|
make %{?_smp_mflags} test
|
2018-06-07 15:05:36 +02:00
|
|
|
popd
|
|
|
|
%endif
|
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
%install
|
2015-12-07 20:41:40 +01:00
|
|
|
%cmake_install
|
2018-12-18 16:16:32 +01:00
|
|
|
# Install bash completion in the right folder
|
|
|
|
install -d %{buildroot}%{_bashcompletionsdir}
|
|
|
|
mv %{buildroot}/etc/bash_completion.d/ldc2 %{buildroot}%{_bashcompletionsdir}
|
|
|
|
rmdir %{buildroot}/etc/bash_completion.d/
|
2015-12-07 20:41:40 +01:00
|
|
|
# Build man pages
|
|
|
|
help2man %{buildroot}%{_bindir}/ldc2 > ldc2.1 && gzip ldc2.1
|
|
|
|
help2man %{buildroot}%{_bindir}/ldmd2 > ldmd2.1 && gzip ldmd2.1
|
|
|
|
install -d %{buildroot}%{_mandir}/man1
|
|
|
|
install -m 644 -t %{buildroot}%{_mandir}/man1/ ldmd2.1.gz ldc2.1.gz
|
2018-07-30 13:15:55 +02:00
|
|
|
rm -rf %{buildroot}%{_libexecdir}/debug
|
2015-12-07 20:41:40 +01:00
|
|
|
|
|
|
|
%post -n %{lname_runtime}%{so_ver} -p /sbin/ldconfig
|
|
|
|
%post -n %{lname_phobos}%{so_ver} -p /sbin/ldconfig
|
|
|
|
%postun -n %{lname_runtime}%{so_ver} -p /sbin/ldconfig
|
|
|
|
%postun -n %{lname_phobos}%{so_ver} -p /sbin/ldconfig
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%files
|
2018-07-30 13:15:55 +02:00
|
|
|
%license LICENSE
|
|
|
|
%doc README.md
|
|
|
|
%{_mandir}/man1/*.1%{?ext_man}
|
2015-02-23 11:15:18 +01:00
|
|
|
%config %{_sysconfdir}/ldc2.conf
|
2018-06-06 12:24:25 +02:00
|
|
|
%{_bindir}/ldc*
|
2015-02-23 11:15:18 +01:00
|
|
|
%{_bindir}/ldmd2
|
|
|
|
|
2015-12-07 20:41:40 +01:00
|
|
|
%files -n %{lname_runtime}%{so_ver}
|
2018-06-06 12:24:25 +02:00
|
|
|
%{_libdir}/%{lname_runtime}-shared.so.*
|
|
|
|
%{_libdir}/%{lname_runtime}-debug-shared.so.*
|
2015-12-07 20:41:40 +01:00
|
|
|
|
2015-02-23 11:15:18 +01:00
|
|
|
%files runtime-devel
|
2018-06-06 12:24:25 +02:00
|
|
|
%{_libdir}/%{lname_runtime}-shared.so
|
|
|
|
%{_libdir}/%{lname_runtime}-debug-shared.so
|
2015-12-07 20:41:40 +01:00
|
|
|
%dir %{_includedir}/d
|
|
|
|
%{_includedir}/d/core
|
2018-12-18 16:16:32 +01:00
|
|
|
%{_includedir}/d/ldc
|
|
|
|
%{_includedir}/d/object.d
|
2015-12-07 20:41:40 +01:00
|
|
|
|
|
|
|
%files -n %{lname_phobos}%{so_ver}
|
2018-06-06 12:24:25 +02:00
|
|
|
%{_libdir}/%{lname_phobos}-shared.so.*
|
|
|
|
%{_libdir}/%{lname_phobos}-debug-shared.so.*
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%files phobos-devel
|
2018-06-06 12:24:25 +02:00
|
|
|
%{_libdir}/%{lname_phobos}-shared.so
|
|
|
|
%{_libdir}/%{lname_phobos}-debug-shared.so
|
2015-12-07 20:41:40 +01:00
|
|
|
%{_includedir}/d/etc
|
2018-12-18 16:16:32 +01:00
|
|
|
%{_includedir}/d/std
|
|
|
|
|
|
|
|
%files bash-completion
|
|
|
|
%dir %{_datadir}/bash-completion
|
|
|
|
%dir %{_datadir}/bash-completion/completions
|
|
|
|
%{_bashcompletionsdir}/ldc2
|
2015-02-23 11:15:18 +01:00
|
|
|
|
|
|
|
%changelog
|