[predef] The predef-check functionality is not working on the Android regression tests
I do not believe that predef-check is working at all on the Android regression tests. Predef itself appears to be working as far as the predef macro values. But attempting to use predef-check to set a <cxxflags> value is just not happening. I can attest that just setting a <cxxflags> value, outside of using predef-check, does work correctly on the Android regression tests. The failure is occurring on my VMD tests. But you can also see the failure on the predef tests also. Looking at the info_as_cpp test output at http://www.boost.org/development/tests/develop/developer/CrystaX-NET-apileve... you can see that BOOST_COMP_CLANG > 0 and BOOST_OS_LINUX = 0. Yet if you look at the corresponding check_value test at http://www.boost.org/development/tests/develop/developer/CrystaX-NET-apileve... you will see that the output is 'CHECK_VALUE == undefined', whereas if predef-check were actually working the output should be 'CHECK_VALUE == 1' ( or 'true' ). In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
On Sun, Jul 12, 2015 at 9:00 PM, Edward Diener
I do not believe that predef-check is working at all on the Android regression tests. Predef itself appears to be working as far as the predef macro values. But attempting to use predef-check to set a <cxxflags> value is just not happening. I can attest that just setting a <cxxflags> value, outside of using predef-check, does work correctly on the Android regression tests.
The failure is occurring on my VMD tests. But you can also see the failure on the predef tests also. Looking at the info_as_cpp test output at http://www.boost.org/development/tests/develop/developer/CrystaX-NET-apileve... you can see that BOOST_COMP_CLANG > 0 and BOOST_OS_LINUX = 0. Yet if you look at the corresponding check_value test at http://www.boost.org/development/tests/develop/developer/CrystaX-NET-apileve... you will see that the output is 'CHECK_VALUE == undefined', whereas if predef-check were actually working the output should be 'CHECK_VALUE == 1' ( or 'true' ).
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Yes, I am fully aware of the issue. And I describe the basic problem in another post. In which I mentioned the basic problem of the predef check being "incorrect" in the cross-compile use case (which I posted from an airport). But, I will not have time to attempt a fix for this until next month. As I'm out of the country at the moment. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
On 13/07/15 06:00, Edward Diener wrote:
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Edward, As Rene said earlier, this is bug related to cross-compiling nature of Android targets. As a temporary workaround for this, I can modify our testing scripts to enforce passing "-std=c++0x" when building VMD tests. This is not good solution and clearly should not stay there for long time, but I can do it if for some reason you can't wait when it will be fixed in proper way. Just let me know. -- Dmitry Moskalchuk
On Mon, Jul 13, 2015 at 4:35 AM, Dmitry Moskalchuk
On 13/07/15 06:00, Edward Diener wrote:
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Edward,
As Rene said earlier, this is bug related to cross-compiling nature of Android targets.
As a temporary workaround for this, I can modify our testing scripts to enforce passing "-std=c++0x" when building VMD tests. This is not good solution and clearly should not stay there for long time, but I can do it if for some reason you can't wait when it will be fixed in proper way. Just let me know.
Edward could also just add <target-os>android:<cxxflags>-std=c++0x to the tests (or something equivalent). -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
On 7/13/2015 7:43 AM, Rene Rivera wrote:
On Mon, Jul 13, 2015 at 4:35 AM, Dmitry Moskalchuk
wrote: On 13/07/15 06:00, Edward Diener wrote:
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Edward,
As Rene said earlier, this is bug related to cross-compiling nature of Android targets.
As a temporary workaround for this, I can modify our testing scripts to enforce passing "-std=c++0x" when building VMD tests. This is not good solution and clearly should not stay there for long time, but I can do it if for some reason you can't wait when it will be fixed in proper way. Just let me know.
Edward could also just add <target-os>android:<cxxflags>-std=c++0x to the tests (or something equivalent).
I added that and pushed it to develop. I did not even realize that it was available so thanks for suggesting it.
On 7/13/2015 7:43 AM, Rene Rivera wrote:
On Mon, Jul 13, 2015 at 4:35 AM, Dmitry Moskalchuk
wrote: On 13/07/15 06:00, Edward Diener wrote:
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Edward,
As Rene said earlier, this is bug related to cross-compiling nature of Android targets.
As a temporary workaround for this, I can modify our testing scripts to enforce passing "-std=c++0x" when building VMD tests. This is not good solution and clearly should not stay there for long time, but I can do it if for some reason you can't wait when it will be fixed in proper way. Just let me know.
Edward could also just add <target-os>android:<cxxflags>-std=c++0x to the tests (or something equivalent).
That worked ! It's a temporary fix until you get back and see if predef can be fixed for the cross-compile problem.
On 7/13/2015 6:35 AM, Dmitry Moskalchuk wrote:
On 13/07/15 06:00, Edward Diener wrote:
In all other environments predef-check is working. Maybe this failure of predef-check somehow occurs because the Android tests are a cross-compile, being done on a Unix system but targeting the Android. But for whatever reason the inability of getting predef-check to work keeps my VMD tests from adding the '-std=c++0x' option and the VMD tests all fail without that option since the variadic macro support in VMD for gcc needs C++11 support or better.
Edward,
As Rene said earlier, this is bug related to cross-compiling nature of Android targets.
As a temporary workaround for this, I can modify our testing scripts to enforce passing "-std=c++0x" when building VMD tests. This is not good solution and clearly should not stay there for long time, but I can do it if for some reason you can't wait when it will be fixed in proper way. Just let me know.
I tried Rene's suggestion of adding: <target-os>android:<cxxflags>-std=c++0x to the project requirements. I have pushed that to 'develop' so the next time you run your tests you will pick it up. If that does not work for passing '-std=c++0x' then I will ask you to add it manually, but let's wait to see if that solves the problem temporarily until Rene gets back and can look at the problem in predef.
participants (3)
-
Dmitry Moskalchuk
-
Edward Diener
-
Rene Rivera