On Jan 27, 2013, at 9:19 PM, Rom Walton wrote:
> Should be fixed.

Thanks.  But I am curious why the CFLAGS are different from the CXXFLAGS in all 
5 Android build scripts: boinc/android/build_curl.ssh,  
boinc/android/build_openssl.sh, boinc/android/build_boinc.sh, 
boinc/samples/wrapper/build_android.sh and 
boinc/samples/example_app/build_android.sh.  

* 3 of the scripts (build_boinc.sh and the 2 samples) have 
"-DDECLARE_TIMEZONE", but only in CFLAGS and not in CXXFLAGS.  I have not found 
any reference to DECLARE_TIMEZONE in any of our source files.  Why is this 
needed, and why only in CFLAGS?

* All 5 scripts have "-funroll-loops -fexceptions" in CXXFLAGS but not CFLAGS.  
In particular, the -fexceptions inconsistency seems backwards based on my 
reading of the compiler documentation, which says:
> If you do not specify this option, GCC will enable it by default for 
> languages like C++ which normally require exception handling, and disable it 
> for languages like C that do not normally require it. However, you may need 
> to enable this option when compiling C code that needs to interoperate 
> properly with exception handlers written in C++. You may also wish to disable 
> this option if you are compiling older C++ programs that don't use exception 
> handling. 

So it seems that, if it is needed at all, it should be specified for CFLAGS and 
is unnecessary for CXXFLAGS.

Cheers,
--Charlie

--
Charlie Fenton                        [email protected]
BOINC / SETI@home Macintosh & Windows Programmer
Space Sciences Laboratory
UC Berkeley



On Jan 27, 2013, at 9:19 PM, Rom Walton wrote:

> Should be fixed.
> 
> ----- Rom
> 
> -----Original Message-----
> From: Charlie Fenton [mailto:[email protected]] 
> Sent: Saturday, January 26, 2013 6:42 AM
> To: Rom Walton
> Cc: David Anderson (BOINC)
> Subject: Re: Errors building wrapper for Android
> 
> Hi Rom,
> 
>> It looks like it was using the Linux c++ compiler instead of the the
> android compiler.
> 
> Good catch.  But actually, it was not using any c++ compiler, but rather
> it was using the Linux C compiler (gcc) instead of the android C
> compiler (arm-linux-androideabi-gcc).  These are *.c files, not *.cpp
> files and so it should compile with gcc rather than g++.  
> 
>> In the make file change the references to the cc compiler to $(CXX).
> 
> I think a better solution is to add the following lines to
> wrapper/build_android.sh (so we continue to use gcc rather than g++ for
> *.c files):
> 
> export CC=arm-linux-androideabi-gcc
> export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall  -funroll-loops
> -fexceptions -O3 -fomit-frame-pointer -I$TCINCLUDES/include -I$BOINC_DIR
> -I$BOINC_LIB_DIR -I$BOINC_API_DIR -I$BOINC_ZIP_DIR"
> 
> I recommend always exporting CC as well as CXX and CFLAGS as well as
> CXXFLAGS.  This is already being done in boinc/android/build_curl.ssh,
> boinc/android/build_openssl.sh and  boinc/android/build_boinc.sh, but
> not in boinc/samples/wrapper/build_android.sh or
> boinc/samples/example_app/build_android.sh.
> 
> Cheers,
> --Charlie
> 
> --
> Charlie Fenton                        [email protected]
> BOINC / SETI@home Macintosh & Windows Programmer Space Sciences
> Laboratory UC Berkeley
> 
> 
> 
> On Jan 25, 2013, at 6:52 PM, Rom Walton wrote:
> 
>> Hmmmmm
>> 
>> In the make file change the references to the cc compiler to $(CXX).
>> 
>> It looks like it was using the Linux c++ compiler instead of the the
> android compiler.
>> 
>> ----- Rom
>> 
>> Charlie Fenton <[email protected]> wrote:
>> 
>> I was mistaken about the missing.o files.  I got the updated
> wrapper.cpp from GIT, deleted the .o files and tried again, but still
> get the same errors:
>> 
>>> boincadm@boinc-build-android:~$ cd 
>>> '/home/boincadm/boinc/samples/wrapper' 
>>> boincadm@boinc-build-android:~/boinc/samples/wrapper$ 
>>> ./build_android.sh
>>> arm-linux-androideabi-g++ --sysroot=/home/boincadm/android-tc/sysroot
> -DANDROID -Wall  -funroll-loops -fexceptions -O3 -fomit-frame-pointer
> -I/home/boincadm/android-tc/arm-linux-androideabi/include -I../..
> -I../../lib -I../../api -I../../zip   -c -o wrapper.o wrapper.cpp
>>> cc    -c -o regexp.o regexp.c
>>> cc    -c -o regsub.o regsub.c
>>> cc    -c -o regerror.o regerror.c
>>> cc    -c -o regexp_memory.o regexp_memory.c
>>> cc    -c -o regexp_report.o regexp_report.c
>>> arm-linux-androideabi-g++ --sysroot=/home/boincadm/android-tc/sysroot
> 
>>> arm-linux-androideabi-g++ -DANDROID -Wall  -funroll-loops 
>>> arm-linux-androideabi-g++ -fexceptions -O3 -fomit-frame-pointer 
>>> arm-linux-androideabi-g++ -I/home/boincadm/android-tc/arm-linux-andro
>>> arm-linux-androideabi-g++ ideabi/include -I../.. -I../../lib 
>>> arm-linux-androideabi-g++ -I../../api -I../../zip 
>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/sysroot/usr/lib
> 
>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/arm-linux-andro
>>> arm-linux-androideabi-g++ ideabi/lib -L../.. -L../../lib -L../../api 
>>> arm-linux-androideabi-g++ -L../../zip -llog -o wrapper wrapper.o 
>>> arm-linux-androideabi-g++ regexp.o regsub.o regerror.o 
>>> arm-linux-androideabi-g++ regexp_memory.o regexp_report.o -lboinc_api
> 
>>> arm-linux-androideabi-g++ -lboinc -lboinc_zip 
>>> arm-linux-androideabi-g++ /home/boincadm/android-tc/arm-linux-android
>>> arm-linux-androideabi-g++ eabi/lib/libstdc++.a
>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3/
>>> ../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>> generic ELF (EM: 3)
>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3/
>>> ../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>> generic ELF (EM: 3)
>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3/
>>> ../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>> generic ELF (EM: 3)
>>> regexp.o: could not read symbols: File in wrong format
>>> collect2: ld returned 1 exit status
>>> make: *** [wrapper] Error 1
>>> boincadm@boinc-build-android:~/boinc/samples/wrapper$
>> 
>> Cheers,
>> --Charlie
>> 
>> --
>> Charlie Fenton                        [email protected]
>> BOINC / SETI@home Macintosh & Windows Programmer Space Sciences 
>> Laboratory UC Berkeley
>> 
>> 
>> 
>> On Jan 25, 2013, at 5:32 PM, Charlie Fenton wrote:
>> 
>>> Hi Rom,
>>> 
>>> Running under your Ubuntu VM, I don't see any .o files in the
> directory after running the build_android.sh script:  
>>> 
>>>> boincadm@boinc-build-android:~$ cd
> '/home/boincadm/boinc/samples/wrapper'
>>>> boincadm@boinc-build-android:~/boinc/samples/wrapper$ 
>>>> ./build_android.sh
>>>> arm-linux-androideabi-g++ --sysroot=/home/boincadm/android-tc/sysroo
>>>> arm-linux-androideabi-g++ t -DANDROID -Wall  -funroll-loops 
>>>> arm-linux-androideabi-g++ -fexceptions -O3 -fomit-frame-pointer 
>>>> arm-linux-androideabi-g++ -I/home/boincadm/android-tc/arm-linux-andr
>>>> arm-linux-androideabi-g++ oideabi/include -I../.. -I../../lib 
>>>> arm-linux-androideabi-g++ -I../../api -I../../zip 
>>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/sysroot/usr/li
>>>> arm-linux-androideabi-g++ b 
>>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/arm-linux-andr
>>>> arm-linux-androideabi-g++ oideabi/lib -L../.. -L../../lib 
>>>> arm-linux-androideabi-g++ -L../../api -L../../zip -llog -o wrapper 
>>>> arm-linux-androideabi-g++ wrapper.o regexp.o regsub.o regerror.o 
>>>> arm-linux-androideabi-g++ regexp_memory.o regexp_report.o 
>>>> arm-linux-androideabi-g++ -lboinc_api -lboinc -lboinc_zip 
>>>> arm-linux-androideabi-g++ /home/boincadm/android-tc/arm-linux-androi
>>>> arm-linux-androideabi-g++ deabi/lib/libstdc++.a
>>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3
>>>> /../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>>> generic ELF (EM: 3)
>>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3
>>>> /../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>>> generic ELF (EM: 3)
>>>> /home/boincadm/android-tc/bin/../lib/gcc/arm-linux-androideabi/4.4.3
>>>> /../../../../arm-linux-androideabi/bin/ld: regexp.o: Relocations in 
>>>> generic ELF (EM: 3)
>>>> regexp.o: could not read symbols: File in wrong format
>>>> collect2: ld returned 1 exit status
>>>> make: *** [wrapper] Error 1
>>>> boincadm@boinc-build-android:~/boinc/samples/wrapper$
>>> 
>>> When I run the build_android.sh script in example_app, I do see the
> uc2.o file and it builds the executable without errors:
>>> 
>>>> boincadm@boinc-build-android:~/boinc/samples/wrapper$ cd
> '/home/boincadm/boinc/samples/example_app' 
>>>> boincadm@boinc-build-android:~/boinc/samples/example_app$
> ./build_android.sharm-linux-androideabi-g++
> --sysroot=/home/boincadm/android-tc/sysroot -DANDROID -Wall
> -funroll-loops -fexceptions -O3 -fomit-frame-pointer
> -I/home/boincadm/android-tc/arm-linux-androideabi/include -I../..
> -I../../lib -I../../api -I../../zip   -c -o uc2.o uc2.cpp
>>>> arm-linux-androideabi-g++ --sysroot=/home/boincadm/android-tc/sysroo
>>>> arm-linux-androideabi-g++ t -DANDROID -Wall  -funroll-loops 
>>>> arm-linux-androideabi-g++ -fexceptions -O3 -fomit-frame-pointer 
>>>> arm-linux-androideabi-g++ -I/home/boincadm/android-tc/arm-linux-andr
>>>> arm-linux-androideabi-g++ oideabi/include -I../.. -I../../lib 
>>>> arm-linux-androideabi-g++ -I../../api -I../../zip 
>>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/sysroot/usr/li
>>>> arm-linux-androideabi-g++ b 
>>>> arm-linux-androideabi-g++ -L/home/boincadm/android-tc/arm-linux-andr
>>>> arm-linux-androideabi-g++ oideabi/lib -L../.. -L../../lib 
>>>> arm-linux-androideabi-g++ -L../../api -L../../zip -llog -o uc2 uc2.o
> 
>>>> arm-linux-androideabi-g++ ../../api/libboinc_api.a 
>>>> arm-linux-androideabi-g++ ../../lib/libboinc.a 
>>>> arm-linux-androideabi-g++ /home/boincadm/android-tc/arm-linux-androi
>>>> arm-linux-androideabi-g++ deabi/lib/libstdc++.a
>>>> boincadm@boinc-build-android:~/boinc/samples/example_app$
>>> 
>>> Cheers,
>>> --Charlie
>> 
>> 
> 
> 

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to