Package Details: clang50 5.0.2-6

Git Clone URL: https://aur.archlinux.org/llvm50.git (read-only)
Package Base: llvm50
Description: C language family frontend for LLVM
Upstream URL: http://clang.llvm.org/
Licenses: custom:University of Illinois/NCSA Open Source License
Submitter: SolarAquarion
Maintainer: SolarAquarion (kgizdov)
Last Packager: kgizdov
Votes: 3
Popularity: 0.265492
First Submitted: 2017-11-19 18:17
Last Updated: 2018-10-14 23:26

Latest Comments

1 2 Next › Last »

kgizdov commented on 2018-10-14 13:59

@JP-Ellis, yeah, 'ocaml_doc' is only enabled if ocaml-ctypes is installed. Since this package doesn't include the OCaml bindings anyway, I've disable it.

JP-Ellis commented on 2018-10-09 03:57

Unfortunately, this PKGBUILD fails for me. In particular, I'm unable to complete the make ocaml_doc step as it errors with:

make: *** No rule to make target 'ocaml_doc'.  Stop.

After commenting out that step, everything works fine. Note that I do not have ocaml installed.

kgizdov commented on 2018-10-07 19:28

@SolarAquarion, I think should do it. thanks

SolarAquarion commented on 2018-10-06 13:31

@kgizdov i added you as a co-maintainer

SolarAquarion commented on 2018-10-05 15:59

I didn't see that patch unfortunately, lol

kgizdov commented on 2018-10-05 15:35

patch is here

kgizdov commented on 2018-10-05 15:29

With the patch, which I took from the official gcc6 package, you can compile with the current ver of glibc. Thus you don't need to recompile glibc itself. It's only a small header fix. Isn't that better than requiring a completely separate glibc?

SolarAquarion commented on 2018-10-05 14:22

It's actually needs a old version of glibc but the question is which version

kgizdov commented on 2018-09-20 15:49

Also, I found a bug in the PKGBUILD. llvm-libs does not correctly link to the libs in llvm-5.0 in the packaging step and the link command fails because of too many recursive links. I've patched it a bit simple now like so:

-  cd ${pkgdir}${_prefix}/lib/
-  ln -s lib{LLVM,LTO}*.so* $pkgdir/usr/lib
+  cd ${pkgdir}/usr/lib
+  ln -s llvm-5.0/lib/lib{LLVM,LTO}*.so* ./

but a better change would be to link all variants individually with the full path and only to the actual libs not he other symlinks of the libs.

kgizdov commented on 2018-09-20 14:16

I'm getting an error on latest GCC because ustat.h has been depricated and removed from ArchLinux:

llvm-5.0.2.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc:162:10: fatal error: sys/ustat.h: No such file or directory
 #include <sys/ustat.h>
          ^~~~~~~~~~~~~

I'm guessing this has a patch available somewhere upstream?

EDIT: Took the patch from gcc6 and adapted it. Works for me:

diff -aur llvm-5.0.2.src.old/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc llvm-5.0.2.src.new/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
--- llvm-5.0.2.src.old/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-09-20 16:22:48.828377892 +0200
+++ llvm-5.0.2.src.new/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-09-20 16:23:32.361128588 +0200
@@ -159,7 +159,6 @@
 # include <sys/procfs.h>
 #endif
 #include <sys/user.h>
-#include <sys/ustat.h>
 #include <linux/cyclades.h>
 #include <linux/if_eql.h>
 #include <linux/if_plip.h>
@@ -251,7 +251,19 @@
 #endif // SANITIZER_LINUX || SANITIZER_FREEBSD

 #if SANITIZER_LINUX && !SANITIZER_ANDROID
-  unsigned struct_ustat_sz = sizeof(struct ustat);
+// Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
+// has been removed from glibc 2.28.
+#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
+  || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
+  || defined(__x86_64__)
+#define SIZEOF_STRUCT_USTAT 32
+#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
+  || defined(__powerpc__) || defined(__s390__)
+#define SIZEOF_STRUCT_USTAT 20
+#else
+#error Unknown size of struct ustat
+#endif
+  unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
   unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
   unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
 #endif // SANITIZER_LINUX && !SANITIZER_ANDROID