Initial version.
This commit is contained in:
parent
19ea3955f7
commit
755558b0b6
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/flang-11.0.0rc2.src.tar.xz
|
||||||
|
/flang-11.0.0rc2.src.tar.xz.sig
|
173
flang.spec
Normal file
173
flang.spec
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
%global rc_ver 2
|
||||||
|
%global baserelease 0.1
|
||||||
|
%global flang_srcdir flang-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
||||||
|
%global maj_ver 11
|
||||||
|
%global min_ver 0
|
||||||
|
%global patch_ver 0
|
||||||
|
|
||||||
|
Name: flang
|
||||||
|
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
||||||
|
Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
||||||
|
Summary: a Fortran language front-end designed for integration with LLVM
|
||||||
|
|
||||||
|
License: ASL 2.0 with exceptions
|
||||||
|
URL: https://github.com/llvm/llvm-project/tree/master/flang
|
||||||
|
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{flang_srcdir}.tar.xz
|
||||||
|
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{flang_srcdir}.tar.xz.sig
|
||||||
|
Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
|
||||||
|
|
||||||
|
# Otherwise fails when compiling with _GLIBCXX_DEBUG is defined.
|
||||||
|
Patch0: token-sequence.patch
|
||||||
|
# Needed to compile in shared libs mode.
|
||||||
|
Patch1: shared.patch
|
||||||
|
# Needed for llvm-googletest compatibility
|
||||||
|
Patch2: gtest.patch
|
||||||
|
|
||||||
|
# because mlir doesn't build on arm (yet)
|
||||||
|
ExcludeArch: armv7hl
|
||||||
|
|
||||||
|
# Avoid gcc reaching 4GB of memory
|
||||||
|
%ifarch %{ix86} s390x
|
||||||
|
%global _lto_cflags %{nil}
|
||||||
|
%global _smp_mflags -j1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: cmake
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
BuildRequires: llvm-devel = %{version}
|
||||||
|
BuildRequires: llvm-test = %{version}
|
||||||
|
BuildRequires: llvm-googletest = %{version}
|
||||||
|
BuildRequires: mlir-devel = %{version}
|
||||||
|
BuildRequires: ninja-build
|
||||||
|
BuildRequires: python3-lit
|
||||||
|
BuildRequires: python3-sphinx
|
||||||
|
|
||||||
|
# For origin certification
|
||||||
|
BuildRequires: gnupg2
|
||||||
|
|
||||||
|
%description
|
||||||
|
|
||||||
|
Flang is a ground-up implementation of a Fortran front end written in modern
|
||||||
|
C++.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Flang header files
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Flang header files.
|
||||||
|
|
||||||
|
%package doc
|
||||||
|
Summary: Documentation for Flang
|
||||||
|
BuildArch: noarch
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description doc
|
||||||
|
Documentation for Flang
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||||
|
%autosetup -n %{flang_srcdir} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
|
||||||
|
%cmake -GNinja \
|
||||||
|
-DMLIR_TABLEGEN_EXE=%{_bindir}/mlir-tblgen \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DCMAKE_INSTALL_RPATH=";" \
|
||||||
|
-DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \
|
||||||
|
-DBUILD_SHARED_LIBS:BOOL=ON \
|
||||||
|
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||||
|
-DLLVM_EXTERNAL_LIT=%{_bindir}/lit \
|
||||||
|
-DCMAKE_PREFIX_PATH=%{_libdir}/cmake/llvm/ \
|
||||||
|
\
|
||||||
|
-DFLANG_INCLUDE_DOCS:BOOL=ON \
|
||||||
|
-DLLVM_ENABLE_SPHINX:BOOL=ON \
|
||||||
|
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
||||||
|
-DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \
|
||||||
|
\
|
||||||
|
%if 0%{?__isa_bits} == 64
|
||||||
|
-DLLVM_LIBDIR_SUFFIX=64
|
||||||
|
%else
|
||||||
|
-DLLVM_LIBDIR_SUFFIX=
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Avoid gcc reaching 4GB of memory
|
||||||
|
%ifarch %{ix86} s390x
|
||||||
|
sed -i -e 's/-g /-g1 /g' -e 's/-O2/-O1/g' %{_builddir}/%{flang_srcdir}/%{_build}/build.ninja
|
||||||
|
%endif
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH=%{_builddir}/%{flang_srcdir}/%{_build}/lib
|
||||||
|
%cmake_build
|
||||||
|
%cmake_build --target docs-flang-html
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%cmake_install
|
||||||
|
|
||||||
|
# this is a test binary
|
||||||
|
rm -f %{buildroot}%{_bindir}/f18-parse-demo
|
||||||
|
|
||||||
|
install -d %{buildroot}%{_pkgdocdir}/html
|
||||||
|
cp -r %{_vpath_builddir}/docs/html/* %{buildroot}%{_pkgdocdir}/html/
|
||||||
|
|
||||||
|
chmod 0755 %{buildroot}%{_bindir}/flang
|
||||||
|
|
||||||
|
%check
|
||||||
|
|
||||||
|
# these tests fail on all or specific arches
|
||||||
|
rm test/Semantics/resolve63.f90
|
||||||
|
|
||||||
|
%ifarch s390x
|
||||||
|
rm test/Evaluate/folding07.f90
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifarch %{ix86}
|
||||||
|
rm -f test/Fir/fir-ops.fir
|
||||||
|
rm -f test/Semantics/assign03.f90
|
||||||
|
rm -f test/Semantics/data05.f90
|
||||||
|
rm -f test/Semantics/offsets01.f90
|
||||||
|
rm -f test/Semantics/offsets02.f90
|
||||||
|
%endif
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH=%{_builddir}/%{flang_srcdir}/%{_build}/lib
|
||||||
|
%cmake_build --target check-flang
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE.txt
|
||||||
|
%{_bindir}/f18
|
||||||
|
%{_bindir}/tco
|
||||||
|
%{_bindir}/flang
|
||||||
|
%{_libdir}/libFortranLower.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFIROptimizer.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranSemantics.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranCommon.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranRuntime.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranDecimal.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranEvaluate.so.%{maj_ver}
|
||||||
|
%{_libdir}/libFortranParser.so.%{maj_ver}
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_libdir}/libFortranLower.so
|
||||||
|
%{_libdir}/libFortranParser.so
|
||||||
|
%{_libdir}/libFortranCommon.so
|
||||||
|
%{_libdir}/libFortranSemantics.so
|
||||||
|
%{_libdir}/libFIROptimizer.so
|
||||||
|
%{_libdir}/libFortranDecimal.so
|
||||||
|
%{_libdir}/libFortranRuntime.so
|
||||||
|
%{_libdir}/libFortranEvaluate.so
|
||||||
|
%{_includedir}/flang
|
||||||
|
%{_libdir}/cmake/
|
||||||
|
|
||||||
|
%files doc
|
||||||
|
%dir %{_pkgdocdir}
|
||||||
|
%doc %{_pkgdocdir}/html/
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2
|
||||||
|
- Initial version.
|
||||||
|
|
BIN
gtest.patch
Normal file
BIN
gtest.patch
Normal file
Binary file not shown.
52
hans-gpg-key.asc
Normal file
52
hans-gpg-key.asc
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
67H2IH//2sf8dw==
|
||||||
|
=ADVe
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
12
shared.patch
Normal file
12
shared.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -Naur flang-11.0.0rc2.src/CMakeLists.txt flang-11.0.0rc2.src.cmake/CMakeLists.txt
|
||||||
|
--- flang-11.0.0rc2.src/CMakeLists.txt 2020-08-20 16:24:59.000000000 +0000
|
||||||
|
+++ flang-11.0.0rc2.src.cmake/CMakeLists.txt 2020-09-03 13:44:24.226776260 +0000
|
||||||
|
@@ -199,8 +199,6 @@
|
||||||
|
# Always build tco tool
|
||||||
|
set(LLVM_BUILD_TOOLS ON)
|
||||||
|
message(STATUS "Linking driver with FIR and LLVM")
|
||||||
|
- llvm_map_components_to_libnames(LLVM_COMMON_LIBS support)
|
||||||
|
- message(STATUS "LLVM libraries: ${LLVM_COMMON_LIBS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Add Flang-centric modules to cmake path.
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (flang-11.0.0rc2.src.tar.xz) = ec5aaafe51bf4e0844cbd70320770c583a505c5e00b109fd5c87a04f16ea01341d4b48fc775ba911483bc3effebdda20852be70a9f61b9fed58f3f5421fdf15f
|
||||||
|
SHA512 (flang-11.0.0rc2.src.tar.xz.sig) = e02e397ce84ed1c0879b128d9f478f828c2d640fa4bdd41855b58373edf76baf906ef3ea17f2c4bb69c2e4d444ed6cddaf86f4a416e10490bf2adfc1dcf0bc16
|
13
token-sequence.patch
Normal file
13
token-sequence.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff -Naur flang-11.0.0rc2.src.orig/lib/Parser/token-sequence.cpp flang-11.0.0rc2.src/lib/Parser/token-sequence.cpp
|
||||||
|
--- flang-11.0.0rc2.src.orig/lib/Parser/token-sequence.cpp 2020-09-03 12:01:15.278223312 +0000
|
||||||
|
+++ flang-11.0.0rc2.src/lib/Parser/token-sequence.cpp 2020-09-03 12:51:40.082870848 +0000
|
||||||
|
@@ -134,7 +134,8 @@
|
||||||
|
std::size_t atToken{0};
|
||||||
|
for (std::size_t j{0}; j < chars;) {
|
||||||
|
std::size_t nextStart{atToken + 1 < tokens ? start_[++atToken] : chars};
|
||||||
|
- char *p{&char_[j]}, *limit{&char_[nextStart]};
|
||||||
|
+ char *p{&char_[j]};
|
||||||
|
+ char const* limit{char_.data() + nextStart};
|
||||||
|
j = nextStart;
|
||||||
|
if (IsDecimalDigit(*p)) {
|
||||||
|
while (p < limit && IsDecimalDigit(*p)) {
|
Loading…
x
Reference in New Issue
Block a user