Commit de04863f authored by Sylvestre Ledru's avatar Sylvestre Ledru

* Disable gold for sparc* (Closes: #913260)

* Try to integrate a pach to make pch reproducible
  Thanks to Rebecca Palmer for the patch
  (Closes: #877359)
* Fix a non-break space in a patch (Closes: #913213)
* Upload of 7.0.1 rc2 into unstable
* New testing release
* Enable the stage2 bootstrap:
  - stage1 = build clang with gcc
  - stage2 = clang building itself
  (Closes: #909234)
* Bring back the Disable NEON generation on armhf patch which was gone
  Should fix the FTBFS on armhf
  (Closes: #842142)
* Update the clang manpage to remove osx specific options
  and to add -arch (Closes: #743133)
* Bring back usr/lib/@DEB_HOST_MULTIARCH@/{libiomp5.so, libomp5.so}
  symlink for gcc (Closes: #912641)
* New testing release
* Remove the dump of cmake error file (too confusing)
* Try to fix the bootstrap FTBFS :
  - on armel by forcing the link to -latomic
  - mips-rdhwr.diff: backport D51773 to fix an
    assembly issue on mips.
    Thanks to jrtc27 for finding the issue.
* Update the watch file to display the right version
  (even if the download will fail)
* clang-7 suggests libomp-7-dev instead of libomp-dev
* Make sure that we don't conflict openmp & libc++ with llvm-defaults's
  (Closes: #912544)
* Handle better the non coinstability of openmp & libc++ (like we are doing
  with python-clang-*)
* Backport upstream fix D51749 to address a rust aarch64 issues
  (Closes: #909705)
* Add tests from old bugs to make sure they don't come back
  (Closes: #889832, #827866)
* The sanitizers use the versionned llvm-symbolizer provided by the
  llvm-X package (Closes: #753572)
* clangd-atomic-cmake.patch: Link against atomic for clangd in i386
* When the cmake configure of the stage2 is failing, dump the cmake error log
* Declare some variables (-Wno-*) for all platforms (was failing on mips)
* Update the watch file to display the right version
  (even if the download will fail)
* clang-7 suggests libomp-7-dev instead of libomp-dev
* Make sure that we don't conflict openmp & libc++ with llvm-defaults's
  (Closes: #912544)
* Handle better the non coinstability of openmp & libc++ (like we are doing
  with python-clang-*)
* Backport upstream fix D51749 to address a rust aarch64 issues
  (Closes: #909705)
* Add tests from old bugs to make sure they don't come back
  (Closes: #889832, #827866)
* The sanitizers use the versionned llvm-symbolizer provided by the
  llvm-X package (Closes: #753572)
* Experiment the clang bootstrap
* Try to boostrap clang using clang
* Apply hurd fixes (Closes: #908847).
 - hurd-lib_Support_Unix_Path.inc.diff
 - hurd-pathmax.diff
 - hurd-tools_llvm-shlib_CMakeLists.txt.diff
* Team upload
* Upload to unstable
* Disable for now the bootstrapping clang patches
* Try to bootstrap (currently in a different branch)
* Split the builds in different make target
* Add python-pygments as dep of llvm-7-tools because
  opt-viewer.py needs it
* Add back libomp5-X.Y.symbols.in (untested)
* Fix the install of clang bash completion
* Start the work on bootstraping clang
  - bootstrap-with-openmp-version-export-missing.diff: fix a link issue
    https://bugs.llvm.org/show_bug.cgi?id=39200
  - bootstrap-fix-include-next.diff: Fix an include issue at bootstrap phase
    https://bugs.llvm.org/show_bug.cgi?id=39162
* Take option two in bug #877567 to fix FTBFS on mips and mipsel
* Add patch to fix missing include and library paths on x32
* Non-maintainer upload.
* Apply hurd fixes (Closes: #908847).
  - hurd-lib_Support_Unix_Path.inc.diff
  - hurd-pathmax.diff
  - hurd-tools_llvm-shlib_CMakeLists.txt.diff
parents 74c85ef7 7a048d4c
......@@ -29,6 +29,144 @@ llvm-toolchain-snapshot (1:8~svn345569-1~exp1) experimental; urgency=medium
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 30 Oct 2018 08:31:14 +0100
llvm-toolchain-7 (1:7.0.1~+rc2-3) unstable; urgency=medium
* Disable gold for sparc* (Closes: #913260)
* Try to integrate a pach to make pch reproducible
Thanks to Rebecca Palmer for the patch
(Closes: #877359)
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Nov 2018 20:50:39 +0100
llvm-toolchain-7 (1:7.0.1~+rc2-2) unstable; urgency=medium
* Fix a non-break space in a patch (Closes: #913213)
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Nov 2018 09:28:36 +0100
llvm-toolchain-7 (1:7.0.1~+rc2-1) unstable; urgency=medium
* Upload of 7.0.1 rc2 into unstable
* New testing release
* Enable the stage2 bootstrap:
- stage1 = build clang with gcc
- stage2 = clang building itself
(Closes: #909234)
* Bring back the Disable NEON generation on armhf patch which was gone
Should fix the FTBFS on armhf
(Closes: #842142)
* Update the clang manpage to remove osx specific options
and to add -arch (Closes: #743133)
* Bring back usr/lib/@DEB_HOST_MULTIARCH@/{libiomp5.so, libomp5.so}
symlink for gcc (Closes: #912641)
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 07 Nov 2018 15:17:41 +0100
llvm-toolchain-7 (1:7.0.1~+rc2-1~exp1) experimental; urgency=medium
* New testing release
-- Sylvestre Ledru <sylvestre@debian.org> Mon, 05 Nov 2018 23:38:34 +0100
llvm-toolchain-7 (1:7-9) unstable; urgency=medium
* Remove the dump of cmake error file (too confusing)
* Try to fix the bootstrap FTBFS :
- on armel by forcing the link to -latomic
- mips-rdhwr.diff: backport D51773 to fix an
assembly issue on mips.
Thanks to jrtc27 for finding the issue.
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 04 Nov 2018 18:07:23 +0100
llvm-toolchain-7 (1:7-8) unstable; urgency=medium
* Update the watch file to display the right version
(even if the download will fail)
* clang-7 suggests libomp-7-dev instead of libomp-dev
* Make sure that we don't conflict openmp & libc++ with llvm-defaults's
(Closes: #912544)
* Handle better the non coinstability of openmp & libc++ (like we are doing
with python-clang-*)
* Backport upstream fix D51749 to address a rust aarch64 issues
(Closes: #909705)
* Add tests from old bugs to make sure they don't come back
(Closes: #889832, #827866)
* The sanitizers use the versionned llvm-symbolizer provided by the
llvm-X package (Closes: #753572)
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 20 Oct 2018 16:00:58 +0200
llvm-toolchain-7 (1:7-7~exp2) experimental; urgency=medium
* clangd-atomic-cmake.patch: Link against atomic for clangd in i386
* When the cmake configure of the stage2 is failing, dump the cmake error log
* Declare some variables (-Wno-*) for all platforms (was failing on mips)
* Update the watch file to display the right version
(even if the download will fail)
* clang-7 suggests libomp-7-dev instead of libomp-dev
* Make sure that we don't conflict openmp & libc++ with llvm-defaults's
(Closes: #912544)
* Handle better the non coinstability of openmp & libc++ (like we are doing
with python-clang-*)
* Backport upstream fix D51749 to address a rust aarch64 issues
(Closes: #909705)
* Add tests from old bugs to make sure they don't come back
(Closes: #889832, #827866)
* The sanitizers use the versionned llvm-symbolizer provided by the
llvm-X package (Closes: #753572)
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 21 Oct 2018 18:34:20 +0200
llvm-toolchain-7 (1:7-7~exp1) experimental; urgency=medium
* Experiment the clang bootstrap
* Try to boostrap clang using clang
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 17 Oct 2018 20:15:57 +0200
llvm-toolchain-7 (1:7-7) unstable; urgency=medium
[ Samuel Thibault ]
* Apply hurd fixes (Closes: #908847).
- hurd-lib_Support_Unix_Path.inc.diff
- hurd-pathmax.diff
- hurd-tools_llvm-shlib_CMakeLists.txt.diff
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Oct 2018 16:50:58 +0200
llvm-toolchain-7 (1:7-6) unstable; urgency=medium
* Team upload
* Upload to unstable
-- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 17 Oct 2018 11:00:09 +0200
llvm-toolchain-7 (1:7-6~exp2) experimental; urgency=medium
* Disable for now the bootstrapping clang patches
-- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 16 Oct 2018 15:00:46 +0200
llvm-toolchain-7 (1:7-6~exp1) experimental; urgency=medium
* Try to bootstrap (currently in a different branch)
* Split the builds in different make target
* Add python-pygments as dep of llvm-7-tools because
opt-viewer.py needs it
* Add back libomp5-X.Y.symbols.in (untested)
* Fix the install of clang bash completion
* Start the work on bootstraping clang
- bootstrap-with-openmp-version-export-missing.diff: fix a link issue
https://bugs.llvm.org/show_bug.cgi?id=39200
- bootstrap-fix-include-next.diff: Fix an include issue at bootstrap phase
https://bugs.llvm.org/show_bug.cgi?id=39162
[ Gianfranco Costamagna ]
* Take option two in bug #877567 to fix FTBFS on mips and mipsel
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 06 Oct 2018 23:04:24 +0200
llvm-toolchain-7 (1:7-5) unstable; urgency=medium
* In debci, run qualify-clang.sh in verbose mode
......@@ -462,6 +600,23 @@ llvm-toolchain-snapshot (1:7~svn322880-1) unstable; urgency=medium
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Jan 2018 20:50:03 +0100
llvm-toolchain-6.0 (1:6.0.1-10) UNRELEASED; urgency=medium
[ John Paul Adrian Glaubitz ]
* Add patch to fix missing include and library paths on x32
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Oct 2018 16:43:31 +0200
llvm-toolchain-6.0 (1:6.0.1-9.1) unstable; urgency=medium
* Non-maintainer upload.
* Apply hurd fixes (Closes: #908847).
- hurd-lib_Support_Unix_Path.inc.diff
- hurd-pathmax.diff
- hurd-tools_llvm-shlib_CMakeLists.txt.diff
-- Samuel Thibault <sthibault@debian.org> Tue, 16 Oct 2018 20:18:39 +0000
llvm-toolchain-6.0 (1:6.0.1-8) unstable; urgency=medium
[ John Paul Adrian Glaubitz ]
......
usr/lib/llvm-@LLVM_VERSION@/bin/clang usr/lib/llvm-@LLVM_VERSION@/bin/clang-@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang usr/lib/cmake/clang-@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh etc/bash_completion.d/clang-@LLVM_VERSION@
\ No newline at end of file
usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh usr/share/bash-completion/completions/clang-@LLVM_VERSION@
......@@ -31,7 +31,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
${dep:devlibs-objc}, libclang-common-8-dev (= ${binary:Version}),
libclang1-8 (= ${binary:Version}), libc6-dev, binutils
Provides: c-compiler, objc-compiler, c++-compiler
Recommends: llvm-8-dev, python, libomp-dev
Recommends: llvm-8-dev, python, libomp-8-dev
Suggests: clang-8-doc
Description: C, C++ and Objective-C compiler
Clang project is a C, C++, Objective C and Objective C++ front-end
......@@ -293,7 +293,8 @@ Description: Modular compiler and toolchain technologies, libraries and headers
Package: llvm-8-tools
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-pygments, python-yaml,
Depends: ${shlibs:Depends}, ${misc:Depends}, python,
python-pygments, python-yaml,
llvm-8-dev (= ${binary:Version})
Description: Modular compiler and toolchain technologies, tools
LLVM is a collection of libraries and tools that make it easy to build
......@@ -475,16 +476,18 @@ Description: Next generation, high-performance debugger, header files
# ------------- openmp -------------
# 44 because it was the first version in which openmp & libc++ have been
# managed in llvm-defaults
Package: libomp-8-dev
Section: libdevel
Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64
Depends: libomp5-8 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Suggests: libomp-8-doc
Breaks: libiomp-dev (<< 3.7-1), libomp-dev (<< 7~+rc1-1~exp1)
Conflicts: libomp-dev
Replaces: libomp-dev
Provides: libomp-dev
Breaks: libiomp-dev (<< 3.7-1), libomp-dev (<< 44)
Provides: libomp-x.y-dev
Conflicts: libomp-x.y-dev
Replaces: libomp-x.y-dev
Description: LLVM OpenMP runtime - dev package
The runtime is the part of the OpenMP implementation that your code is
linked against, and that manages the multiple threads in an OpenMP program
......@@ -494,11 +497,10 @@ Package: libomp5-8
Multi-Arch: same
Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64
Depends: ${shlibs:Depends}, ${misc:Depends}
Breaks: libomp5 (<< 7~+rc1-1~exp1)
Conflicts: libomp5
Replaces: libomp5
Provides: libomp5
# TODO add the break depends
Breaks: libomp5 (<< 44)
Provides: libomp-x.y
Conflicts: libomp-x.y
Replaces: libomp-x.y
Description: LLVM OpenMP runtime
The runtime is the part of the OpenMP implementation that your code is
linked against, and that manages the multiple threads in an OpenMP program
......@@ -508,8 +510,8 @@ Package: libomp-8-doc
Section: doc
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-jquery
Replaces: libiomp-doc
Breaks: libiomp-doc
Replaces: libiomp-x.y-doc
Breaks: libiomp-x.y-doc
Description: LLVM OpenMP runtime - Documentation
The runtime is the part of the OpenMP implementation that your code is
linked against, and that manages the multiple threads in an OpenMP program
......@@ -526,10 +528,10 @@ Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: clang
Breaks: libc++1 (<< 7~+rc1-1~exp1)
Conflicts: libc++1
Replaces: libc++1
Provides: libc++1
Breaks: libc++1 (<< 44)
Provides: libc++-x.y
Conflicts: libc++-x.y
Replaces: libc++-x.y
Description: LLVM C++ Standard library
libc++ is another implementation of the C++ standard library.
.
......@@ -548,10 +550,10 @@ Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libc++1-8 (= ${binary:Version}), ${misc:Depends}
Breaks: libc++-dev (<< 7~+rc1-1~exp1)
Conflicts: libc++-dev
Provides: libc++-dev
Replaces: libc++-dev
Breaks: libc++-dev (<< 44)
Provides: libc++-x.y-dev
Conflicts: libc++-x.y-dev
Replaces: libc++-x.y-dev
Description: LLVM C++ Standard library (development files)
libc++ is another implementation of the C++ standard library
.
......@@ -573,10 +575,10 @@ Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Breaks: libc++abi1 (<< 7~+rc1-1~exp1)
Conflicts: libc++abi1
Provides: libc++abi1
Replaces: libc++abi1
Breaks: libc++abi1 (<< 44)
Provides: libc++abi-x.y
Conflicts: libc++abi-x.y
Replaces: libc++abi-x.y
Description: LLVM low level support for a standard C++ library
libc++abi is another implementation of low level support for a standard C++
library.
......@@ -591,9 +593,10 @@ Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libc++abi1-8 (= ${binary:Version}), ${misc:Depends}
Breaks: libc++-dev (<= 6.0.1-1)
Provides: libc++abi-dev
Replaces: libc++abi-dev
Breaks: libc++abi-dev (<= 44)
Provides: libc++abi-x.y-dev
Conflicts: libc++abi-x.y-dev
Replaces: libc++abi-x.y-dev
Description: LLVM low level support for a standard C++ library (development files)
libc++abi is another implementation of low level support for a standard C++
library.
......
/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so usr/lib/@DEB_HOST_MULTIARCH@/libomp5.so
/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so usr/lib/@DEB_HOST_MULTIARCH@/libiomp5.so
This diff is collapsed.
When doing a bootstrap, we use a newly built clang.
When this one is used, if already installed on the system,
we have clang header in two places:
llvm-toolchain-7-7/build-llvm/lib/clang/7.0.0/include/inttypes.h
and
/usr/include/clang/7.0.0/include/inttypes.h
Because clang expects only one of his headers to be available, it uses
include_next to get the glibc (libc6-dev package) header.
However, in the previous example, because we have inttypes.h twice in the
include search path, clang's header will call itself without any effect.
Therefor, it will do include_next until the define from the libc is existing (ex: _INTTYPES_H)
Index: llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
===================================================================
--- llvm-toolchain-7-7.orig/clang/lib/Headers/inttypes.h
+++ llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
@@ -20,7 +20,7 @@
*
\*===----------------------------------------------------------------------===*/
-#ifndef __CLANG_INTTYPES_H
+#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H)
#define __CLANG_INTTYPES_H
#if defined(_MSC_VER) && _MSC_VER < 1800
Index: llvm-toolchain-7-7/clang/lib/Headers/limits.h
===================================================================
--- llvm-toolchain-7-7.orig/clang/lib/Headers/limits.h
+++ llvm-toolchain-7-7/clang/lib/Headers/limits.h
@@ -22,7 +22,7 @@
*
\*===----------------------------------------------------------------------===*/
-#ifndef __CLANG_LIMITS_H
+#if !defined(__CLANG_LIMITS_H) || !defined(_LIBC_LIMITS_H_)
#define __CLANG_LIMITS_H
/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
Index: llvm-toolchain-7-7/polly/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/polly/CMakeLists.txt
+++ llvm-toolchain-7-7/polly/CMakeLists.txt
@@ -91,6 +91,8 @@ else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
endif ()
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+
# Add path for custom modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${POLLY_SOURCE_DIR}/cmake")
Index: llvm-toolchain-7-7/polly/lib/External/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/polly/lib/External/CMakeLists.txt
+++ llvm-toolchain-7-7/polly/lib/External/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+
# External: Integer Set Library
if (POLLY_BUNDLED_ISL)
set(ISL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/isl")
Index: llvm-toolchain-7-7/lib/Support/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/lib/Support/CMakeLists.txt
+++ llvm-toolchain-7-7/lib/Support/CMakeLists.txt
@@ -1,4 +1,6 @@
set(system_libs)
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
set(system_libs ${system_libs} ${ZLIB_LIBRARIES})
endif()
Index: llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/openmp/runtime/src/CMakeLists.txt
+++ llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt
@@ -174,7 +174,8 @@ endif()
# Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
-target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS})
+target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}
+ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports_so.txt")
# Create *.inc before compiling any sources
# objects depend on : .inc files
Index: llvm-toolchain-7-7/include/llvm/Support/ARMTargetParser.def
===================================================================
--- llvm-toolchain-7-7.orig/include/llvm/Support/ARMTargetParser.def
+++ llvm-toolchain-7-7/include/llvm/Support/ARMTargetParser.def
@@ -75,7 +75,7 @@ ARM_ARCH("armv6kz", ARMV6KZ, "6KZ", "v6k
ARM_ARCH("armv6-m", ARMV6M, "6-M", "v6m", ARMBuildAttrs::CPUArch::v6_M,
FK_NONE, ARM::AEK_NONE)
ARM_ARCH("armv7-a", ARMV7A, "7-A", "v7", ARMBuildAttrs::CPUArch::v7,
- FK_NEON, ARM::AEK_DSP)
+ FK_VFPV3 /* Hard float */, ARM::AEK_DSP)
ARM_ARCH("armv7ve", ARMV7VE, "7VE", "v7ve", ARMBuildAttrs::CPUArch::v7,
FK_NEON, (ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP))
Index: llvm-toolchain-7-7/clang-tools-extra/clangd/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/clang-tools-extra/clangd/CMakeLists.txt
+++ llvm-toolchain-7-7/clang-tools-extra/clangd/CMakeLists.txt
@@ -7,6 +7,11 @@ if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
list(APPEND CLANGD_ATOMIC_LIB "atomic")
endif()
+if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i386" OR
+ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686")
+ list(APPEND CLANGD_ATOMIC_LIB "atomic")
+endif()
+
add_clang_library(clangDaemon
AST.cpp
ClangdLSPServer.cpp
When doing a bootstrap, we use a newly built clang.
When this one is used, if already installed on the system,
we have clang header in two places:
llvm-toolchain-7-7/build-llvm/lib/clang/7.0.0/include/inttypes.h
and
/usr/include/clang/7.0.0/include/inttypes.h
Because clang expects only one of his headers to be available, it uses
include_next to get the glibc (libc6-dev package) header.
However, in the previous example, because we have inttypes.h twice in the
include search path, clang's header will call itself without any effect.
Therefor, it will do include_next until the define from the libc is existing (ex: _INTTYPES_H)
Index: llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
===================================================================
--- llvm-toolchain-7-7.orig/clang/lib/Headers/inttypes.h
+++ llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
@@ -20,7 +20,7 @@
*
\*===----------------------------------------------------------------------===*/
-#ifndef __CLANG_INTTYPES_H
+#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H)
#define __CLANG_INTTYPES_H
#if defined(_MSC_VER) && _MSC_VER < 1800
Index: llvm-toolchain-7-7/clang/lib/Headers/limits.h
===================================================================
--- llvm-toolchain-7-7.orig/clang/lib/Headers/limits.h
+++ llvm-toolchain-7-7/clang/lib/Headers/limits.h
@@ -22,7 +22,7 @@
*
\*===----------------------------------------------------------------------===*/
-#ifndef __CLANG_LIMITS_H
+#if !defined(__CLANG_LIMITS_H) || !defined(_LIBC_LIMITS_H_)
#define __CLANG_LIMITS_H
/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
Index: llvm-toolchain-7-7/lib/Support/Unix/Path.inc
===================================================================
--- llvm-toolchain-7-7.orig/lib/Support/Unix/Path.inc
+++ llvm-toolchain-7-7/lib/Support/Unix/Path.inc
@@ -83,7 +83,7 @@
#define STATVFS_F_FRSIZE(vfs) static_cast<uint64_t>(vfs.f_bsize)
#endif
-#if defined(__NetBSD__)
+#if defined(__NetBSD__) || defined(__GNU__)
#define STATVFS_F_FLAG(vfs) (vfs).f_flag
#else
#define STATVFS_F_FLAG(vfs) (vfs).f_flags
@@ -99,7 +99,7 @@ const file_t kInvalidFile = -1;
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \
defined(__minix) || defined(__FreeBSD_kernel__) || defined(__linux__) || \
- defined(__CYGWIN__) || defined(__DragonFly__) || defined(_AIX)
+ defined(__CYGWIN__) || defined(__DragonFly__) || defined(_AIX) || defined(__GNU__)
static int
test_dir(char ret[PATH_MAX], const char *dir, const char *bin)
{
@@ -348,7 +348,7 @@ std::error_code remove(const Twine &path
}
static bool is_local_impl(struct STATVFS &Vfs) {
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GNU__)
#ifndef NFS_SUPER_MAGIC
#define NFS_SUPER_MAGIC 0x6969
#endif
@@ -358,7 +358,11 @@ static bool is_local_impl(struct STATVFS
#ifndef CIFS_MAGIC_NUMBER
#define CIFS_MAGIC_NUMBER 0xFF534D42
#endif
+#ifdef __GNU__
+ switch ((uint32_t)Vfs.__f_type) {
+#else
switch ((uint32_t)Vfs.f_type) {
+#endif
case NFS_SUPER_MAGIC:
case SMB_SUPER_MAGIC:
case CIFS_MAGIC_NUMBER:
......@@ -63,3 +63,19 @@ Index: llvm-toolchain-snapshot_8~svn345125/polly/lib/External/ppcg/cuda_common.c
/* Open the host .cu file and the kernel .hu and .cu files for writing.
* Add the necessary includes.
*/
Index: llvm-toolchain-6.0-6.0.1/clang/lib/Frontend/ModuleDependencyCollector.cpp
===================================================================
--- llvm-toolchain-6.0-6.0.1.orig/clang/lib/Frontend/ModuleDependencyCollector.cpp
+++ llvm-toolchain-6.0-6.0.1/clang/lib/Frontend/ModuleDependencyCollector.cpp
@@ -97,6 +97,11 @@ struct ModuleDependencyMMCallbacks : pub
}
+// For GNU Hurd
+#if defined(__GNU__) && !defined(PATH_MAX)
+# define PATH_MAX 4096
+#endif
+
// TODO: move this to Support/Path.h and check for HAVE_REALPATH?
static bool real_path(StringRef SrcPath, SmallVectorImpl<char> &RealPath) {
#ifdef LLVM_ON_UNIX
Index: llvm-toolchain-7-7/tools/llvm-shlib/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/tools/llvm-shlib/CMakeLists.txt
+++ llvm-toolchain-7-7/tools/llvm-shlib/CMakeLists.txt
@@ -40,6 +40,7 @@ set_property(TARGET LLVM PROPERTY VERSIO
list(REMOVE_DUPLICATES LIB_NAMES)
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")
......@@ -29,7 +29,7 @@ Index: llvm-toolchain-snapshot_8.0~svn293998/lldb/source/Plugins/Process/gdb-rem
#define DEBUGSERVER_BASENAME "debugserver"
#else
-#define DEBUGSERVER_BASENAME "lldb-server"
+# define DEBUGSERVER_BASENAME "lldb-server-"LLVM_VERSION_STRING
+# define DEBUGSERVER_BASENAME "lldb-server-" LLVM_VERSION_STRING
#endif
#if defined(HAVE_LIBCOMPRESSION)
Index: llvm-toolchain-7-7/lib/Target/Mips/Mips64InstrInfo.td
===================================================================
--- llvm-toolchain-7-7.orig/lib/Target/Mips/Mips64InstrInfo.td
+++ llvm-toolchain-7-7/lib/Target/Mips/Mips64InstrInfo.td
@@ -1139,3 +1139,6 @@ def SLTUImm64 : MipsAsmPseudoInst<(outs
"sltu\t$rs, $rt, $imm">, GPR_64;
def : MipsInstAlias<"sltu\t$rs, $imm", (SLTUImm64 GPR64Opnd:$rs, GPR64Opnd:$rs,
imm64:$imm)>, GPR_64;
+
+def : MipsInstAlias<"rdhwr $rt, $rs",
+ (RDHWR64 GPR64Opnd:$rt, HWRegsOpnd:$rs, 0), 1>, GPR_64;
Index: llvm-toolchain-7-7/test/CodeGen/Mips/tls.ll
===================================================================
--- llvm-toolchain-7-7.orig/test/CodeGen/Mips/tls.ll
+++ llvm-toolchain-7-7/test/CodeGen/Mips/tls.ll
@@ -48,14 +48,14 @@ entry:
; STATIC32-LABEL: f1:
; STATIC32: lui $[[R0:[0-9]+]], %tprel_hi(t1)
; STATIC32: addiu $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
-; STATIC32: rdhwr $3, $29
+; STATIC32: rdhwr $3, $29{{$}}
; STATIC32: addu $[[R2:[0-9]+]], $3, $[[R1]]
; STATIC32: lw $2, 0($[[R2]])
; STATIC64-LABEL: f1:
; STATIC64: lui $[[R0:[0-9]+]], %tprel_hi(t1)
; STATIC64: daddiu $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
-; STATIC64: rdhwr $3, $29, 0
+; STATIC64: rdhwr $3, $29{{$}}
; STATIC64: daddu $[[R2:[0-9]+]], $3, $[[R0]]
; STATIC64: lw $2, 0($[[R2]])
}
@@ -101,7 +101,7 @@ entry:
; STATIC32-LABEL: f2:
; STATIC32: lui $[[R0:[0-9]+]], %hi(__gnu_local_gp)
; STATIC32: addiu $[[GP:[0-9]+]], $[[R0]], %lo(__gnu_local_gp)
-; STATIC32: rdhwr $3, $29
+; STATIC32: rdhwr $3, $29{{$}}
; STATIC32: lw $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
; STATIC32: addu $[[R1:[0-9]+]], $3, $[[R0]]
; STATIC32: lw $2, 0($[[R1]])
@@ -109,7 +109,7 @@ entry:
; STATIC64-LABEL: f2:
; STATIC64: lui $[[R0:[0-9]+]], %hi(%neg(%gp_rel(f2)))
; STATIC64: daddiu $[[GP:[0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f2)))
-; STATIC64: rdhwr $3, $29
+; STATIC64: rdhwr $3, $29{{$}}
; STATIC64: ld $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
; STATIC64: daddu $[[R1:[0-9]+]], $3, $[[R0]]
; STATIC64: lw $2, 0($[[R1]])
Index: llvm-toolchain-7-7/clang/docs/CommandGuide/clang.rst
===================================================================
--- llvm-toolchain-7-7.orig/clang/docs/CommandGuide/clang.rst
+++ llvm-toolchain-7-7/clang/docs/CommandGuide/clang.rst
@@ -310,20 +310,10 @@ Clang fully supports cross compilation a
Depending on how your version of Clang is configured, it may have support for a
number of cross compilers, or may only support a native target.
-.. option:: -arch <architecture>
+.. option:: -target <architecture>
Specify the architecture to build for.
-.. option:: -mmacosx-version-min=<version>
-
- When building for Mac OS X, specify the minimum version supported by your
- application.
-
-.. option:: -miphoneos-version-min
-
- When building for iPhone OS, specify the minimum version supported by your
- application.
-
.. option:: -march=<cpu>
Specify that Clang should generate code for a specific processor family
@@ -616,11 +606,6 @@ ENVIRONMENT
These environment variables specify additional paths, as for :envvar:`CPATH`, which are
only used when processing the appropriate language.
-.. envvar:: MACOSX_DEPLOYMENT_TARGET
-
- If :option:`-mmacosx-version-min` is unspecified, the default deployment
- target is read from this environment variable. This option only affects
- Darwin targets.
BUGS
----
Description: Make ordering of OPENCL_EXTENSION_TYPES reproducible
Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Bug-Debian: https://bugs.debian.org/877359
Forwarded: no
Index: llvm-toolchain-7-7/clang/lib/Serialization/ASTWriter.cpp
===================================================================
--- llvm-toolchain-7-7.orig/clang/lib/Serialization/ASTWriter.cpp
+++ llvm-toolchain-7-7/clang/lib/Serialization/ASTWriter.cpp
@@ -4293,9 +4293,13 @@ void ASTWriter::WriteOpenCLExtensionType
return;
RecordData Record;
+ // Sort to allow reproducible .pch files - https://bugs.debian.org/877359
+ std::map<TypeID, std::set<std::string>> sortedOpenCLTypeExtMap;
for (const auto &I : SemaRef.OpenCLTypeExtMap) {
- Record.push_back(
- static_cast<unsigned>(getTypeID(I.first->getCanonicalTypeInternal())));
+ sortedOpenCLTypeExtMap[getTypeID(I.first->getCanonicalTypeInternal())]=I.second;
+ }
+ for (const auto &I : sortedOpenCLTypeExtMap) {
+ Record.push_back(static_cast<unsigned>(I.first));
Record.push_back(I.second.size());
for (auto Ext : I.second)
AddString(Ext, Record);
@@ -4308,8 +4312,12 @@ void ASTWriter::WriteOpenCLExtensionDecl
return;
RecordData Record;
+ std::map<DeclID, std::set<std::string>> sortedOpenCLDeclExtMap;
for (const auto &I : SemaRef.OpenCLDeclExtMap) {
- Record.push_back(getDeclID(I.first));
+ sortedOpenCLDeclExtMap[getDeclID(I.first)]=I.second;
+ }
+ for (const auto &I : sortedOpenCLDeclExtMap) {
+ Record.push_back(I.first);
Record.push_back(static_cast<unsigned>(I.second.size()));
for (auto Ext : I.second)
AddString(Ext, Record);
From 1c34cd56bc59b1540e0a814d2f80ade77daa9248 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Tue, 11 Sep 2018 17:52:01 +0000
Subject: [PATCH] [GlobalISel] Lower dbg.declare into indirect DBG_VALUE
Summary:
D31439 changed the semantics of dbg.declare to take the address of a
variable as the first argument, making it indirect. It specifically
updated FastISel for this change here:
https://reviews.llvm.org/D31439#change-WVArzi177jPl
GlobalISel needs to follow suit, or else it will be missing a level of
indirection in the generated debuginfo. This problem was seen in a Rust
debuginfo test on aarch64, since GlobalISel is used at -O0 for aarch64.
https://github.com/rust-lang/rust/issues/49807
https://bugzilla.redhat.com/show_bug.cgi?id=1611597
https://bugzilla.redhat.com/show_bug.cgi?id=1625768
Reviewers: dblaikie, aprantl, t.p.northover, javed.absar, rnk
Reviewed By: rnk
Subscribers: #debug-info, rovka, kristof.beyls, JDevlieghere, llvm-commits, tstellar
Differential Revision: https://reviews.llvm.org/D51749
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341969 91177308-0d34-0410-b5e6-96231b3b80d8
---
lib/CodeGen/GlobalISel/IRTranslator.cpp | 9 ++-
test/CodeGen/AArch64/GlobalISel/debug-cpp.ll | 67 +++++++++++++++++++
.../CodeGen/AArch64/GlobalISel/debug-insts.ll | 4 +-
3 files changed, 74 insertions(+), 6 deletions(-)
create mode 100644 test/CodeGen/AArch64/GlobalISel/debug-cpp.ll
Index: llvm-toolchain-7-7/lib/CodeGen/GlobalISel/IRTranslator.cpp
===================================================================
--- llvm-toolchain-7-7.orig/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ llvm-toolchain-7-7/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -763,9 +763,12 @@ bool IRTranslator::translateKnownIntrins
// instructions (in fact, they get ignored if they *do* exist).
MF->setVariableDbgInfo(DI.getVariable(), DI.getExpression(),
getOrCreateFrameIndex(*AI), DI.getDebugLoc());
- } else
- MIRBuilder.buildDirectDbgValue(getOrCreateVReg(*Address),
- DI.getVariable(), DI.getExpression());
+ } else {
+ // A dbg.declare describes the address of a source variable, so lower it
+ // into an indirect DBG_VALUE.
+ MIRBuilder.buildIndirectDbgValue(getOrCreateVReg(*Address),
+ DI.getVariable(), DI.getExpression());
+ }
return true;
}
case Intrinsic::vaend:
Index: llvm-toolchain-7-7/test/CodeGen/AArch64/GlobalISel/debug-cpp.ll
===================================================================
--- /dev/null
<