Opened 6 years ago

Closed 6 years ago

#1259 closed defect/bug (fixed)

r5892 breaks android-x86 build

Reported by: mvglasow (2) Owned by: cp15
Priority: major Milestone:
Component: port/android Version: git master
Severity: normal Keywords:
Cc: http://wiki.navit-project.org/index.php/user:mvglasow, (2), sebastian.leske@…

Description

The last few builds on android-x86 failed (see http://download.navit-project.org/logs/navit/stats.html). The last successful build was r5890 while r5892 failed.

Looking at the commits, r5891 was just some minor (and rather innocent) code cleanup, while r5892 introduced some changes to build parameters tht seem to break the android-x86 build.

Change History (8)

comment:1 Changed 6 years ago by mvglasow (2)

  • Cc http://wiki.navit-project.org/index.php/user:mvglasow (2) added

comment:2 Changed 6 years ago by mvglasow (2)

PS: android-armv4 and android-armv5te continue to work even past r5892.

comment:3 in reply to: ↑ description Changed 6 years ago by sleske

Replying to http://wiki.navit-project.org/index.php/user:mvglasow (2):

The last few builds on android-x86 failed (see http://download.navit-project.org/logs/navit/stats.html) [...] r5892 introduced some changes to build parameters tht seem to break the android-x86 build.

Yes, I committed r5892 to make the build work with old versions of gcc, which choke on some of the warning options we use.

I also noticed the build is failing, but I could not reproduce the problem.

It looks like the build is trying to check if the C++ compiler supports our warning options (by calling check_cxx_compiler_flag()), which fails (expectedly) because C++ is not enabled for the CMake build (using parameter -DDISABLE_CXX).

However, the build script checks if the CMake variable CMAKE_CXX_COMPILER is defined before running the checks for C++ (see add_compiler_flag_if_available in navit/cmake/navit_macros.cmake), so the checks should not run in the first place. I tested this locally and could build without problems with -DDISABLE_CXX.

comment:4 Changed 6 years ago by sleske

  • Cc sebastian.leske@… added

As I have no access to the build server (or at least the scripts used), I have no way to investigate the problem further. So someone with access to the build server will have to diagnose this. Of course, I'll gladly help where I can.

comment:5 Changed 6 years ago by mvglasow (2)

According to the build logs, the build server calls cmake with the following command line:

cmake -DCMAKE_TOOLCHAIN_FILE=Toolchain/i686-android.cmake -DANDROID_API_VERSION=9 -DDISABLE_CXX=1 -DDISABLE_QT=1 /work/compile/navit/src

I tried the same on my machine and got the same error that is in the build logs.

comment:6 Changed 6 years ago by tryagain

I guess c++ compiler availability should better be checked with CXX_COMPILER_LOADED macro rather than with CMAKE_CXX_COMPILER one.

Current method comes into conflict with DISABLE_CXX option which does not enable c++ whilst i686-android.cmake specifies c++ compiler location with "find_program(CMAKE_CXX_COMPILER ...".

I'm unsure why we explicitly disable c++ for android x86 build, and can try enabling it, but i still feel that "if(CMAKE_CXX_COMPILER)" check at http://sourceforge.net/p/navit/code/5892 is wrong.

tryagain

comment:7 Changed 6 years ago by sleske

Yes, CXX_COMPILER_LOADED looks right, that's probably what we should use. Fixed in r5904.

comment:8 Changed 6 years ago by tryagain

  • Resolution set to fixed
  • Status changed from new to closed

Thank you, last compilation was successful.

Note: See TracTickets for help on using tickets.