You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Frank Earl (JIRA)" <ji...@apache.org> on 2013/08/16 23:19:49 UTC
[jira] [Comment Edited] (THRIFT-2127) Autoconf scripting does not
properly account for cross-compile
[ https://issues.apache.org/jira/browse/THRIFT-2127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13742610#comment-13742610 ]
Frank Earl edited comment on THRIFT-2127 at 8/16/13 9:19 PM:
-------------------------------------------------------------
It's automatically set by the OpenEmbedded build recipe if I claim it's an Autotools based build.
configure --build=x86_64-linux --host=arm-poky-linux-gnueabi --target=arm-poky-linux-gnueabi --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib/thrift --datadir=/usr/share --sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var --libdir=/usr/lib --includedir=/usr/include --oldincludedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/fearl/git/dc_image_build/poky/build/tmp/sysroots/beaglebone --with-qt4=no --with-csharp=no --with-java=no --with-erlang=no --with-perl=no --with-php=no --with-ruby=no --with-haskell=no --with-d=no --with-go=no --with-python=no --with-libevent=no --with-zlib=no
Problem is:
1) Re-doing --includedir for a cross compile when you're supposed to use a --libtool-sysroot specification for cross-compiling is bogus. That's supposed to prefix everything else per the help description.
2) It doesn't change anything. You've got static paths in your macros...
BOOST_ROOT_PATH="$ac_boost_path"
else
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
This does nothing for cross-compilation unless you're building within the Scratchbox2 tool.
Attached is a patch for a "fix" that gets me to the next mess within the PHP Autoconf that's along the same lines.
was (Author: svartalf):
It's automatically set by the OpenEmbedded build recipe if I claim it's an Autotools based build.
Problem is:
1) Re-doing --includedir for a cross compile when you're supposed to use a --libtool-sysroot specification for cross-compiling is bogus.
2) It doesn't change anything. You've got static paths in your macros...
BOOST_ROOT_PATH="$ac_boost_path"
else
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
This does nothing for cross-compilation unless you're building within the Scratchbox2 tool.
Attached is a patch for a "fix" that gets me to the next mess within the PHP Autoconf that's along the same lines.
> 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
>
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira