[
https://issues.apache.org/jira/browse/THRIFT-2127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13921212#comment-13921212
]
JF Gauvin commented on THRIFT-2127:
-----------------------------------
Thanks for your comments. It's now compiling, but only when I'm not using
libevent and zlib (checking version fail). Notice that I uninstalled Boost,
libevent and zlib (dev).
I've attached the patch. But, I'm not sure if removing AC_FUNC_MALLOC and
AC_FUNC_REALLOC in configure.ac is the best thing to do.
{code}
diff -rupN thrift-0.9.1.orig/aclocal/ax_boost_base.m4
thrift-0.9.1/aclocal/ax_boost_base.m4
--- thrift-0.9.1.orig/aclocal/ax_boost_base.m4 2013-08-15 10:04:29.000000000
-0400
+++ thrift-0.9.1/aclocal/ax_boost_base.m4 2014-03-05 08:48:10.198227434
-0500
@@ -72,7 +72,7 @@ if test "x$want_boost" = "xyes"; then
BOOST_CPPFLAGS="-I$ac_boost_path/include"
BOOST_ROOT_PATH="$ac_boost_path"
else
- for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
+ for ac_boost_path_tmp in $lt_sysroot/usr $lt_sysroot/usr/local
$lt_sysroot/opt $lt_sysroot/opt/local ; do
if test -d "$ac_boost_path_tmp/include/boost" && test
-r "$ac_boost_path_tmp/include/boost"; then
BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
@@ -129,7 +129,7 @@ if test "x$want_boost" = "xyes"; then
done
fi
else
- for ac_boost_path in /usr /usr/local /opt /opt/local ;
do
+ for ac_boost_path in $lt_sysroot/usr
$lt_sysroot/usr/local $lt_sysroot/opt $lt_sysroot/opt/local ; do
if test -d "$ac_boost_path" && test -r
"$ac_boost_path"; then
for i in `ls -d
$ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed
"s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
diff -rupN thrift-0.9.1.orig/aclocal/ax_lib_event.m4
thrift-0.9.1/aclocal/ax_lib_event.m4
--- thrift-0.9.1.orig/aclocal/ax_lib_event.m4 2013-08-15 10:04:29.000000000
-0400
+++ thrift-0.9.1/aclocal/ax_lib_event.m4 2014-03-05 08:48:10.198227434
-0500
@@ -75,7 +75,7 @@ AC_DEFUN([AX_LIB_EVENT_DO_CHECK],
AC_LANG_PUSH([C])
dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling,
dnl but then the version cannot be checked.
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <event.h>
]], [[
@@ -165,7 +165,7 @@ AC_DEFUN([AX_LIB_EVENT],
if test -n "$ax_libevent_path"; then
AX_LIB_EVENT_DO_CHECK
else
- for ax_libevent_path in "" /usr /usr/local /opt /opt/local
/opt/libevent "$LIBEVENT_ROOT" ; do
+ for ax_libevent_path in "" $lt_sysroot/usr $lt_sysroot/usr/local
$lt_sysroot/opt $lt_sysroot/opt/local $lt_sysroot/opt/libevent "$LIBEVENT_ROOT"
; do
AX_LIB_EVENT_DO_CHECK
if test "$success" = "yes"; then
break;
diff -rupN thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4
thrift-0.9.1/aclocal/ax_lib_zlib.m4
--- thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4 2013-08-15 10:04:29.000000000
-0400
+++ thrift-0.9.1/aclocal/ax_lib_zlib.m4 2014-03-05 08:48:10.198227434 -0500
@@ -73,7 +73,7 @@ AC_DEFUN([AX_LIB_ZLIB_DO_CHECK],
# (defined in the library).
AC_LANG_PUSH([C])
dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling.
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <zlib.h>
#if ZLIB_VERNUM >= 0x$WANT_ZLIB_VERSION
#else
@@ -145,7 +145,7 @@ AC_DEFUN([AX_LIB_ZLIB],
if test -n "$ax_zlib_path"; then
AX_LIB_ZLIB_DO_CHECK
else
- for ax_zlib_path in "" /usr /usr/local /opt /opt/zlib
"$ZLIB_ROOT" ; do
+ for ax_zlib_path in "" $lt_sysroot/usr $lt_sysroot/usr/local
$lt_sysroot/opt $lt_sysroot/opt/zlib "$ZLIB_ROOT" ; do
AX_LIB_ZLIB_DO_CHECK
if test "$success" = "yes"; then
break;
diff -rupN thrift-0.9.1.orig/configure.ac thrift-0.9.1/configure.ac
--- thrift-0.9.1.orig/configure.ac 2013-08-18 11:28:23.000000000 -0400
+++ thrift-0.9.1/configure.ac 2014-03-05 08:48:10.242260764 -0500
@@ -214,7 +214,6 @@ AX_THRIFT_LIB(php_extension, [PHP_EXTENS
if test "$with_php_extension" = "yes"; then
AC_PATH_PROG([PHP_CONFIG], [php-config])
if test -n "$PHP_CONFIG" ; then
- AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol])
have_php_extension="yes"
fi
fi
@@ -350,13 +349,26 @@ AM_CONDITIONAL(HAVE_DEIMOS_OPENSSL, [tes
AM_CONDITIONAL(WITH_D_SSL_TESTS, [test "$with_d_ssl_tests" = "yes"])
AC_SUBST(DMD_OPENSSL_FLAGS)
-
+AC_ARG_ENABLE([tests],
+ AS_HELP_STRING([--enable-tests], [build tests [default=yes]]),
+ [], enable_tests=yes
+)
have_tests=yes
-if test "$with_tests" = "no"; then
+if test "$enable_tests" = "no"; then
have_tests="no"
fi
AM_CONDITIONAL(WITH_TESTS, [test "$have_tests" = "yes"])
+AC_ARG_ENABLE([tutorial],
+ AS_HELP_STRING([--enable-tutorial], [build tutorial [default=yes]]),
+ [], enable_tutorial=yes
+)
+have_tutorial=yes
+if test "$enable_tutorial" = "no"; then
+ have_tutorial="no"
+fi
+AM_CONDITIONAL(WITH_TUTORIAL, [test "$have_tutorial" = "yes"])
+
AM_CONDITIONAL(MINGW, false)
case "${host_os}" in
*mingw*)
@@ -454,9 +466,9 @@ AC_CHECK_DECL([AI_ADDRCONFIG], [],
AC_FUNC_ALLOCA
AC_FUNC_FORK
-AC_FUNC_MALLOC
+dnl AC_FUNC_MALLOC
AC_FUNC_MEMCMP
-AC_FUNC_REALLOC
+dnl AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_FUNC_STAT
AC_FUNC_STRERROR_R
diff -rupN thrift-0.9.1.orig/Makefile.am thrift-0.9.1/Makefile.am
--- thrift-0.9.1.orig/Makefile.am 2013-08-15 20:14:48.000000000 -0400
+++ thrift-0.9.1/Makefile.am 2014-03-05 08:48:10.242260764 -0500
@@ -19,13 +19,15 @@
ACLOCAL_AMFLAGS = -I ./aclocal
-SUBDIRS = compiler/cpp lib tutorial
+SUBDIRS = compiler/cpp lib
if WITH_TESTS
SUBDIRS += test
endif
+if WITH_TUTORIAL
SUBDIRS += tutorial
+endif
dist-hook:
find $(distdir) -type f \( -iname ".DS_Store" -or -iname "._*" -or
-iname ".gitignore" \) | xargs rm -rf
{code}
> Autoconf scripting does not properly account for cross-compile
> --------------------------------------------------------------
>
> Key: THRIFT-2127
> URL: https://issues.apache.org/jira/browse/THRIFT-2127
> Project: Thrift
> Issue Type: Bug
> Components: Build Process
> Affects Versions: 0.9
> Environment: Ubuntu 12.04 running OpenEmbedded Dylan
> Reporter: Frank Earl
> Assignee: Jake Farrell
> Attachments: fix_autoconf_crosscompile_leaks.patch
>
>
> Trying to get Thrift to Cross-compile within OpenEmbedded to get an ARM based
> build combined with a full-on SDK for our embedded target. So far, I'm
> getting this:
> configure:16347: checking for boostlib >= 1.40.0
> configure:16401: arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork
> -mfloat-abi=softfp -mfpu=neon
> --sysroot=/home/fearl/git/dc_image_build/poky/build/tmp/sysroots/beaglebone
> -c -O2 -pipe -g -feliminate-unused-debug-types -fpermissive
> -fvisibility-inlines-hidden -I/usr/include conftest.cpp >&5
> cc1plus: warning: include location "/usr/include" is unsafe for
> cross-compilation [-Wpoison-system-directories]
> configure:16401: $? = 0
> This means it's grabbing from outside the sysroot- which can present bad
> results on the cross-compile pass.
--
This message was sent by Atlassian JIRA
(v6.2#6252)