Commit d8240306 authored by Marius Wachtler's avatar Marius Wachtler Committed by GitHub

Merge pull request #1350 from Daetalus/building_issue

Let Pyston compatible with GCC 5.x
parents 2783ab4e b64c5252
...@@ -51,7 +51,6 @@ addons: ...@@ -51,7 +51,6 @@ addons:
- libtool - libtool
- ninja-build - ninja-build
- python-dev - python-dev
- texlive-extra-utils
- libcurl4-openssl-dev - libcurl4-openssl-dev
- libxml2-dev - libxml2-dev
- libxslt1-dev - libxslt1-dev
......
...@@ -187,6 +187,7 @@ set(LIBUNWIND_PATCHES ...@@ -187,6 +187,7 @@ set(LIBUNWIND_PATCHES
${CMAKE_SOURCE_DIR}/libunwind_patches/0001-pyston-add-lots-of-comments.patch ${CMAKE_SOURCE_DIR}/libunwind_patches/0001-pyston-add-lots-of-comments.patch
${CMAKE_SOURCE_DIR}/libunwind_patches/0002-pyston-stop-x86_64-setcontext-restoring-uninitialize.patch ${CMAKE_SOURCE_DIR}/libunwind_patches/0002-pyston-stop-x86_64-setcontext-restoring-uninitialize.patch
${CMAKE_SOURCE_DIR}/libunwind_patches/0003-use-a-sorted-array-for-registered-objects-and-do-a-b.patch ${CMAKE_SOURCE_DIR}/libunwind_patches/0003-use-a-sorted-array-for-registered-objects-and-do-a-b.patch
${CMAKE_SOURCE_DIR}/libunwind_patches/0004-disable-libunwind-doc-generation.patch
${CMAKE_SOURCE_DIR}/libunwind_patches/9999-is-patched-marker.patch ${CMAKE_SOURCE_DIR}/libunwind_patches/9999-is-patched-marker.patch
) )
......
...@@ -14,18 +14,18 @@ sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test ...@@ -14,18 +14,18 @@ sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
sudo add-apt-repository --yes ppa:kubuntu-ppa/backports sudo add-apt-repository --yes ppa:kubuntu-ppa/backports
sudo apt-get -qq update sudo apt-get -qq update
sudo apt-get install -yq git cmake ninja-build ccache libncurses5-dev liblzma-dev libreadline-dev libgmp3-dev libmpfr-dev autoconf libtool python-dev texlive-extra-utils clang-3.4 libstdc++-4.8-dev libssl-dev libsqlite3-dev pkg-config libbz2-dev sudo apt-get install -yq git cmake ninja-build ccache libncurses5-dev liblzma-dev libreadline-dev libgmp3-dev libmpfr-dev autoconf libtool python-dev clang-3.4 libstdc++-4.8-dev libssl-dev libsqlite3-dev pkg-config libbz2-dev
``` ```
**Ubuntu 14.04/14.10/15.04** **Ubuntu 14.04/14.10/15.04**
``` ```
sudo apt-get install -yq automake git cmake ninja-build ccache libncurses5-dev liblzma-dev libreadline-dev libgmp3-dev libmpfr-dev autoconf libtool python-dev texlive-extra-utils clang libssl-dev libsqlite3-dev pkg-config libbz2-dev sudo apt-get install -yq automake git cmake ninja-build ccache libncurses5-dev liblzma-dev libreadline-dev libgmp3-dev libmpfr-dev autoconf libtool python-dev clang libssl-dev libsqlite3-dev pkg-config libbz2-dev
``` ```
**Fedora 21** **Fedora 21**
``` ```
sudo yum install git make cmake clang gcc gcc-c++ ccache ninja-build xz-devel automake libtool gmp-devel mpfr-devel readline-devel openssl-devel sqlite-devel python-devel zlib-devel bzip2-devel ncurses-devel texlive-latex2man libffi-devel sudo yum install git make cmake clang gcc gcc-c++ ccache ninja-build xz-devel automake libtool gmp-devel mpfr-devel readline-devel openssl-devel sqlite-devel python-devel zlib-devel bzip2-devel ncurses-devel libffi-devel
``` ```
### Additional prerequisites for running the integration tests ### Additional prerequisites for running the integration tests
......
From 6ec1c9e847dda96f0acda8d63681cbd50f5d2e2b Mon Sep 17 00:00:00 2001
From: Boxiang Sun <daetalusun@gmail.com>
Date: Wed, 31 Aug 2016 17:00:49 +0800
Subject: [PATCH] disable libunwind doc generation.
Currently we don't need libunwind to generate documentation. This can
avoid to force use install texlive.
---
doc/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 2534066..3a516c3 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -49,8 +49,8 @@ EXTRA_DIST = NOTES libunwind.trans \
_U_dyn_cancel.tex \
$(man3_MANS)
-L2M = latex2man
-L2P = pdflatex
+L2M = echo
+L2P = echo
L2M_CMD = $(L2M) -t $(srcdir)/libunwind.trans
L2H_CMD = $(L2M) -H -t $(srcdir)/libunwind.trans
--
1.9.1
...@@ -258,7 +258,7 @@ private: ...@@ -258,7 +258,7 @@ private:
assert(name->vreg == -1); assert(name->vreg == -1);
// skip // skip
} else { } else {
RELEASE_ASSERT(0, "%d", name->lookup_type); RELEASE_ASSERT(0, "%d", static_cast<int>(name->lookup_type));
} }
break; break;
} }
......
...@@ -323,7 +323,13 @@ private: ...@@ -323,7 +323,13 @@ private:
public: public:
template <typename Functor> SmallFunction(Functor&& f) noexcept { template <typename Functor> SmallFunction(Functor&& f) noexcept {
static_assert(std::has_trivial_copy_constructor<typename std::remove_reference<Functor>::type>::value, // workaround missing "is_trivially_copy_constructible" in g++ < 5.0
#if __GNUG__ && __GNUC__ < 5
#define IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T) std::has_trivial_copy_constructor<T>::value
#else
#define IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T) std::is_trivially_copy_constructible<T>::value
#endif
static_assert(IS_TRIVIALLY_COPY_CONSTRUCTIBLE(typename std::remove_reference<Functor>::type),
"SmallFunction currently only works with simple types"); "SmallFunction currently only works with simple types");
static_assert(std::is_trivially_destructible<typename std::remove_reference<Functor>::type>::value, static_assert(std::is_trivially_destructible<typename std::remove_reference<Functor>::type>::value,
"SmallFunction currently only works with simple types"); "SmallFunction currently only works with simple types");
......
...@@ -266,7 +266,7 @@ CompiledFunction* compileFunction(FunctionMetadata* f, FunctionSpecialization* s ...@@ -266,7 +266,7 @@ CompiledFunction* compileFunction(FunctionMetadata* f, FunctionSpecialization* s
break; break;
} }
default: default:
RELEASE_ASSERT(0, "%d", effort); RELEASE_ASSERT(0, "%d", static_cast<int>(effort));
} }
// free the bjit code if this is not a OSR compilation // free the bjit code if this is not a OSR compilation
......
...@@ -140,7 +140,7 @@ public: ...@@ -140,7 +140,7 @@ public:
void assertReturnConvention(ReturnConvention required_convention) { void assertReturnConvention(ReturnConvention required_convention) {
assert(isSuccessful()); assert(isSuccessful());
ASSERT(this->out_return_convention == required_convention, "user asked for convention %d but got %d", ASSERT(this->out_return_convention == required_convention, "user asked for convention %d but got %d",
required_convention, this->out_return_convention); static_cast<int>(required_convention), static_cast<int>((this->out_return_convention)));
#ifndef NDEBUG #ifndef NDEBUG
return_convention_checked = true; return_convention_checked = true;
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment