llvm: Add recipe for 5.0
cover llvm: Add recipe for 5.0
Create a recipe just for building llvm, which is needed by many other packages e.g. mesa can use it for llvmpipe
The following changes since commit 28fc6ba761ed4a47efa7c43e7f7dff5e2fe72b5e:
core-image-minimal-initramfs: use initramfs-framework by default (2017-07-27 22:20:16 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/llvm
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=kraj/llvm
Khem Raj (1):
llvm: Add recipe for 5.0
...LibraryInfo-Undefine-libc-functions-if-th.patch | 93 ++++++++++++ .../0002-llvm-allow-env-override-of-exe-path.patch | 39 +++++ meta/recipes-devtools/llvm/llvm_git.bb | 169 +++++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch create mode 100644 meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch create mode 100644 meta/recipes-devtools/llvm/llvm_git.bb
Signature · 1 line
2.13.3
PATCH 1/1 llvm: Add recipe for 5.0
Needed by mesa
Fixes
[YOCTO #11529]
Signed-off-by Khem Raj <[email protected]>
--- ...LibraryInfo-Undefine-libc-functions-if-th.patch | 93 ++++++++++++ .../0002-llvm-allow-env-override-of-exe-path.patch | 39 +++++ meta/recipes-devtools/llvm/llvm_git.bb | 169 +++++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch create mode 100644 meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch create mode 100644 meta/recipes-devtools/llvm/llvm_git.bb
meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch new file +93 -0
@@ -0,0 +1,93 @@ +From 28293e48cf1a52004c6a78de448718441f9e05f9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Sat, 21 May 2016 00:33:20 +0000 +Subject: [PATCH 1/2] llvm: TargetLibraryInfo: Undefine libc functions if they + are macros + +musl defines some functions as macros and not inline functions +if this is the case then make sure to undefine them + +Signed-off-by: Khem Raj <[email protected]> +--- +Upstream-Status: Pending + + include/llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def +index 9cbe917c146..aff8419cf54 100644 +--- a/include/llvm/Analysis/TargetLibraryInfo.def ++++ b/include/llvm/Analysis/TargetLibraryInfo.def +@@ -656,6 +656,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") + TLI_DEFINE_ENUM_INTERNAL(fopen) + TLI_DEFINE_STRING_INTERNAL("fopen") + /// FILE *fopen64(const char *filename, const char *opentype) ++#ifdef fopen64 ++#undef fopen64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fopen64) + TLI_DEFINE_STRING_INTERNAL("fopen64") + /// int fprintf(FILE *stream, const char *format, ...); +@@ -691,6 +694,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") + /// int fseeko(FILE *stream, off_t offset, int whence); + TLI_DEFINE_ENUM_INTERNAL(fseeko) + TLI_DEFINE_STRING_INTERNAL("fseeko") ++#ifdef fseeko64 ++#undef fseeko64 ++#endif + /// int fseeko64(FILE *stream, off64_t offset, int whence) + TLI_DEFINE_ENUM_INTERNAL(fseeko64) + TLI_DEFINE_STRING_INTERNAL("fseeko64") +@@ -701,6 +707,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") + TLI_DEFINE_ENUM_INTERNAL(fstat) + TLI_DEFINE_STRING_INTERNAL("fstat") + /// int fstat64(int filedes, struct stat64 *buf) ++#ifdef fstat64 ++#undef fstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fstat64) + TLI_DEFINE_STRING_INTERNAL("fstat64") + /// int fstatvfs(int fildes, struct statvfs *buf); +@@ -716,6 +725,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") + TLI_DEFINE_ENUM_INTERNAL(ftello) + TLI_DEFINE_STRING_INTERNAL("ftello") + /// off64_t ftello64(FILE *stream) ++#ifdef ftello64 ++#undef ftello64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(ftello64) + TLI_DEFINE_STRING_INTERNAL("ftello64") + /// int ftrylockfile(FILE *file); +@@ -836,6 +848,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") + TLI_DEFINE_ENUM_INTERNAL(lstat) + TLI_DEFINE_STRING_INTERNAL("lstat") + /// int lstat64(const char *path, struct stat64 *buf); ++#ifdef lstat64 ++#undef lstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(lstat64) + TLI_DEFINE_STRING_INTERNAL("lstat64") + /// void *malloc(size_t size); +@@ -1055,6 +1070,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") + TLI_DEFINE_ENUM_INTERNAL(stat) + TLI_DEFINE_STRING_INTERNAL("stat") + /// int stat64(const char *path, struct stat64 *buf); ++#ifdef stat64 ++#undef stat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(stat64) + TLI_DEFINE_STRING_INTERNAL("stat64") + /// int statvfs(const char *path, struct statvfs *buf); +@@ -1184,6 +1202,9 @@ TLI_DEFINE_STRING_INTERNAL("times") + TLI_DEFINE_ENUM_INTERNAL(tmpfile) + TLI_DEFINE_STRING_INTERNAL("tmpfile") + /// FILE *tmpfile64(void) ++#ifdef tmpfile64 ++#undef tmpfile64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(tmpfile64) + TLI_DEFINE_STRING_INTERNAL("tmpfile64") + /// int toascii(int c); +-- +2.13.1 +
meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch new file +39 -0
@@ -0,0 +1,39 @@ +From d776487bac17650704614248d19d1e6b35775001 Mon Sep 17 00:00:00 2001 +From: Martin Kelly <[email protected]> +Date: Fri, 19 May 2017 00:22:57 -0700 +Subject: [PATCH 2/2] llvm: allow env override of exe path + +When using a native llvm-config from inside a sysroot, we need llvm-config to +return the libraries, include directories, etc. from inside the sysroot rather +than from the native sysroot. Thus provide an env override for calling +llvm-config from a target sysroot. + +Signed-off-by: Martin Kelly <[email protected]> +Signed-off-by: Khem Raj <[email protected]> +--- +Upstream-Status: Pending + + tools/llvm-config/llvm-config.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp +index 08b096afb05..d8d7742744e 100644 +--- a/tools/llvm-config/llvm-config.cpp ++++ b/tools/llvm-config/llvm-config.cpp +@@ -225,6 +225,13 @@ Typical components:\n\ + + /// \brief Compute the path to the main executable. + std::string GetExecutablePath(const char *Argv0) { ++ // Hack for Yocto: we need to override the root path when we are using ++ // llvm-config from within a target sysroot. ++ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); ++ if (Sysroot != nullptr) { ++ return Sysroot; ++ } ++ + // This just needs to be some symbol in the binary; C++ doesn't + // allow taking the address of ::main however. + void *P = (void *)(intptr_t)GetExecutablePath; +-- +2.13.1 +
meta/recipes-devtools/llvm/llvm_git.bb new file +169 -0
169 lines not on this page · raw message
Signature · 1 line
2.13.3