[ 
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:28 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 
--with-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.

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.
                  
> 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
>         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 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

Reply via email to