diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-cpp/glog | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'dev-cpp/glog')
| -rw-r--r-- | dev-cpp/glog/Manifest | 2 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch | 56 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch | 142 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch | 56 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.4.0-errnos.patch | 99 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch | 19 | ||||
| -rw-r--r-- | dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch | 35 | ||||
| -rw-r--r-- | dev-cpp/glog/glog-0.3.4-r1.ebuild | 48 | ||||
| -rw-r--r-- | dev-cpp/glog/glog-0.4.0.ebuild | 45 | ||||
| -rw-r--r-- | dev-cpp/glog/metadata.xml | 21 |
10 files changed, 523 insertions, 0 deletions
diff --git a/dev-cpp/glog/Manifest b/dev-cpp/glog/Manifest new file mode 100644 index 000000000000..70b9824bb8dc --- /dev/null +++ b/dev-cpp/glog/Manifest @@ -0,0 +1,2 @@ +DIST glog-0.3.4.tar.gz 522508 BLAKE2B 4a188d5998005b29afc52f2ea548f33e06a68da993bb74960e5aedb214ec52ef9e9fc39efb1a34f38f217b92df7db064ff01d58df36c3e4ad789becc97335ec2 SHA512 139525b546a9eccacc9bebf7cc3053ba52229e9488485ad45344c3d3134ca819d3b571250c0e3a6d84097009c8be89b0f4fa16ef5ec838ffcc237ae11c3a034c +DIST glog-0.4.0.tar.gz 200955 BLAKE2B 083da6117af3e85697724942bfcb5a7831d447666945b06b149d8d324231b10923887bd8c507e8027136d12bffd30a657cb225df8c449f234381e3876f132953 SHA512 b585f1819ade2075f6b61dc5aaca5c3f9d25601dba2bd08b6c49b96ac5f79db23c6b7f2042df003f7130497dd7241fcaa8b107d1f97385cb66ce52d3c554b176 diff --git a/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch b/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch new file mode 100644 index 000000000000..b6fa9cdb7374 --- /dev/null +++ b/dev-cpp/glog/files/glog-0.3.2-avoid-inline-asm.patch @@ -0,0 +1,56 @@ +http://code.google.com/p/google-glog/issues/detail?id=130 + +make the code work with all gcc targets + +--- a/src/symbolize_unittest.cc ++++ b/src/symbolize_unittest.cc +@@ -60,9 +60,7 @@ using namespace GOOGLE_NAMESPACE; + # endif // __i386__ + # else + # endif // __GNUC__ >= 4 +-# if defined(__i386__) || defined(__x86_64__) +-# define TEST_X86_32_AND_64 1 +-# endif // defined(__i386__) || defined(__x86_64__) ++# define TEST_WITH_LABEL_ADDRESSES + #endif + + // A wrapper function for Symbolize() to make the unit test simple. +@@ -289,22 +287,24 @@ TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) { + extern "C" { + inline void* always_inline inline_func() { + register void *pc = NULL; +-#ifdef TEST_X86_32_AND_64 +- __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc)); ++#ifdef TEST_WITH_LABEL_ADDRESSES ++ pc = &&curr_pc; ++ curr_pc: + #endif + return pc; + } + + void* ATTRIBUTE_NOINLINE non_inline_func() { + register void *pc = NULL; +-#ifdef TEST_X86_32_AND_64 +- __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc)); ++#ifdef TEST_WITH_LABEL_ADDRESSES ++ pc = &&curr_pc; ++ curr_pc: + #endif + return pc; + } + + void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() { +-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ATTRIBUTE_NOINLINE) ++#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ATTRIBUTE_NOINLINE) + void *pc = non_inline_func(); + const char *symbol = TrySymbolize(pc); + CHECK(symbol != NULL); +@@ -314,7 +314,7 @@ void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() { + } + + void ATTRIBUTE_NOINLINE TestWithPCInsideInlineFunction() { +-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ALWAYS_INLINE) ++#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ALWAYS_INLINE) + void *pc = inline_func(); // Must be inlined. + const char *symbol = TrySymbolize(pc); + CHECK(symbol != NULL); diff --git a/dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch b/dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch new file mode 100644 index 000000000000..cd38111bc81f --- /dev/null +++ b/dev-cpp/glog/files/glog-0.3.4-fix-build-system.patch @@ -0,0 +1,142 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -11,7 +11,7 @@ + AC_CONFIG_SRCDIR(README) + AC_CONFIG_MACRO_DIR([m4]) + AM_INIT_AUTOMAKE +-AM_CONFIG_HEADER(src/config.h) ++AC_CONFIG_HEADERS([src/config.h]) + + AC_LANG(C++) + +@@ -21,7 +21,7 @@ + AC_PROG_CXX + AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc + +-AC_PROG_LIBTOOL ++LT_INIT + AC_SUBST(LIBTOOL_DEPS) + + # Check whether some low-level functions/files are available +@@ -128,32 +128,48 @@ + fi + + # Check if there is google-gflags library installed. +-SAVE_CFLAGS="$CFLAGS" +-SAVE_LIBS="$LIBS" +-AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR], +- GFLAGS_CFLAGS="-I${with_gflags}/include" +- GFLAGS_LIBS="-L${with_gflags}/lib -lgflags" +- CFLAGS="$CFLAGS $GFLAGS_CFLAGS" +- LIBS="$LIBS $GFLAGS_LIBS" +-) +-AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0) +-if test x"$ac_cv_have_libgflags" = x"1"; then +- AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library]) +- if test x"$GFLAGS_LIBS" = x""; then +- GFLAGS_LIBS="-lgflags" +- fi +-else +- GFLAGS_CFLAGS= +- GFLAGS_LIBS= +-fi +-CFLAGS="$SAVE_CFLAGS" +-LIBS="$SAVE_LIBS" ++AC_ARG_ENABLE([gflags], ++ AS_HELP_STRING([--enable-gflags], [Enable google-gflags])) ++ ++ac_cv_have_libgflags=0 ++AS_IF([test "x$enable_gflags" != "xno"], [ ++ SAVE_CFLAGS="$CFLAGS" ++ SAVE_LIBS="$LIBS" ++ AC_ARG_WITH([gflags], AS_HELP_STRING([--with-gflags=GFLAGS_DIR]),[ ++ GFLAGS_CFLAGS="-I${with_gflags}/include" ++ GFLAGS_LIBS="-L${with_gflags}/lib -lgflags" ++ CFLAGS="$CFLAGS $GFLAGS_CFLAGS" ++ LIBS="$LIBS $GFLAGS_LIBS" ++ ]) ++ ++ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0) ++ CFLAGS="$SAVE_CFLAGS" ++ LIBS="$SAVE_LIBS" ++]) ++ ++AS_IF([test "x$ac_cv_have_libgflags" = "x1"], [ ++ AC_DEFINE([HAVE_LIB_GFLAGS], [1], [define if you have google gflags library]) ++ AS_IF([test "x$GFLAGS_LIBS" = "x"], [ ++ GFLAGS_LIBS="-lgflags" ++ ]) ++], [ ++ GFLAGS_CFLAGS= ++ GFLAGS_LIBS= ++]) + + # TODO(hamaji): Use official m4 macros provided by testing libraries + # once the m4 macro of Google Mocking becomes ready. + # Check if there is Google Test library installed. +-AC_CHECK_PROG(GTEST_CONFIG, gtest-config, "yes") +-AC_CHECK_LIB(gtest, main, have_gtest_lib="yes") ++AC_ARG_ENABLE([gtest-config], ++ AS_HELP_STRING([--enable-gtest-config], [Enable looking for gtest-config])) ++ ++AS_IF([test "x$enable_gtest_config" != "xno"], [ ++ AC_CHECK_PROG(GTEST_CONFIG, gtest-config, "yes") ++ AC_CHECK_LIB(gtest, main, have_gtest_lib="yes") ++], [ ++ have_gtest_lib="no" ++]) ++ + if test x"$GTEST_CONFIG" = "xyes" -a x"$have_gtest_lib" = "xyes"; then + GTEST_CFLAGS=`gtest-config --cppflags --cxxflags` + GTEST_LIBS=`gtest-config --ldflags --libs` +@@ -178,17 +194,13 @@ + AM_CONDITIONAL(HAVE_GMOCK, test x"$GMOCK_CONFIG" = "xyes") + + # We want to link in libunwind if it exists +-UNWIND_LIBS= +-# Unfortunately, we need to check the header file in addition to the +-# lib file to check if libunwind is available since libunwind-0.98 +-# doesn't install all necessary header files. +-if test x"$ac_cv_have_libunwind_h" = x"1"; then +- AC_CHECK_LIB(unwind, backtrace, UNWIND_LIBS=-lunwind) +-fi +-AC_SUBST(UNWIND_LIBS) +-if test x"$UNWIND_LIBS" != x""; then +- AC_DEFINE(HAVE_LIB_UNWIND, 1, [define if you have libunwind]) +-fi ++AC_ARG_ENABLE([unwind], ++ AS_HELP_STRING([--enable-unwind], [Enable libunwind])) ++ ++AS_IF([test "x$enable_unwind" != "xno"], [ ++ PKG_CHECK_MODULES([UNWIND], [libunwind > 0.98]) ++ AC_DEFINE([HAVE_LIB_UNWIND], [1], [define if you have libunwind]) ++]) + + # We'd like to use read/write locks in several places in the code. + # See if our pthreads support extends to that. Note: for linux, it +--- a/Makefile.am ++++ b/Makefile.am +@@ -40,12 +40,11 @@ + nodist_gloginclude_HEADERS = src/glog/logging.h src/glog/raw_logging.h src/glog/vlog_is_on.h src/glog/stl_logging.h + noinst_HEADERS = src/glog/logging.h.in src/glog/raw_logging.h.in src/glog/vlog_is_on.h.in src/glog/stl_logging.h.in + +-docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION) + ## This is for HTML and other documentation you want to install. + ## Add your documentation files (in doc/) in addition to these + ## top-level boilerplate files. Also add a TODO file if you have one. +-dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README.windows \ +- doc/designstyle.css doc/glog.html ++dist_doc_DATA = AUTHORS ChangeLog INSTALL NEWS README ++dist_html_DATA = doc/designstyle.css doc/glog.html + + ## The libraries (.so's) you want to install + lib_LTLIBRARIES = +@@ -215,7 +214,7 @@ + + ## This should always include $(TESTS), but may also include other + ## binaries that you compile but don't want automatically installed. +-noinst_PROGRAMS = $(TESTS) $(TEST_BINARIES) ++check_PROGRAMS = $(TESTS) $(TEST_BINARIES) + + rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec + @cd packages && ./rpm.sh ${PACKAGE} ${VERSION} diff --git a/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch b/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch new file mode 100644 index 000000000000..fd1518c68583 --- /dev/null +++ b/dev-cpp/glog/files/glog-0.3.4-fix-gcc5-demangling.patch @@ -0,0 +1,56 @@ +From b1639e3014996fbc7635870e013559c54e7e3b2f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?David=20Mart=C3=ADnez=20Moreno?= <ender@debian.org> +Date: Thu, 13 Aug 2015 09:31:26 -0700 +Subject: [PATCH] Fix ABI demangling for the GCC 5.x case. + +When glog is compiled with gcc-5.2 in cxx11 ABI mode, it barfs about unmangled symbols. This patches it getting inspiration from binutils and demangle.cc itself, although it may be totally wrong or maybe have to use ParseAbiTag in more places. I haven't read the spec for the symbols, though. + +This patch makes the demangle unit test pass correctly. +--- + src/demangle.cc | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/src/demangle.cc b/src/demangle.cc +index e858181..0f0c831 100644 +--- a/src/demangle.cc ++++ b/src/demangle.cc +@@ -439,6 +439,7 @@ static bool ParseExprPrimary(State *state); + static bool ParseLocalName(State *state); + static bool ParseDiscriminator(State *state); + static bool ParseSubstitution(State *state); ++static bool ParseAbiTag(State *state); + + // Implementation note: the following code is a straightforward + // translation of the Itanium C++ ABI defined in BNF with a couple of +@@ -567,6 +568,8 @@ static bool ParseNestedName(State *state) { + static bool ParsePrefix(State *state) { + bool has_something = false; + while (true) { ++ if (ParseAbiTag(state)) ++ continue; + MaybeAppendSeparator(state); + if (ParseTemplateParam(state) || + ParseSubstitution(state) || +@@ -585,6 +588,22 @@ static bool ParsePrefix(State *state) { + return true; + } + ++// <abi-tag> ::= B <source-name> ++static bool ParseAbiTag(State *state) { ++ State copy = *state; ++ ++ Append(state, "[", 1); ++ if (ParseOneCharToken(state, 'B') && ++ ParseSourceName(state)) ++ { ++ Append(state, "]", 1); ++ return true; ++ } ++ ++ *state = copy; ++ return false; ++} ++ + // <unqualified-name> ::= <operator-name> + // ::= <ctor-dtor-name> + // ::= <source-name> diff --git a/dev-cpp/glog/files/glog-0.4.0-errnos.patch b/dev-cpp/glog/files/glog-0.4.0-errnos.patch new file mode 100644 index 000000000000..c55716db1ba2 --- /dev/null +++ b/dev-cpp/glog/files/glog-0.4.0-errnos.patch @@ -0,0 +1,99 @@ +Index: b/src/googletest.h +=================================================================== +--- a/src/googletest.h ++++ b/src/googletest.h +@@ -437,6 +437,18 @@ static inline void StringReplace(string* + } + } + ++static inline void IntReplace(string* str, ++ const string& oldsub, ++ int newsub) { ++ size_t pos = str->find(oldsub); ++ if (pos != string::npos) { ++ std::ostringstream ss; ++ ss << newsub; ++ const std::string x = ss.str(); ++ str->replace(pos, oldsub.size(), x.c_str()); ++ } ++} ++ + static inline string Munge(const string& filename) { + FILE* fp = fopen(filename.c_str(), "rb"); + CHECK(fp != NULL) << filename << ": couldn't open"; +@@ -452,9 +464,13 @@ static inline string Munge(const string& + + StringReplace(&line, "__SUCCESS__", StrError(0)); + StringReplace(&line, "__ENOENT__", StrError(ENOENT)); ++ IntReplace(&line, "__ENOENT_NUM__", ENOENT); + StringReplace(&line, "__EINTR__", StrError(EINTR)); ++ IntReplace(&line, "__EINTR_NUM__", EINTR); + StringReplace(&line, "__ENXIO__", StrError(ENXIO)); ++ IntReplace(&line, "__ENXIO_NUM__", ENXIO); + StringReplace(&line, "__ENOEXEC__", StrError(ENOEXEC)); ++ IntReplace(&line, "__ENOEXEC_NUM__", ENOEXEC); + result += line + "\n"; + } + fclose(fp); +Index: b/src/logging_unittest.cc +=================================================================== +--- a/src/logging_unittest.cc ++++ b/src/logging_unittest.cc +@@ -238,6 +238,17 @@ int main(int argc, char **argv) { + return 0; + } + ++static int errnoForIteration(int i) { ++ switch (i) { ++ case 0: return 0; ++ case 2: return ENOENT; ++ case 4: return EINTR; ++ case 6: return ENXIO; ++ case 8: return ENOEXEC; ++ } ++ return -1; ++} ++ + void TestLogging(bool check_counts) { + int64 base_num_infos = LogMessage::num_messages(GLOG_INFO); + int64 base_num_warning = LogMessage::num_messages(GLOG_WARNING); +@@ -246,7 +257,7 @@ void TestLogging(bool check_counts) { + LOG(INFO) << string("foo ") << "bar " << 10 << ' ' << 3.4; + for ( int i = 0; i < 10; ++i ) { + int old_errno = errno; +- errno = i; ++ errno = errnoForIteration(i); + PLOG_EVERY_N(ERROR, 2) << "Plog every 2, iteration " << COUNTER; + errno = old_errno; + +Index: b/src/logging_unittest.err +=================================================================== +--- a/src/logging_unittest.err ++++ b/src/logging_unittest.err +@@ -51,21 +51,21 @@ WDATE TIME__ THREADID logging_unittest.c + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 1 + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 1 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 2 +-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [2] ++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [__ENOENT_NUM__] + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 3 + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 3 + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 4 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 4 +-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [4] ++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [__EINTR_NUM__] + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 5 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 5 + WDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 5, iteration 6 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 6 +-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [6] ++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [__ENXIO_NUM__] + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 7 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 7 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 8 +-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [8] ++EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [__ENOEXEC_NUM__] + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 9 + IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 9 + EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 10 + diff --git a/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch b/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch new file mode 100644 index 000000000000..392ae8ca7819 --- /dev/null +++ b/dev-cpp/glog/files/glog-0.4.0-fix-test-on-ports.patch @@ -0,0 +1,19 @@ +Index: google-glog-0.3.2/src/signalhandler_unittest.sh +=================================================================== +--- google-glog-0.3.2.orig/src/signalhandler_unittest.sh 2013-03-13 13:49:37.820188111 -0400 ++++ google-glog-0.3.2/src/signalhandler_unittest.sh 2013-03-13 14:07:11.980204520 -0400 +@@ -65,10 +65,10 @@ + exit 0 + fi + +-# The PC cannot be obtained in signal handlers on PowerPC correctly. +-# We just skip the test for PowerPC. +-if [ x`uname -p` = x"powerpc" ]; then +- echo "PASS (We don't test the signal handler on PowerPC.)" ++# This test only works correctly on i386 and amd64. ++# We just skip the test when not on those platforms. ++if [ x`uname -m` != x"x86_64" -a x`uname -m` != x"i686" ]; then ++ echo "PASS (We only test the signal handler on i386 or amd64.)" + exit 0 + fi + diff --git a/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch b/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch new file mode 100644 index 000000000000..e53318ac66ff --- /dev/null +++ b/dev-cpp/glog/files/glog-0.4.0-fix-x32-build.patch @@ -0,0 +1,35 @@ +Description: fix FTBFS on x32 +Author: Guillaume Morin <guillaume@morinfr.org> +Forwarded: no +Last-Update: 2019-08-05 + +--- + +--- google-glog-0.3.4.orig/src/symbolize_unittest.cc ++++ google-glog-0.3.4/src/symbolize_unittest.cc +@@ -313,8 +313,12 @@ extern "C" { + inline void* always_inline inline_func() { + void *pc = NULL; + #ifdef TEST_X86_32_AND_64 ++#if __x86_64__ || (__x86_64__ && __ILP32__) ++ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc)); ++#else + __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc)); + #endif ++#endif + return pc; + } + +@@ -322,8 +326,12 @@ void* ATTRIBUTE_NOINLINE non_inline_func + void* ATTRIBUTE_NOINLINE non_inline_func() { + void *pc = NULL; + #ifdef TEST_X86_32_AND_64 ++#if __x86_64__ || (__x86_64__ && __ILP32__) ++ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc)); ++#else + __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc)); + #endif ++#endif + return pc; + } + diff --git a/dev-cpp/glog/glog-0.3.4-r1.ebuild b/dev-cpp/glog/glog-0.3.4-r1.ebuild new file mode 100644 index 000000000000..956b6b8554d3 --- /dev/null +++ b/dev-cpp/glog/glog-0.3.4-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools multilib-minimal + +DESCRIPTION="Google's C++ logging library" +HOMEPAGE="https://github.com/google/glog" +SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux" +IUSE="gflags static-libs test unwind" +RESTRICT="test" + +RDEPEND=" + gflags? ( >=dev-cpp/gflags-2.0-r1[${MULTILIB_USEDEP}] ) + unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.2-avoid-inline-asm.patch + "${FILESDIR}"/${PN}-0.3.4-fix-build-system.patch + "${FILESDIR}"/${PN}-0.3.4-fix-gcc5-demangling.patch +) + +src_prepare() { + default + eautoreconf +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_enable gflags) \ + $(use_enable static-libs static) \ + $(use_enable test gtest-config) \ + $(use_enable unwind) +} + +multilib_src_install_all() { + einstalldocs + + # package provides .pc files + find "${D}" -name '*.la' -delete || die +} diff --git a/dev-cpp/glog/glog-0.4.0.ebuild b/dev-cpp/glog/glog-0.4.0.ebuild new file mode 100644 index 000000000000..ee01c40ca927 --- /dev/null +++ b/dev-cpp/glog/glog-0.4.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 2011-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit autotools multilib-minimal + +DESCRIPTION="Google's C++ logging library" +HOMEPAGE="https://github.com/google/glog" +SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 x86 ~amd64-linux ~x86-linux" +IUSE="gflags static-libs test" +RESTRICT="test" + +RDEPEND="sys-libs/libunwind[${MULTILIB_USEDEP}] + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.4.0-fix-x32-build.patch + "${FILESDIR}"/${PN}-0.4.0-errnos.patch + "${FILESDIR}"/${PN}-0.4.0-fix-test-on-ports.patch +) + +src_prepare() { + default + eautoreconf +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_enable static-libs static) \ + ac_cv_lib_gflags_main="$(usex gflags)" +} + +multilib_src_install_all() { + einstalldocs + + # package provides .pc files + find "${D}" -name '*.la' -delete || die +} diff --git a/dev-cpp/glog/metadata.xml b/dev-cpp/glog/metadata.xml new file mode 100644 index 000000000000..f17849aa9712 --- /dev/null +++ b/dev-cpp/glog/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>arfrever.fta@gmail.com</email> + <name>Arfrever Frehtes Taifersar Arahesis</name> + </maintainer> + <maintainer type="person"> + <email>floppym@gentoo.org</email> + <name>Mike Gilbert</name> + <description>Proxy</description> + </maintainer> + <use> + <flag name="gflags">Use <pkg>dev-cpp/gflags</pkg> for flag parsing</flag> + <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> for stack unwinding instead of glibc/gcc (may be more reliable on x86_64)</flag> + </use> + <upstream> + <remote-id type="github">google/glog</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> |
