Wind River Support Network

HomeOther DownloadsWind River Linux 6.0.0.13
Obsolete Type: RCPL

Wind River Linux 6.0.0.13

Released: Oct 29, 2014     Updated: Aug 4, 2015

Description

FYA: Please read the Notes prior to upgrading 6.0.0.13.

Notes:
======
In 6.0.0.13, we add a fix for bug LIN6-8628. The problem is GCC 4.8 now uses a more aggressive analysis to derive an upper bound for the number of iterations of loops using constraints imposed by language standards. This may cause non-conforming programs to no longer work as expected. For example:


#define SIZE 10

int main()
{
  uint32_t numbers[2][SIZE];
  uint32_t i = 0;

  memset(&numbers, 0xff, sizeof(numbers));

  while (numbers[0][i] != 0 && i < SIZE)
  {
    printf("Reading at [0][%u]: %u\n", i, numbers[0][i]);
    i++;
  }

  return 0;
}

Executing the code gives the result as shown below, which is different from gcc 4.6.3 behavior. The expected result is to terminate the loop when i is equal to 10 but that is not happening.Reason is likely the new "aggressive loop optimization" behavior of gcc 4.8.1 resulting in that the condition "i < SIZE" is optimized away. Gcc likely determines that is does not need to check that "i < SIZE" since when i => SIZE then undefined behavior has already occurred (index out of range on the numbers array) so the condition "i < SIZE" always has to be true.

Reading at [0][0]: 4294967295
Reading at [0][1]: 4294967295
Reading at [0][2]: 4294967295
Reading at [0][3]: 4294967295
Reading at [0][4]: 4294967295
Reading at [0][5]: 4294967295
Reading at [0][6]: 4294967295
Reading at [0][7]: 4294967295
Reading at [0][8]: 4294967295
Reading at [0][9]: 4294967295
Reading at [0][10]: 4294967295
Reading at [0][11]: 4294967295
Reading at [0][12]: 4294967295
Reading at [0][13]: 4294967295
Reading at [0][14]: 4294967295

In order to avoid it happening, we add a fix in 6.0.0.13, that halts the build when it detects the situation to alert the application developer to fix the problem. The actual fix in application is:

- while (numbers[0][i] != 0 && i < SIZE)
+ while (i < SIZE && numbers[0][i] != 0)
 
But some other situations are considered as the same problem due to the loose detection. We have made a patch to fix this kind of problem in package crash, but the fix was missed the 6.0.0.13, so you need to apply the patch 0001-Fix-crash-build-failure-with-gcc-4-8-39.patch on 6.0.0.13.

How to apply the patch

1) Upgrading 6.0.0.13
2) Create a project
3) Apply the patch
$cd project/layers/wr-base
$git am 0001-Fix-crash-build-failure-with-gcc-4-8-39.patch

BTW, a LIN6-8628 is tracked this issue and we will merge the fix into 6.0.0.14


README & whatsnew60
====================
The README.txt on this OLS page contains instructions on how to use these features, general information on the RCPL and a complete list of defects fixed. Conversely, the defects listed in OLS page aren't complete due to the length limitation of characters. The README.txt should be reviewed prior to installation.

The whatsnew60 file on the OLS page contains what new features were added by each RCPL.

Verification prebuilt binaries:
================================
$cd Installdir/wrlinux-6/setup
$./prebuiltck.sh
prebuilt binaries checksum passed.

We also provide the checksum file on the OLS page in case someone changes your local file. Please download the prebuilt.tgz file, and then run:

$tar xzvf ~/Desktop/prebuilt.tgz
wrlinux-6/
wrlinux-6/setup/
wrlinux-6/setup/prebuiltck.sh
wrlinux-6/setup/prebuilts.md5.asc
wrlinux-6/setup/wrl_60.gpg

$cd Installdir/wrlinux-6/setup
$./prebuiltck.sh
prebuilt binaries checksum passed.


Product Version

Wind River Linux 6

Downloads


Caveats

Requires Wind River Linux 6.0 to be installed


Installation Notes

Installation Notes

Wind River Linux 6.0.0.13 is now only available via Electronic Software Distribution (ESD) method accessible via the Wind River Installation Tool (wrInstaller) available within your product installation.

Step 1 - Prepare

  • Shut down all product processes, including any license server.
  • If you have altered any Wind River-supplied file in your installation tree (not a recommended practice), archive them manually before installing any update, as these files may be overwritten during the installation process.

 Step 2 - Install

  • Linux:   Go to installDir/maintenance/wrInstaller/x86-linux2 and run wrInstaller.   (Windows:   Go to installDir\maintenance\wrInstaller\x86-win32 and run wrInstaller.exe.)
  • At the Choose Installation Type screen, choose "Online Content" and click next. Updates to the lastest installer is required. 
  • The installer will automatically search all available updates and verify your entitlement. (This may take a few minutes.)
  • Select "Wind River Linux 6.0.0.13" in "Select Products" drop-down list.
  • Continue your selections through the installation process and complete by clicking Finish.

 NOTE -  1) If you're having connectivity (firewall or network setup) issues, Wind River allows you to run the wrInstaller on a machine with Internet connectivity by downloading this update pack into a convenient location and then installing the content back onto the development machine. Follow these instructions:

2) On Windows hosts, you may notice some errors in the "setup.log" around "readlink" and "uninstall_mgr.sh". These messages can be ignored as they do not affect the running of the product. If though you should decide to un-install the product, there may be some error messages about changed files which the Installer will not remove. In this case, you can simply remove the remaining files and the installation directory manually.


Defects


Live chat
Online