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