diff --git a/.gitignore b/.gitignore index 538f91c..9609a9c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -SOURCES/llvm-9.0.0.src.tar.xz +SOURCES/hans-gpg-key.asc +SOURCES/llvm-10.0.0.src.tar.xz diff --git a/.llvm.metadata b/.llvm.metadata index 240ff3b..0132433 100644 --- a/.llvm.metadata +++ b/.llvm.metadata @@ -1 +1,2 @@ -7ef2527ba3da7603a41ce3592a8cd890f8d27ffa SOURCES/llvm-9.0.0.src.tar.xz +32fa4b0193960f05064f2ab31b5a89c7cf48a0b9 SOURCES/hans-gpg-key.asc +85f2d89205fb190c61c8a98dad2a58e27a1540da SOURCES/llvm-10.0.0.src.tar.xz diff --git a/SOURCES/0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch b/SOURCES/0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch deleted file mode 100644 index 0be06dd..0000000 --- a/SOURCES/0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 8987da9a2cac6c5bd39ba100ffd1aaede94dc6a0 Mon Sep 17 00:00:00 2001 -From: Michael Pozulp -Date: Fri, 9 Aug 2019 19:10:55 +0000 -Subject: [PATCH] [Docs][llvm-strip] Add help text to llvm-strip rst doc - -Summary: Addresses https://bugs.llvm.org/show_bug.cgi?id=42383 - -Reviewers: jhenderson, alexshap, rupprecht - -Reviewed By: jhenderson - -Subscribers: wolfgangp, jakehehrlich, llvm-commits - -Tags: #llvm - -Differential Revision: https://reviews.llvm.org/D65384 - -llvm-svn: 368464 ---- - llvm/docs/CommandGuide/llvm-strip.md | 16 ---- - llvm/docs/CommandGuide/llvm-strip.rst | 167 ++++++++++++++++++++++++++++++++++ - 2 files changed, 167 insertions(+), 16 deletions(-) - delete mode 100644 llvm/docs/CommandGuide/llvm-strip.md - create mode 100644 llvm/docs/CommandGuide/llvm-strip.rst - -diff --git a/llvm/docs/CommandGuide/llvm-strip.md b/llvm/docs/CommandGuide/llvm-strip.md -deleted file mode 100644 -index dd6e859..0000000 ---- a/llvm/docs/CommandGuide/llvm-strip.md -+++ /dev/null -@@ -1,16 +0,0 @@ --# llvm-strip - object stripping tool -- --## SYNOPSIS -- --**llvm-strip** [*options*] -- --## DESCRIPTION -- --**llvm-strip** is a tool to strip sections and symbols from object files. -- --The tool is still in active development, but in most scenarios it works as a --drop-in replacement for GNU's **strip**. -- --## SEE ALSO -- --[llvm-objcopy](llvm-objcopy.html) -diff --git a/llvm/docs/CommandGuide/llvm-strip.rst b/llvm/docs/CommandGuide/llvm-strip.rst -new file mode 100644 -index 0000000..6e02482 ---- /dev/null -+++ b/llvm/docs/CommandGuide/llvm-strip.rst -@@ -0,0 +1,167 @@ -+llvm-strip - object stripping tool -+================================== -+ -+.. program:: llvm-strip -+ -+SYNOPSIS -+-------- -+ -+:program:`llvm-strip` [*options*] *inputs...* -+ -+DESCRIPTION -+----------- -+ -+:program:`llvm-strip` is a tool to strip sections and symbols from object files. -+If no other stripping or remove options are specified, :option:`--strip-all` -+will be enabled by default. -+ -+The input files are modified in-place. If "-" is specified for the input file, -+the input is read from the program's standard input stream. -+ -+If the input is an archive, any requested operations will be applied to each -+archive member individually. -+ -+The tool is still in active development, but in most scenarios it works as a -+drop-in replacement for GNU's :program:`strip`. -+ -+GENERIC AND CROSS-PLATFORM OPTIONS -+---------------------------------- -+ -+The following options are either agnostic of the file format, or apply to -+multiple file formats. -+ -+.. option:: --disable-deterministic-archives, -U -+ -+ Use real values for UIDs, GIDs and timestamps when updating archive member -+ headers. -+ -+.. option:: --discard-all, -x -+ -+ Remove most local symbols from the output. Different file formats may limit -+ this to a subset of the local symbols. For example, file and section symbols in -+ ELF objects will not be discarded. -+ -+.. option:: --enable-deterministic-archives, -D -+ -+ Enable deterministic mode when stripping archives, i.e. use 0 for archive member -+ header UIDs, GIDs and timestamp fields. On by default. -+ -+.. option:: --help, -h -+ -+ Print a summary of command line options. -+ -+.. option:: --no-strip-all -+ -+ Disable --strip-all. -+ -+.. option:: -o -+ -+ Write output to . Multiple input files cannot be used in combination -+ with -o. -+ -+.. option:: --regex -+ -+ If specified, symbol and section names specified by other switches are treated -+ as extended POSIX regular expression patterns. -+ -+.. option:: --remove-section
, -R -+ -+ Remove the specified section from the output. Can be specified multiple times -+ to remove multiple sections simultaneously. -+ -+.. option:: --strip-all-gnu -+ -+ Remove all symbols, debug sections and relocations from the output. This option -+ is equivalent to GNU :program:`strip`'s ``--strip-all`` switch. -+ -+.. option:: --strip-all, -S -+ -+ For ELF objects, remove from the output all symbols and non-alloc sections not -+ within segments, except for .gnu.warning sections and the section name table. -+ -+ For COFF objects, remove all symbols, debug sections, and relocations from the -+ output. -+ -+.. option:: --strip-debug, -g -+ -+ Remove all debug sections. -+ -+.. option:: --strip-sections -+ -+ Remove all section headers and all sections not in segments. -+ -+.. option:: --strip-symbol , -N -+ -+ Remove all symbols named ```` from the output. Can be specified -+ multiple times to remove multiple symbols. -+ -+.. option:: --strip-unneeded -+ -+ Remove all local or undefined symbols that are not required by relocations. -+ -+.. option:: --version, -V -+ -+ Display the version of this program. -+ -+COFF-SPECIFIC OPTIONS -+--------------------- -+ -+The following options are implemented only for COFF objects. If used with other -+objects, :program:`llvm-strip` will either emit an error or silently ignore -+them. -+ -+.. option:: --only-keep-debug -+ -+ Remove the contents of non-debug sections from the output, but keep the section -+ headers. -+ -+ELF-SPECIFIC OPTIONS -+-------------------- -+ -+The following options are implemented only for ELF objects. If used with other -+objects, :program:`llvm-strip` will either emit an error or silently ignore -+them. -+ -+.. option:: --allow-broken-links -+ -+ Allow llvm-strip to remove sections even if it would leave invalid section -+ references. Any invalid sh_link fields will be set to zero. -+ -+.. option:: --discard-locals, -X -+ -+ Remove local symbols starting with ".L" from the output. -+ -+.. option:: --keep-file-symbols -+ -+ Keep symbols of type `STT_FILE`, even if they would otherwise be stripped. -+ -+ .. option:: --keep-section
-+ -+ When removing sections from the output, do not remove sections named -+ ``
``. Can be specified multiple times to keep multiple sections. -+ -+.. option:: --keep-symbol , -K -+ -+ Do not remove symbols named ````. Can be specified multiple times to -+ keep multiple symbols. -+ -+.. option:: --preserve-dates, -p -+ -+ Preserve access and modification timestamps. -+ -+ -+EXIT STATUS -+----------- -+ -+:program:`llvm-strip` exits with a non-zero exit code if there is an error. -+Otherwise, it exits with code 0. -+ -+BUGS -+---- -+ -+To report bugs, please visit . -+ -+SEE ALSO -+-------- -+ -+:manpage:`llvm-objcopy(1)` --- -1.8.3.1 - diff --git a/SOURCES/0001-Filter-out-cxxflags-not-supported-by-clang.patch b/SOURCES/0001-Filter-out-cxxflags-not-supported-by-clang.patch deleted file mode 100644 index 1351d2f..0000000 --- a/SOURCES/0001-Filter-out-cxxflags-not-supported-by-clang.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d15c835028bcc72a8695d047f0acaa530aa54716 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Wed, 31 Jul 2019 20:43:42 -0700 -Subject: [PATCH] Filter out cxxflags not supported by clang - ---- - llvm/tools/llvm-config/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/llvm/tools/llvm-config/CMakeLists.txt b/llvm/tools/llvm-config/CMakeLists.txt -index 8e97a10..9b9b7d1 100644 ---- a/llvm/tools/llvm-config/CMakeLists.txt -+++ b/llvm/tools/llvm-config/CMakeLists.txt -@@ -43,7 +43,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) - set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) - set(LLVM_CPPFLAGS "${LLVM_DEFINITIONS}") - set(LLVM_CFLAGS "${LLVM_C_STD_FLAG} ${LLVM_DEFINITIONS}") -+STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS}) -+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS}) - set(LLVM_CXXFLAGS "${LLVM_CXX_STD_FLAG} ${LLVM_CXX_STDLIB_FLAG} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") -+STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) -+STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) - set(LLVM_BUILD_SYSTEM cmake) - set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) - set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}") --- -1.8.3.1 - diff --git a/SOURCES/0001-Pass-target-to-gold-linker-to-avoid-faliures-on-i686.patch b/SOURCES/0001-Pass-target-to-gold-linker-to-avoid-faliures-on-i686.patch deleted file mode 100644 index e8dd323..0000000 --- a/SOURCES/0001-Pass-target-to-gold-linker-to-avoid-faliures-on-i686.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f0762684457a883b6813b48c98a1e94e377bc06b Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Wed, 28 Aug 2019 19:31:21 -0700 -Subject: [PATCH] Pass target to gold linker to avoid faliures on i686 - ---- - llvm/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/llvm/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll b/llvm/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll -index 525bf2d..01291bd 100644 ---- a/llvm/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll -+++ b/llvm/test/tools/gold/X86/linkonce_odr_unnamed_addr.ll -@@ -3,7 +3,7 @@ - - ; RUN: opt -module-summary %s -o %t.o - ; RUN: opt -module-summary %p/Inputs/linkonce_odr_unnamed_addr.ll -o %t2.o --; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \ -+; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ - ; RUN: --plugin-opt=save-temps \ - ; RUN: %t.o %t2.o -o %t3.o - ; RUN: llvm-dis %t.o.1.promote.bc -o - | FileCheck %s -@@ -11,7 +11,7 @@ - ; Now test when one module is a native object. In that case we must be - ; conservative and not auto hide. - ; RUN: llc %p/Inputs/linkonce_odr_unnamed_addr.ll -o %t2native.o -filetype=obj --; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \ -+; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ - ; RUN: --plugin-opt=save-temps \ - ; RUN: %t.o %t2native.o -o %t3.o - ; RUN: llvm-dis %t.o.1.promote.bc -o - | FileCheck %s --check-prefix=NOSUMMARY --- -1.8.3.1 - diff --git a/SOURCES/0001-docs-Convert-remaining-command-guide-entries-from-md.patch b/SOURCES/0001-docs-Convert-remaining-command-guide-entries-from-md.patch deleted file mode 100644 index 91b27b2..0000000 --- a/SOURCES/0001-docs-Convert-remaining-command-guide-entries-from-md.patch +++ /dev/null @@ -1,248 +0,0 @@ -From e4e77bb8bf741f52b43b90987646f1c118914848 Mon Sep 17 00:00:00 2001 -From: Jordan Rupprecht -Date: Wed, 21 Aug 2019 18:00:17 +0000 -Subject: [PATCH] [docs] Convert remaining command guide entries from md to - rst. - -Summary: -Linking between markdown and rst files is currently not supported very well, e.g. the current llvm-addr2line docs [1] link to "llvm-symbolizer" instead of "llvm-symbolizer.html". This is weirdly broken in different ways depending on which versions of sphinx and recommonmark are being used, so workaround the bug by using rst everywhere. - -[1] http://llvm.org/docs/CommandGuide/llvm-addr2line.html - -Reviewers: jhenderson - -Reviewed By: jhenderson - -Subscribers: lebedev.ri, llvm-commits - -Tags: #llvm - -Differential Revision: https://reviews.llvm.org/D66305 - -llvm-svn: 369553 ---- - llvm/docs/CommandGuide/llvm-addr2line.md | 28 ----------------------- - llvm/docs/CommandGuide/llvm-addr2line.rst | 38 +++++++++++++++++++++++++++++++ - llvm/docs/CommandGuide/llvm-ranlib.md | 17 -------------- - llvm/docs/CommandGuide/llvm-ranlib.rst | 23 +++++++++++++++++++ - llvm/docs/CommandGuide/llvm-size.md | 10 -------- - llvm/docs/CommandGuide/llvm-size.rst | 15 ++++++++++++ - llvm/docs/CommandGuide/llvm-strings.md | 10 -------- - llvm/docs/CommandGuide/llvm-strings.rst | 15 ++++++++++++ - 8 files changed, 91 insertions(+), 65 deletions(-) - delete mode 100644 llvm/docs/CommandGuide/llvm-addr2line.md - create mode 100644 llvm/docs/CommandGuide/llvm-addr2line.rst - delete mode 100644 llvm/docs/CommandGuide/llvm-ranlib.md - create mode 100644 llvm/docs/CommandGuide/llvm-ranlib.rst - delete mode 100644 llvm/docs/CommandGuide/llvm-size.md - create mode 100644 llvm/docs/CommandGuide/llvm-size.rst - delete mode 100644 llvm/docs/CommandGuide/llvm-strings.md - create mode 100644 llvm/docs/CommandGuide/llvm-strings.rst - -diff --git a/llvm/docs/CommandGuide/llvm-addr2line.md b/llvm/docs/CommandGuide/llvm-addr2line.md -deleted file mode 100644 -index 03224c4..0000000 ---- a/llvm/docs/CommandGuide/llvm-addr2line.md -+++ /dev/null -@@ -1,28 +0,0 @@ --# llvm-addr2line - a drop-in replacement for addr2line -- --## SYNOPSIS -- --**llvm-addr2line** [*options*] -- --## DESCRIPTION -- --**llvm-addr2line** is an alias for the [llvm-symbolizer](llvm-symbolizer) tool --with different defaults. The goal is to make it a drop-in replacement for --GNU's **addr2line**. -- --Here are some of those differences: -- --* Defaults not to print function names. Use [-f](llvm-symbolizer-opt-f) -- to enable that. -- --* Defaults not to demangle function names. Use [-C](llvm-symbolizer-opt-C) -- to switch the demangling on. -- --* Defaults not to print inlined frames. Use [-i](llvm-symbolizer-opt-i) -- to show inlined frames for a source code location in an inlined function. -- --* Uses [--output-style=GNU](llvm-symbolizer-opt-output-style) by default. -- --## SEE ALSO -- --Refer to [llvm-symbolizer](llvm-symbolizer) for additional information. -diff --git a/llvm/docs/CommandGuide/llvm-addr2line.rst b/llvm/docs/CommandGuide/llvm-addr2line.rst -new file mode 100644 -index 0000000..08f1b69 ---- /dev/null -+++ b/llvm/docs/CommandGuide/llvm-addr2line.rst -@@ -0,0 +1,38 @@ -+llvm-addr2line - a drop-in replacement for addr2line -+==================================================== -+ -+.. program:: llvm-addr2line -+ -+SYNOPSIS -+-------- -+ -+:program:`llvm-addr2line` [*options*] -+ -+DESCRIPTION -+----------- -+ -+:program:`llvm-addr2line` is an alias for the :manpage:`llvm-symbolizer(1)` -+tool with different defaults. The goal is to make it a drop-in replacement for -+GNU's :program:`addr2line`. -+ -+Here are some of those differences: -+ -+- Defaults not to print function names. Use `-f`_ to enable that. -+ -+- Defaults not to demangle function names. Use `-C`_ to switch the -+ demangling on. -+ -+- Defaults not to print inlined frames. Use `-i`_ to show inlined -+ frames for a source code location in an inlined function. -+ -+- Uses `--output-style=GNU`_ by default. -+ -+SEE ALSO -+-------- -+ -+:manpage:`llvm-symbolizer(1)` -+ -+.. _-f: llvm-symbolizer.html#llvm-symbolizer-opt-f -+.. _-C: llvm-symbolizer.html#llvm-symbolizer-opt-c -+.. _-i: llvm-symbolizer.html#llvm-symbolizer-opt-i -+.. _--output-style=GNU: llvm-symbolizer.html#llvm-symbolizer-opt-output-style -diff --git a/llvm/docs/CommandGuide/llvm-ranlib.md b/llvm/docs/CommandGuide/llvm-ranlib.md -deleted file mode 100644 -index 4377364..0000000 ---- a/llvm/docs/CommandGuide/llvm-ranlib.md -+++ /dev/null -@@ -1,17 +0,0 @@ --# llvm-ranlib - generates an archive index -- --## SYNOPSIS -- --**llvm-ranlib** [*options*] -- --## DESCRIPTION -- --**llvm-ranlib** is an alias for the [llvm-ar](llvm-ar.html) tool that generates --an index for an archive. It can be used as a replacement for GNU's **ranlib** --tool. -- --Running **llvm-ranlib** is equivalent to running **llvm-ar s**. -- --## SEE ALSO -- --Refer to [llvm-ar](llvm-ar.html) for additional information. -diff --git a/llvm/docs/CommandGuide/llvm-ranlib.rst b/llvm/docs/CommandGuide/llvm-ranlib.rst -new file mode 100644 -index 0000000..314a330 ---- /dev/null -+++ b/llvm/docs/CommandGuide/llvm-ranlib.rst -@@ -0,0 +1,23 @@ -+llvm-ranlib - generates an archive index -+======================================== -+ -+.. program:: llvm-ranlib -+ -+SYNOPSIS -+-------- -+ -+:program:`llvm-ranlib` [*options*] -+ -+DESCRIPTION -+----------- -+ -+:program:`llvm-ranlib` is an alias for the :doc:`llvm-ar ` tool that -+generates an index for an archive. It can be used as a replacement for GNU’s -+:program:`ranlib` tool. -+ -+Running :program:`llvm-ranlib` is equivalent to running ``llvm-ar s``. -+ -+SEE ALSO -+-------- -+ -+:manpage:`llvm-ar(1)` -diff --git a/llvm/docs/CommandGuide/llvm-size.md b/llvm/docs/CommandGuide/llvm-size.md -deleted file mode 100644 -index 3952708..0000000 ---- a/llvm/docs/CommandGuide/llvm-size.md -+++ /dev/null -@@ -1,10 +0,0 @@ --# llvm-size - print segment sizes -- --## SYNOPSIS -- --**llvm-size** [*options*] -- --## DESCRIPTION -- --**llvm-size** is a tool that prints segment sizes in object files. The goal is --to make it a drop-in replacement for GNU's **size**. -diff --git a/llvm/docs/CommandGuide/llvm-size.rst b/llvm/docs/CommandGuide/llvm-size.rst -new file mode 100644 -index 0000000..0dce15c ---- /dev/null -+++ b/llvm/docs/CommandGuide/llvm-size.rst -@@ -0,0 +1,15 @@ -+llvm-size - print size information -+================================== -+ -+.. program:: llvm-size -+ -+SYNOPSIS -+-------- -+ -+:program:`llvm-size` [*options*] -+ -+DESCRIPTION -+----------- -+ -+:program:`llvm-size` is a tool that prints size information for object files. -+The goal is to make it a drop-in replacement for GNU’s :program:`size`. -diff --git a/llvm/docs/CommandGuide/llvm-strings.md b/llvm/docs/CommandGuide/llvm-strings.md -deleted file mode 100644 -index b5871c4..0000000 ---- a/llvm/docs/CommandGuide/llvm-strings.md -+++ /dev/null -@@ -1,10 +0,0 @@ --# llvm-strings - print strings -- --## SYNOPSIS -- --**llvm-strings** [*options*] -- --## DESCRIPTION -- --**llvm-strings** is a tool that prints strings in object files. The goal is to --make it a drop-in replacement for GNU's **size**. -diff --git a/llvm/docs/CommandGuide/llvm-strings.rst b/llvm/docs/CommandGuide/llvm-strings.rst -new file mode 100644 -index 0000000..d8ab9cb ---- /dev/null -+++ b/llvm/docs/CommandGuide/llvm-strings.rst -@@ -0,0 +1,15 @@ -+llvm-strings - print strings -+============================ -+ -+.. program:: llvm-strings -+ -+SYNOPSIS -+-------- -+ -+:program:`llvm-strings` [*options*] -+ -+DESCRIPTION -+----------- -+ -+:program:`llvm-strings` is a tool that prints strings in files. The goal is to -+make it a drop-in replacement for GNU’s :program:`strings`. --- -1.8.3.1 - diff --git a/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch b/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch new file mode 100644 index 0000000..2a93e6a --- /dev/null +++ b/SOURCES/bab5908df544680ada0a3cf431f55aeccfbdb321.patch @@ -0,0 +1,23 @@ +From bab5908df544680ada0a3cf431f55aeccfbdb321 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Mon, 13 Apr 2020 13:44:15 +0200 +Subject: [PATCH] Normalize working directory when running llvm-mc in test + +Otherwise, depending on the lit location used to run the test, llvm-mc adds an +include_directories entry in the dwarf output, which breaks tests in some setup. + +Differential Revision: https://reviews.llvm.org/D77876 +--- + llvm/test/MC/MachO/gen-dwarf.s | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/llvm/test/MC/MachO/gen-dwarf.s b/llvm/test/MC/MachO/gen-dwarf.s +index 0813856d625f..6d39d278e818 100644 +--- a/llvm/test/MC/MachO/gen-dwarf.s ++++ b/llvm/test/MC/MachO/gen-dwarf.s +@@ -1,4 +1,4 @@ +-// RUN: llvm-mc -g -triple i386-apple-darwin10 %s -filetype=obj -o %t ++// RUN: mkdir -p %t0 && cd %t0 && llvm-mc -g -triple i386-apple-darwin10 %s -filetype=obj -o %t + // RUN: llvm-dwarfdump -all %t | FileCheck %s + + .globl _bar diff --git a/SOURCES/llvm-10.0.0.src.tar.xz.sig b/SOURCES/llvm-10.0.0.src.tar.xz.sig new file mode 100644 index 0000000..00138e7 Binary files /dev/null and b/SOURCES/llvm-10.0.0.src.tar.xz.sig differ diff --git a/SOURCES/run-lit-tests b/SOURCES/run-lit-tests index aed8165..11fc0f4 100755 --- a/SOURCES/run-lit-tests +++ b/SOURCES/run-lit-tests @@ -49,16 +49,10 @@ esac cd $(mktemp -d) ln -s /usr/include include tar -xzf /usr/share/llvm/src/test.tar.gz -ln -s $ARCH.site.cfg.py test/lit.site.cfg.py -ln -s $ARCH.site.cfg.py test/Unit/lit.site.cfg.py - -# llvm_obj_root is used to determine the directory the tests will run in. -# test/MC/MachO/gen-dwarf.s fails if llvm_obj_root is a parent directory -# of the source file. To workaround this, we set llvm_obj_root to a -# different directory than the one used to store the test sources. -# This also matches better how tests are run from the llvm source tree. +ln -s /usr/share/llvm/src/$ARCH.site.cfg.py test/lit.site.cfg.py +ln -s /usr/share/llvm/src/$ARCH.Unit.site.cfg.py test/Unit/lit.site.cfg.py lit -v -s $threads_arg test \ - -Dllvm_obj_root=$(mktemp -d) \ + -Dllvm_obj_root=`pwd` \ -Dllvm_test_root=`pwd`/test \ -Dllvm_unittest_bindir=$LIB_DIR/llvm \ -Dllvm_shlib_dir=$LIB_DIR diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec index 7e9b85f..c52a9fa 100644 --- a/SPECS/llvm.spec +++ b/SPECS/llvm.spec @@ -10,12 +10,12 @@ %global llvm_libdir %{_libdir}/%{name} %global build_llvm_libdir %{buildroot}%{llvm_libdir} -%global maj_ver 9 +#%%global rc_ver 6 +%global baserelease 2 +%global llvm_srcdir llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src +%global maj_ver 10 %global min_ver 0 %global patch_ver 0 -#%%global rc_ver 3 -%global baserelease 5 - %if %{with compat_build} %global pkg_name llvm%{maj_ver}.%{min_ver} @@ -50,24 +50,35 @@ Summary: The Low Level Virtual Machine License: NCSA URL: http://llvm.org -Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src.tar.xz +%if 0%{?rc_ver:1} +Source0: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{llvm_srcdir}.tar.xz +Source3: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{llvm_srcdir}.tar.xz.sig +%else +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{llvm_srcdir}.tar.xz +Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{llvm_srcdir}.tar.xz.sig +%endif %if %{without compat_build} Source1: run-lit-tests Source2: lit.fedora.cfg.py %endif +Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc -Patch0: 0001-Filter-out-cxxflags-not-supported-by-clang.patch -# TODO: I'm not sure why this is needed. Could be a change in newer version -# of gold. -Patch1: 0001-Pass-target-to-gold-linker-to-avoid-faliures-on-i686.patch +##Patch0: 0001-Filter-out-cxxflags-not-supported-by-clang.patch Patch2: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch Patch3: 0001-CMake-Split-test-binary-exports-into-their-own-expor.patch +Patch4: bab5908df544680ada0a3cf431f55aeccfbdb321.patch # RHEL-specific patches. Patch101: 0001-Deactivate-markdown-doc.patch # Patches to convert md files to rst since we don't have the md parser in RHEL. -Patch102: 0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch -Patch103: 0001-docs-Convert-remaining-command-guide-entries-from-md.patch +#Patch102: 0001-Docs-llvm-strip-Add-help-text-to-llvm-strip-rst-doc.patch +#Patch103: 0001-docs-Convert-remaining-command-guide-entries-from-md.patch +### Fix crash in kernel bpf self-tests +##Patch5: 0001-BPF-Handling-type-conversions-correctly-for-CO-RE.patch +##Patch6: 0001-BPF-annotate-DIType-metadata-for-builtin-preseve_arr.patch +## +### Fix Rust codegen bug, https://github.com/rust-lang/rust/issues/69225 +##Patch7: 0001-Revert-SCEV-add-no-wrap-flag-for-SCEVAddExpr.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -79,6 +90,8 @@ BuildRequires: ncurses-devel BuildRequires: python3-sphinx %if !0%{?rhel} BuildRequires: python3-recommonmark +%else +BuildRequires: pandoc %endif BuildRequires: multilib-rpm-config %if %{with gold} @@ -108,6 +121,7 @@ tools as well as libraries with equivalent functionality. %package devel Summary: Libraries and header files for LLVM Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} # The installed LLVM cmake files will add -ledit to the linker flags for any # app that requires the libLLVMLineEditor, so we need to make sure # libedit-devel is available. @@ -149,6 +163,7 @@ Static libraries for the LLVM compiler infrastructure. %package test Summary: LLVM regression tests Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: python3-lit # The regression tests need gold. Requires: binutils @@ -172,12 +187,16 @@ LLVM's modified googletest sources. %endif %prep -%autosetup -n llvm-%{version}%{?rc_ver:rc%{rc_ver}}.src -p2 +%autosetup -n %{llvm_srcdir} -p2 pathfix.py -i %{__python3} -pn \ test/BugPoint/compile-custom.ll.py \ tools/opt-viewer/*.py +# Convert markdown files to rst to cope with the absence of recommonmark in rhel. +# The sed expression takes care of a slight difference between pandoc markdown and sphinx markdown. +find -name '*.md' | while read md; do sed -r -e 's/^( )*\* /\n\1\* /' ${md} | pandoc -f markdown -o ${md%.md}.rst ; done + %build mkdir -p _build cd _build @@ -251,6 +270,7 @@ cd _build -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 @@ -280,6 +300,8 @@ do install -m 0755 ./_build/bin/$f %{buildroot}%{_bindir} done +# Remove testing of update utility tools +rm -rf test/tools/UpdateTestChecks %multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h @@ -321,7 +343,12 @@ install -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/tests/llvm # Install lit tests. We need to put these in a tarball otherwise rpm will complain # about some of the test inputs having the wrong object file format. install -d %{buildroot}%{_datadir}/llvm/ -tar -czf %{install_srcdir}/test.tar.gz test/ + +# The various tar options are there to make sur the archive is the same on 32 and 64 bit arch, i.e. +# the archive creation is reproducible. Move arch-specific content out of the tarball +mv %{lit_cfg} %{install_srcdir}/%{_arch}.site.cfg.py +mv %{lit_unit_cfg} %{install_srcdir}/%{_arch}.Unit.site.cfg.py +tar --sort=name --mtime='UTC 2020-01-01' -c test/ | gzip -n > %{install_srcdir}/test.tar.gz # Install the unit test binaries mkdir -p %{build_llvm_libdir} @@ -343,7 +370,7 @@ cp -R unittests/DebugInfo/PDB/Inputs %{buildroot}%{_datadir}/llvm/src/unittests/ mkdir -p %{buildroot}/%{_bindir} for f in %{buildroot}/%{install_bindir}/*; do filename=`basename $f` - ln -s %{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} + ln -s ../../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} done # Move header files @@ -363,7 +390,7 @@ EOF # Add version suffix to man pages and move them to mandir. mkdir -p %{buildroot}/%{_mandir}/man1 -for f in `ls %{build_install_prefix}/share/man/man1/*`; do +for f in %{build_install_prefix}/share/man/man1/*; do filename=`basename $f | cut -f 1 -d '.'` mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1 done @@ -477,6 +504,8 @@ fi %{llvm_libdir}/unittests/ %{_datadir}/llvm/src/unittests %{_datadir}/llvm/src/test.tar.gz +%{_datadir}/llvm/src/%{_arch}.site.cfg.py +%{_datadir}/llvm/src/%{_arch}.Unit.site.cfg.py %{_datadir}/llvm/lit.fedora.cfg.py %{_bindir}/not %{_bindir}/count @@ -495,6 +524,24 @@ fi %endif %changelog +* Wed Jun 24 2020 sguelton@redhat.com - 10.0.0-2 +- Reproducible build of test.tar.gz, see rhbz#1820319 + +* Tue Apr 7 2020 sguelton@redhat.com - 10.0.0-1 +- 10.0.0 Release + +* Thu Feb 27 2020 Josh Stone - 9.0.1-4 +- Fix a codegen bug for Rust + +* Fri Jan 17 2020 Tom Stellard - 9.0.1-3 +- Add explicit Requires from sub-packages to llvm-libs + +* Fri Jan 10 2020 Tom Stellard - 9.0.1-2 +- Fix crash with kernel bpf self-tests + +* Thu Dec 19 2019 tstellar@redhat.com - 9.0.1-1 +- 9.0.1 Release + * Wed Oct 30 2019 Tom Stellard - 9.0.0-5 - Remove work-around for threading issue in gold