I found the section of code the python NDK is complaining about:

#ifndef LONG_BIT
#define LONG_BIT (8 * SIZEOF_LONG)
#endif

#if LONG_BIT != 8 * SIZEOF_LONG
/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent
 * 32-bit platforms using gcc.  We try to catch that here at compile-time
 * rather than waiting for integer multiplication to trigger bogus
 * overflows.
 */
#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc
config?)."
#endif


So it looks like maybe SIZEOF_LONG is what's really not properly defined.
I then found this python mailing list post:

https://mail.python.org/pipermail/python-bugs-list/2004-November/026111.html

The first poster says that this will limit python to only using glibc
systems, which makes total sense here given that Android uses bionic not
glibc.  What I don't understand is that bionic seems to define LONG_BIT,
SIZEOF_LONG etc correctly:

https://github.com/android/platform_bionic/blob/d717b1a3e55db9b7625a46bec950e856cc107951/libc/include/sys/limits.h

So what's it complaining about?

Devin

On Thu, Aug 20, 2015 at 10:43 AM, Tom Rondeau <t...@trondeau.com> wrote:

> On Mon, Aug 17, 2015 at 7:28 PM, Schuyler St. Leger <
> schuyler.st.le...@gmail.com> wrote:
>
>> I am trying to build GNU Radio for Android and am having issues with the
>> build process.
>>
>> I first tried building GNU Radio for Android on Mac OS X 10.10.4. I was
>> able to follow the directions successfully until I had to build gr-grand.
>> When I tried to build gr-grand I got this error (see error 1). I have tried
>> searching for this error, but have not found any useful information from my
>> search. I am not sure if this is an error with the build procedure, or if
>> it is an error with the Android NDK and Python.
>>
>
>
> We'll have to spend some time looking into this. Most of use working on
> the Android stuff are using Linux -- generally Ubuntu, either 14.04 or
> 15.04 (I use both versions, depending on which machine I'm on). This could
> be a conflict with the installed Python and the one in the SDK, or possibly
> just a bug in the SDK.
>
> Although, now that I think about it, there's no reason to SWIG gr-grand.
> You'll never use that in Python on Android; we only use the c++ library
> out, and specifically the static libgnuradio-grand.a library.
>
> Maybe try adding the flag -DENABLE_PYTHON=False to the cmake line?
>
>
>
>> I then tried building GNU Radio for Android in a Ubuntu 14.04 64 bit VM,
>> but when trying to stage Boost (./b2) I get this output from Boost (see
>> error 2) and get an error about -march=armv7-m not being a supported
>> compiler flag when Boost starts compiling. I have tried adding the
>> toolset=gcc-android to Boost but this did not fix the problem (I had to
>> do this on Mac to get Boost to use the configuration in the user-config.jam
>> file).
>>
>
> Are you sure you want armv7-m? Most of what we're using is armv7-a. But
> you might just try "armv7" instead to use a more generic v7 architecture.
> Take a look at the gcc man page for a list of supported machines. This
> might be something you'll need to play around with.
>
>
>
>> I would like help getting this working, as I really want to get GNU Radio
>> working on Android for me.
>>
>> Schuyler St. Leger
>>
>> Error 1:
>> [ 80%] Building CXX object
>> swig/CMakeFiles/_grand_swig.dir/grand_swigPYTHON_wrap.cxx.o
>> In file included from
>> /opt/android-toolchain/include/python2.7/Python.h:58:0,
>>                  from
>> /opt/grandroid/gr-grand/build/swig/grand_swigPYTHON_wrap.cxx:167:
>> /opt/android-toolchain/include/python2.7/pyport.h:1029:2: error: #error
>> "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
>>  #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc
>> config?)."
>>   ^
>> make[2]: ***
>> [swig/CMakeFiles/_grand_swig.dir/grand_swigPYTHON_wrap.cxx.o] Error 1
>> make[1]: *** [swig/CMakeFiles/_grand_swig.dir/all] Error 2
>> make: *** [all] Error 2
>>
>> Error 2:
>> Performing configuration checks
>>
>>     - 32-bit                   : no
>>     - 64-bit                   : no
>>     - arm                      : no
>>     - mips1                    : no
>>     - power                    : no
>>     - sparc                    : no
>>     - x86                      : no
>>     - combined                 : no
>>     - has_icu builds           : no
>>     - lockfree boost::atomic_flag : no
>>
>
> Yeah, when this is right, you should see 'yes' for 32-bit and arm.
>
> FYI, I should be getting a 64-bit ARM soon and will see what changes are
> necessary there.
>
> And if any of this helps and you do get it working, we should try to
> update the Android wiki page accordingly, either by fixing some of the
> instructions or with some side notes for these problems.
>
> Tom
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to