From Ernest's email: 13-Jun-2015

==========================================================

A single application can indeed support multiple "host" and "target" architectures.

However, it is very important not confuse or mix the idea of "host" and "target" they are different.

To select which targets to build you should provide a space delimited list of targets in the following configure/Make variable:  "CROSS_COMPILER_TARGET_ARCHS"

Located in the "CONFIG_SITE" file below:

<yourIOC_Application_TOP>/configure/CONFIG_SITE

For example: The target for the linuxRT that we are using for Fast Feedback CROSS_COMPILER_TARGET_ARCHS = linuxRT_glibc-x86_64

If you want to build for RTEMS as well and you should, then you would have:

CROSS_COMPILER_TARGET_ARCHS = linuxRT_glibc-x86_64  RTEMS-beatnik

Please never add any "host" builds to the variable "CROSS_COMPILER_TARGET_ARCHS"

The build for the "host" architecture builds automatically based on the setting of "EPICS_HOST_ARCH"

To discover the host architecture on lcls-dev3, then execute the following:

env  | grep EPICS_HOST_ARCH

If you need to build your application for another host architecture, you must log into a machine with that architecture and just type make.

For example, for a 32-bit RHEL5 build you should log into lcls-dev2 but then you should not attempt to rebuild the targets.  Why?  Well, the cross-compiler tool chain is different on different build hosts.

So, to this properly you would execute make like, so:

make  CROSS_COMPILER_TARGET_ARCHS =

As you can see this would not try any target builds; it only build for the host.

=================================================================

  • No labels