This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Skipping Incompatible .a86U library

I want to create an executable with XDC.

I have a simple hello world main.c.

I have the following .cfg file:

// Set the OS abstraction layer to Linux
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.LINUX;

// A build function to build an executable
function buildExe()
{
// lib/ is a generated directory that 'xdc clean' should remove
Pkg.generatedFiles.$add('exe/');

// Get the executable name from the folder name
var vendorFolder = new java.io.File('..');
var moduleFolder = new java.io.File('.');
var vendorName = vendorFolder.getCanonicalPath().match(/[a-z_]+$/).toString();
var moduleName = moduleFolder.getCanonicalPath().match(/[a-z_]+$/).toString();

var i = 0;
for(i = 0; i < Build.targets.length; i++)
{
var target = Build.targets[i];

print('Building ' + moduleName + ' for ' + target.platform);

// Build for all profiles
var profile;
for(profile in target.profiles)
{
var exeName = 'exe/' + profile + '/' + moduleName;
var fullExeName = exeName + '.x' + target.suffix;

Pkg.addExecutable(exeName, target, target.platform,
{
profile: profile,
cfgScript: moduleName
}).addObjects(sources);
}
}
}

But I get the following errors:

lnk86U exe/release/debug_app.x86U ...
/usr/bin/ld: skipping incompatible /home/matt/dvsdk_2_10_01_18/codec_engine_2_24/packages/ti/sdo/ce/ipc/linux/lib/release/ipc_linux.a86U when searching for /home/matt/dvsdk_2_10_01_18/codec_engine_2_24/packages/ti/sdo/ce/ipc/linux/lib/release/ipc_linux.a86U
/usr/bin/ld: cannot find /home/matt/dvsdk_2_10_01_18/codec_engine_2_24/packages/ti/sdo/ce/ipc/linux/lib/release/ipc_linux.a86U

I am using Fedora 15 x64 but have specified -m32 as a flag to GCC to build a 32bit executable.

I'm obviously missing some steps but am lost in XDC a bit.

Could anyone provide any insight?

  • Fixed

    /* This is a fail on XDC part. It will build for 64bit on 64bit architectures
    * we need to force 32bit archives to be compatible
    */
    target.ccOpts.prefix += " -m32"; // Must build for 32 bit
    target.lnkOpts.prefix += " -m32 -lpthread "; // Must build for 32 bit

    For Linux86 target on x64