From ec06d9e4e109a174067a0a45243100ccc973966e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 18 Oct 2018 16:42:58 +0200 Subject: [PATCH 1/2] * Apply hurd fixes (Closes: #908847). - hurd-lib_Support_Unix_Path.inc.diff - hurd-pathmax.diff - hurd-tools_llvm-shlib_CMakeLists.txt.diff --- debian/changelog | 10 ++++ .../hurd-lib_Support_Unix_Path.inc.diff | 52 +++++++++++++++++++ debian/patches/hurd-pathmax.diff | 16 ++++++ .../hurd-tools_llvm-shlib_CMakeLists.txt.diff | 12 +++++ debian/patches/series | 3 ++ debian/rules | 2 +- 6 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 debian/patches/hurd-lib_Support_Unix_Path.inc.diff create mode 100644 debian/patches/hurd-tools_llvm-shlib_CMakeLists.txt.diff diff --git a/debian/changelog b/debian/changelog index 61d6d8c4..be6a2bdf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,16 @@ llvm-toolchain-6.0 (1:6.0.1-10) UNRELEASED; urgency=medium -- John Paul Adrian Glaubitz Sat, 15 Sep 2018 09:35:13 +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 Tue, 16 Oct 2018 20:18:39 +0000 + llvm-toolchain-6.0 (1:6.0.1-9) unstable; urgency=medium [ John Paul Adrian Glaubitz ] diff --git a/debian/patches/hurd-lib_Support_Unix_Path.inc.diff b/debian/patches/hurd-lib_Support_Unix_Path.inc.diff new file mode 100644 index 00000000..2aabaf3d --- /dev/null +++ b/debian/patches/hurd-lib_Support_Unix_Path.inc.diff @@ -0,0 +1,52 @@ +Index: llvm-toolchain-6.0-6.0.1/lib/Support/Unix/Path.inc +=================================================================== +--- llvm-toolchain-6.0-6.0.1.orig/lib/Support/Unix/Path.inc ++++ llvm-toolchain-6.0-6.0.1/lib/Support/Unix/Path.inc +@@ -98,7 +98,7 @@ + #define STATVFS_F_FRSIZE(vfs) static_cast(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 +@@ -111,7 +111,7 @@ namespace sys { + namespace fs { + #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) + { +@@ -187,7 +187,7 @@ std::string getMainExecutable(const char + + if (getprogpath(exe_path, argv0) != NULL) + return exe_path; +-#elif defined(__linux__) || defined(__CYGWIN__) ++#elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) + char exe_path[MAXPATHLEN]; + StringRef aPath("/proc/self/exe"); + if (sys::fs::exists(aPath)) { +@@ -360,7 +360,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 +@@ -370,7 +370,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: diff --git a/debian/patches/hurd-pathmax.diff b/debian/patches/hurd-pathmax.diff index 724e262f..d68cd4c1 100644 --- a/debian/patches/hurd-pathmax.diff +++ b/debian/patches/hurd-pathmax.diff @@ -75,3 +75,19 @@ Index: llvm-toolchain-snapshot_6.0~svn317126/polly/lib/External/ppcg/cuda_common /* 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 &RealPath) { + #ifdef LLVM_ON_UNIX diff --git a/debian/patches/hurd-tools_llvm-shlib_CMakeLists.txt.diff b/debian/patches/hurd-tools_llvm-shlib_CMakeLists.txt.diff new file mode 100644 index 00000000..987e2db4 --- /dev/null +++ b/debian/patches/hurd-tools_llvm-shlib_CMakeLists.txt.diff @@ -0,0 +1,12 @@ +Index: llvm-toolchain-6.0-6.0.1/tools/llvm-shlib/CMakeLists.txt +=================================================================== +--- llvm-toolchain-6.0-6.0.1.orig/tools/llvm-shlib/CMakeLists.txt ++++ llvm-toolchain-6.0-6.0.1/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 "DragonFly") + OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf" + configure_file( diff --git a/debian/patches/series b/debian/patches/series index 793394e9..f0d1e58e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -69,3 +69,6 @@ rL338481-cherry-pick-really-subtle-miscompile.diff disable-sse2-old-x86.diff powerpcspe-add-missing-include-path.diff x32-fix-driver-search-paths.diff +hurd-lib_Support_Unix_Path.inc.diff +hurd-tools_llvm-shlib_CMakeLists.txt.diff + diff --git a/debian/rules b/debian/rules index 4e2c2e78..8a12bb32 100755 --- a/debian/rules +++ b/debian/rules @@ -84,7 +84,7 @@ else control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev' endif -BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el sparc sparc64 x32 s390x +BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el sparc sparc64 x32 s390x hurd-i386 ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.23.1-1~exp3 ; echo $$?),0) ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS))) # -fused-ld=gold enables the gold linker (but is not supported by all archs / distro) From 409d2272a83a9bfceb2433f8cd0e8029f413fed5 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 18 Oct 2018 16:43:45 +0200 Subject: [PATCH 2/2] fix the changelog date --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index be6a2bdf..3091889d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,7 +3,7 @@ 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 - -- John Paul Adrian Glaubitz Sat, 15 Sep 2018 09:35:13 +0200 + -- Sylvestre Ledru Thu, 18 Oct 2018 16:43:31 +0200 llvm-toolchain-6.0 (1:6.0.1-9.1) unstable; urgency=medium