Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki2712: PRE640BSP_migrationDoc (Version 2)

6.3.x to 6.4.0 Board Support Package migration guide.#

Compiling/Migrating a 6.3.X BSP in with a 6.4.0 host#

This section discusses how to compile a 6.3.x BSP on a 6.4.0 host. It is assumed that the reader has a 6.3.x zip archive of the BSP to be migrated.

Note: Before you begin, check the http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/BSPAndDrivers download page to see if there is a 6.4.0 version of the BSP.

Setup your Environment#

  • open a shell
  • create a working directory (workdir)
  • unzip BSP archive zipfile to workdir ; cd workdir
  • Copy the attached setenv.sh script to workdir
  • execute: ". ./setenv.sh" to setup the enviroment

Modify the build file#

Here are some important changes that need to be made to the buildfile in order to successfully migrate a BSP to 6.4.0.

6.4.0 ships with io-pkt

The buildfile needs to include the io-pkt binaries if networking is required:

  • io-pkt-v4-hc ( or variant)
  • devnp-shim.so (used for devn driver compatibility)
  • libsockset.so
  • native io-pkt driver (devnp-*.so) or legacy io-net driver (devn-*.so)

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.0 binaries.

Compiling the BSP#

Compiler upgrade for 6.4.0

The 6.3.x BSP being migrated may not compile because of the compiler upgrade in Momentics 6.4.0 which ships with GCC 4.2.3. Here is a link to some common compilation errors.

mmap()

As part of 6.4 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.

Attachments:
Text setenv.sh [PRE640BSP_migrationDoc/setenv.sh]