2.0r6 problems

We tried upgrading our project to 2.0r5 when it came out and lost alot of time before reverting back to r4. I have just spent some time again trying to upgrade to r6 with a similar experiance. It was nice to see the renaming of the project from android to tegra-android worked better this time, many thanks for that fix. There are a couple of issues that we have had, one i am struggling to work around.

  1. We did fix this, but it may be useful for others to know. When the platform was renamed from android to tegra-android we found we couldnt bring up the project properties and also a few library projects failed to build (We have alot of seperate libraries in this project). It turns out that not all the entries in the configuration manager were renamed so some were still set to android. If you try to bring up the properties on one of these projects visual studio just reports it cannot complete the operation. To fix this we had to goto configuration manager and manually change any project still on the android platform over to tegra-android by hand.

  2. The main issue i still have is with linking. r6 does fix alot of the problems we have with r5 however due to the number of project libraries we link we get some missing references due to library orders. on r4 this was fixed with the -Wl,–start-group --end-group option but the only way i have been able to do this in r6 is to manually put all the libraries into the additional options in the command line section by hand. This caused alot of problems with the settings in the android system libraries so these were put in by hand as well. For some reason I still get issues with multiple definitions of operator new etc because we overload the global versions. I cant seem to find a setting to get around this other than add -Wl,–allow-multiple-definition to additional options.

I find it frustrating because this project built lovely on r4. I did notice that the NVNDK is now gone, and i presume we use the android-ndk-r8e folder, this seems to be a newer version from the r8d in the 2.0r4 build however the gcc build is no 4.7 rather than 4.7.2

Also who decided to build the char defaulting to unsigned as default? ;)

This thread is being followed up via email.

However, below are some info for those interested in this.

  1. I cannot say much about this one, however. We are constantly improving our upgrading system to allow you to easily upgrade Nsight Tegra without worrying about things we’ve changed. Sometimes it doesn’t work as expected, unfortunately. In such cases please feel free to contact us for help on how to do that manually. Also, making sure that all the project and solution files are writable will certainly help.

  2. If you have circular dependencies in your project, then you will have to use the Command Line page to input the libraries in the same format as GCC options. Just like with running it from the command line, either make use of the -Wl,–start-group/-Wl,–end-group switches or include the dependencies several times as needed. Note that the Linker → Input → Additional Dependencies project property does not allow duplicate entries and start/end group switches, which is why you’ll have to use the Linker → Command Line page. Note that in many cases you would have to input all of your library dependencies into either Additional Dependencies or Command Line, because they will appear in different locations in the generated argument string, which may affect the building process. Make sure to maintain the proper order, where a library appears before the libraries which it depends on.

4.7.2 was a custom toolchain in our NVNDK. We don’t support it anymore, because the currently available Google’s toolchains are similar in terms of performance.

As for the char signedness, we don’t explicitly specify either of them, so it’s up to the compiler to decide. If you want to specify it, use the -fsigned-char or -funsigned-char switches (you can add them on the C/C++ → Command Line property page).