This section discusses how to use binaries built for a Neutrino 6.3.x environment. It's assumed that the reader has pre-built binaries from a 6.3.x environment and will use them to generate a new image for 6.4.x. In order to use 6.4.x you need to modify you buildfile and create a new image to include new feature such as io-pkt and new libc.so library. Please refer to the Modify the build file section below for more details.
This section discusses how to compile a 6.3.x BSP with a 6.4.x toolchain. It is assumed that the reader has a 6.3.x zip archive of the BSP to be migrated.
Here are some important changes that need to be made to the buildfile in order to successfully migrate a BSP to 6.4.x.
6.4.x ships with io-pkt
The buildfile needs to include the io-pkt binaries if networking is required:
Here is an example of how to start io-pkt on the i.mx31 platform :
io-pkt-v4 -dcrys8900-mx31ads ioport=0xb4020300,irq=168
For more information on io-pkt, please goto the core networking project page.
ldqnx.so.2 symlink
The buildfile needs to be updated such that:
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
legacy binary support
The buildfile will need to include libc.so.2 in order to execute pre-6.4.x binaries.
To compile the BSP, cd to the root of the BSP and type make. If all goes well, then an IFS image will be generated and stores in the images directory.
Below are known issues when compiling a 6.3.x BSP using 6.4.x:
Compiler upgrade for 6.4.x
The 6.3.x BSP being migrated may not compile because of the compiler upgrade in Momentics 6.4.x which ships with GCC 4.x. Here is a link to some common compilation errors.
mmap()
As part of 6.4.x the following is being enforced on mmap:
Posix requires that you specify MAP_PRIVATE or MAP_SHARED as one of the mmap() flags, but earlier versions of our OS let you get away without doing that and assumed MAP_PRIVATE.