E91 Linux Server Custom BSFN compilation error


In one of the project we migrated from E811 to E91 , with only difference in E811 had windows server and E91 has linux server (Linux x86-64, Oracle Linux 6).
Few custom functions were migrated and some of them showed build errors on Linux server, though local build is fine on E91 fat machines. Followed the logs and fixed and included io.h to this BSFN to suppress some errors, whose definitions are provided in io.h, which was not the part of E811 code.

Couple of ways I could try this inclusion logic was below in .C
1) # include <io.h>, build is successful on fat but on Linux server it fails as (io.h) not found.
2) followed io.h path on Linux server /usr/src/kernels/3.8.13-55.1.2.el6uek.x86_64/include/linux/io.h and based on this defined # INCLUDE <linux/io.h> in .c file and build is good on E91 fat machines but server build fails by saying (linux/io.h) not found.
3) took reference of B0500180 which is standard BSFN and included # include <io.h>, put it on Linux server build and build is successful.

Can any one suggest what could be the possible reason for this or how we can fix this for custom one or why standard BSFN does not come across any error while building on linux server.:)



Reputable Poster
Hi Nitin,

In B0500180, io.h is included only for PC (i.e. windows based) platforms.

You should be able to use the i/o functions in B0500180 on Linux without having to include io.h. If you have a need to include io.h, try adding the entire path /usr/src/kernels/3.8.13-55.1.2.el6uek.x86_64/include/linux in your include directive. You may still get link errors that will need to be resolved.