Deos Chino Unplanned Update 13A
The primary driver for this release is to update Honeywell with MIPS compnents using only the release 1 instruction set (i.e., a recompile/re-link of all components).
Description
In prior releases, DDC-I thought the MIPS processor used by Honeywell could support the release 2 instruciton set. This was not the case. The procesor can only handle release 1 instructions. Consequently we will recomplie/re-link our existing components to use only release 1 instructions. Note: no delivery of new features in this release, just removal/replacement of release 2 instructions.
The setup.ini for this release is at file://///nx3000.ddci.com/ship/dds/windows/approved/DDS-chino-deos-fourpeaks-20130214/deos-heartos-posix/ ftp://redhat5.ddci.com/Workstation/cygwin-20120401-ddci-dist-fourpeaks/archive/1360859420
The prior release for this work will be the Deos_Chino_Unplanned_Update_12A.
| Customer | Distribution | AFDX | CFFS | 653p1 | 653p4 | TDL | Customer Specific BSPs | Stable Date | Ship Date | Remarks |
|---|---|---|---|---|---|---|---|---|---|---|
| Chino | FourPeaks | NO | NO | YES | NO | NO | MIPS-FCM, QEMU MIPS, & XCalibur1200 | 2013-02-11 | 2013-02-18 |
Components to Work
Column Header Descriptions
CCB : A release CCB has been held.
Phases Are:
- Hold - on hold
- Dev - in development
- Build - can be built from HEAD
- Test - Component released and ready to test.
- Stable - You are done! All steps (including test report) in the software release howto have been followed.
OA: All components should be tested using OpenArbor_13A1. Otherwise this column should contain an N/A indicating that it doesn't need to be tested, in an integrated fashion, with OpenArbor.
TRAC: All components should be tested using Build 252. Otherwise this column should contain an N/A indicating that it doesn't need to be tested, in an integrated fashion, with TRAC.
The Distribution Columns:
- Yes or no : component tested for that distribution
- version that was frozen for that distribution
Who Is the person responsible for doing the work associated with the component.
Remarks are free form text. It must contain the test report when done.
Components
Below are the Deos components being worked for this release.
| Component | Version | Phase | CCB | OA | TRAC | FourPeaks | Who | Remarks |
|---|---|---|---|---|---|---|---|---|
| ANSI | 4.1.2 | Stable | Yes | N/A | N/A | Yes | BC | Test Report |
| deos653p1-runtime | 2.1.0 | Stable | Yes | 13A1 | 252 | Yes | BC | Test Report |
| gdbserver | 8.0.2 | Stable | Yes | 13A1 | 252 | Yes | BC | Test Report |
| kernel | 9999.0.5 | Stable | Yes | 13A1 | 252 | Yes | AL | Test Report |
| systemvideostreams | 6.3.6 | Stable | Yes | 13A1 | N/A | Yes | KL | Test Report |
| status-monitor | 8.3.2 | Stable | Yes | 13A1 | N/A | Yes | KL | Test Report |
| startup-gcc | 7.1.2 | Stable | Yes | N/A | N/A | Yes | KL | Test Report |
| math-ppc-mips | 1.0.1 | Stable | Yes | N/A | N/A | Yes | BC | Test Report |
| ioi-ringbuffer | 3.0.2 | Stable | Yes | 13A1 | 252 | Yes | BC | Test Report |
| ioi-api | 3.2.2 | Stable | Yes | 13A1 | 252 | Yes | BC | Test Report |
| inetd | 6.7.1 | Stable | Yes | 13A1 | N/A | Yes | KL | Test Report |
| deosname | 6.9.2 | Stable | Yes | N/A | N/A | Yes | KL | Test Report |
| ftpserver | 7.4.2 | Stable | Yes | 13A1 | N/A | Yes | BC | Test Report |
| lwip | 3.0.4 | Stable | Yes | 13A1 | 252 | Yes | JR | Test Report |
Removed Components
Relative to prior releases:
- VMWare Player was removed.
Test Summary
All components performed as necessary for this release. This includes some expected known problems & caveats (see below).
Known Problems
ANSI
From the release notes:
- Starting with the versions compiled via GCC 4.6.1, the requirements based regression tests were failing for the scenarios listed below. The root cause is still being investigated (PCR 7201).
- On x86, the strtod() and atof() functions were returning incorrect results when passed postive and negative infinity (+INF, -INF).
- On x86 and ppc the blscanf() routine would fail to properly convert long conversion expressions, e.g. "%s %s %s %d %s %x %s %d %d".
- On x86 the ecvt(), fcvt(), vsprintf(), and sprintf() would sometimes return incorrect results or fail to return.
- On ppc the sprintf() function would sometimes return incorrect results or fail to return.
The MIPS hardware produces different results than qemu and PowerPC hardware in some instances. These are enumerated below.
- Test tpa046 test case 35, 43, 48, 55, 63 and 68 failed on monfcm. Inspection of the test procedure shows that each of these test cases involves double float denormalized numbers.
- Test tpa048 test case 377, 381, 403, 407, 429, 433, 455, 459, 481 and 485 failed on monfcm. Test tpa049 test case 377, 381, 403, 407, 429, 433, 455, 459, 481 and 485 failed on monfcm. Inspection of the test procedures shows that each of these test cases involves single float denormalized numbers or single float NaN values. On monfcm, both are known to cause behavior that differs from the test expectations.
- Test tpa052, tpa053, tpa057 and tpa058 all fail on monfcm. The tests are hit by an Unimplemented Operation floating-point exception during running of global initializers. The reason is that each test declares single float positive and negative NaN values by casting corresponding double float NaN values and such conversions cause this exception.
- If these single float NaN values are changed to have normal floating-point values, the tests no longer cause the exception. The modified tpa052 test case 1, 13, 25, 37, 49, 61, 73, 85, 97, 109, 121, 133, 145, 157, 169, 181, 193, 205, 217, 229, 241, 253, 265, 277, 289, 301, 313, 325, 337, 349, 361, 373, 385, 397, 409, 421, 433, 445, 457, 469, 481, 493, 505, 517, 529, 541, 553, 565, 577, 589, 601, 613, 625 and 637 failed on monfcm. The modified tpa053 test case 1, 14, 27, 40, 53, 66, 79 and 92 failed on monfcm. The modified tpa057 test case 1, 13, 25, 37, 49, 61, 73, 85, 97, 109, 121, 133, 145, 157, 169, 181, 193, 205, 217, 229, 241, 253, 265, 277, 289, 301, 313, 325, 337, 349, 361, 373, 385, 397, 409, 421, 433, 445, 457, 469, 481, 493, 505, 517, 529, 541, 553, 565, 577, 589, 601, 613, 625 and 637 failed on monfcm. The modified tpa058 test case 1, 14, 27, 40, 53, 66, 79 and 92 failed on monfcm. Inspection of the test procedures shows that each of these test cases involves denormalized numbers which flush to zero and therefore produce a result that differs from the test expectations or refers to the modified single float NaN values.
Math
The MIPS hardware produces different results than qemu and PowerPC hardware in some instances. These are enumerated below.
- Test tpm017 test case 15 and 36 failed on monfcm for both debug and release math libraries. These two test cases use ldexp() to combine the mantissa 1.0 (resp. -1.0) and the binary exponent -1022 into a value very close to DBL_MIN. The calculated permitted range for the result only includes the value 0.0 due to the processor flushing denormalized numbers to zero. These test cases are then declare failed due to a limitation in the test process but the correct value has been created.
Caveats
ANSI
From the release notes:
- User code that is compiled for MIPS should be compiled with both the -mips32 and -mips3 options to ensure proper operation. In particular single float usage and conversion between integer types and double float are prone to fail otherwise.
- User code that is compiled for MIPS and converts a not-a-number (NaN) value from single to double float format or vice versa will cause an Unimplemented Operation exception. Such conversions result from explicit casts and implicit C/C++ promotion and demotion. Note that some functions (e.g. strtod()) may return NaN values while others (e.g. sscanf()) may perform conversions if the format string contains "e", "E", "f", "g" or "G". Conversion from single to double format also occurs as a result of the MIPS ABI when a single float argument is passed to a variadic function. An unhandled Unimplemented Operation exception terminates the process so these NaN values must be avoided or the user code must install a suitable handler.
Math
From the release notes:
- User code that is compiled for MIPS should be compiled with both the -mips32 and -mips3 options to ensure proper operation. In particular single float usage and conversion between integer types and double float are prone to fail otherwise.
- User code that is compiled for MIPS and converts a not-a-number (NaN) value from single to double float format or vice versa will cause an Unimplemented Operation exception. Such conversions result from explicit casts and implicit C/C++ promotion and demotion. Note that some functions (e.g. strtod()) may return NaN values while others (e.g. sscanf()) may perform conversions if the format string contains "e", "E", "f", "g" or "G". Conversion from single to double format also occurs as a result of the MIPS ABI when a single float argument is passed to a variadic function. An unhandled Unimplemented Operation exception terminates the process so these NaN values must be avoided or the user code must install a suitable handler.