*
*Home|Chinese|Japanese*About ARM|Forums|Events|News|Employment|Contact Us|Investors*
dotted rule
*ARM - the architecture for the digital worldARM - the architecture for the digital world
search
*
*
***
*MARKETS:PRODUCTS & SOLUTIONS:CONNECTED COMMUNITY:TECHNICAL SUPPORT:DOCUMENTATION*
*
technical support
*
*
****
*.Technical Support
*
*
*>>Home Page*
*
*.Obtaining Support*
*
*.FAQs*
*
*.Downloads*
*
**Development Tool Downloads*
**Development Tool Tutorials*
**Artisan Physical IP Downloads (Login Required)*
*
*.Documentation*
*
*.Training*
*
*.Where To Buy*
*
*.Keil MCU Tools*
*
*.What's New*
*
*.ARM Newsgroups*
*
*.Active Assist On-site Services*
*
*
*
RVCT 3.0 SP1: Build 688 patch for Linuxask ARM*
dotted rule

Technical Support Search
*     (Advanced Search)
  FAQs   Documentation   Downloads   Forums

*

This patch consists of 5 files, containing updated versions of the RVCT/RVDS 3.0 Service Pack 1 compiler, linker, assembler, fromelf, and armar.

This patch is intended for use with RVCT 3.0 Service Pack 1 or later patches. This patch is NOT suitable for use with the original release of RVCT/RVDS 3.0. You should contact your supplier to obtain an upgrade CD for RVDS 3.0 Service Pack 1, install the Service Pack first, and then install this patch.

Also, this patch is NOT compatible with the RVDS 3.0 Evaluation CD or RVDK products.

To install the patch carry out the following steps:

  1. Extract the contents of the ZIP file into a temporary directory.

  2. Ensure that you are currently using RVCT 3.0 Service Pack 1. To do this, type:

    armcc --vsn

    and ensure that this returns RVCT 3.0 build 586 or later. Then type:

    which armcc

    This will tell you the subdirectory that armcc is located in. Then copy the new versions of the tools to this subdirectory.

  3. *IMPORTANT*
    To minimise the ZIP file sizes, only one compiler (armcc) is provided in this patch. However, the separate armcc, tcc, armcpp and tcpp executables are now identical in RVCT 3.0, so you will need to copy the new armcc to tcc, armcpp and tcpp appropriately, with e.g.

    cp armcc tcc
    cp armcc tcpp
    cp armcc armcpp

  4. The updated tools should now have been installed. To confirm this, type:

    armcc --vsn
    armcpp --vsn
    tcc --vsn
    tcpp --vsn
    armlink --vsn
    armasm --vsn
    fromelf --vsn
    armar --vsn

    The version returned should be RVCT 3.0 build 688.

  5. After unzipping the executables, you may find that they cannot be executed because the UNIX permissions have been reset. The workaround is to set the execute permissions for the user with e.g:

    chmod u+x armcc


Build 688

RVCT 3.0 Service Pack 1 patch build 688 includes the following corrections and improvements since RVCT 3.0 Service Pack 1 patch build 651:

Compiler:

Some code generation issues have been corrected, including:

  • The compiler could generate a Thumb branch to an incorrect destination, where this would be an unconditional branch to a conditional branch
  • The compiler could incorrectly remove flag setting instructions
  • The compiler could incorrectly transform variables into compile time constants for variables larger than one word.

Some other issues have been corrected, including:

  • Internal fault 0x9a86b3 with --wchar32 and static initialisation of an unsigned array which exceeds the range of integer
  • Internal fault 0x65dab4 when a variable's address is taken which is then passed out of its scope
  • Internal fault 0xfad570 with C++ template destructors
  • Internal fault 0x9be513 when compiling at -O2 -Otime with a volatile pointer to a local variable not marked as volatile

Linker:

  • The R_ARM_THM_PC12 relocation has been updated to S-align(P)+A instead of S-P+A, corresponding to the latest revision of the AAELF specification
  • The linker now reports the correct ZI sizes for partially linked objects with --info sizes or --info totals

Fromelf:

  • Fromelf could incorrectly reverse the byte order of certain sections in a BPABI image

Build 651

RVCT 3.0 Service Pack 1 patch build 651 includes the following corrections and improvements since RVCT 3.0 Service Pack 1 patch build 617:

Compiler:

Some changes have been made to the compiler's front-end behaviour:

  • ".cxx" is now accepted as a filename extension for C++
  • Dependency files created with --depend now contain the path for the target object
  • The compiler was incorrectly reporting error #20 with __packed and C++ template instantiation
  • The compiler could incorrectly report error #1151 with --fpu=none and C++ templates

Some code generation issues have been corrected, including:

  • At -O3 -Otime some code generation issues were corrected, including:
    • incorrect simplification of some expressions
    • incorrect transformation of some loops
    • volatile objects being incorrectly optimized away in certain cases
  • The compiler might have corrupted the flags after calls to certain Thumb helper library functions
  • The compiler could generate incorrect code after a 32-bit Thumb-2 MOV.W instruction with a shift
  • The compiler could generate incorrect code where a value loaded from a volatile location was stored out to a structure member and then narrowed
  • The signedness of an enum was incorrectly modified by the --signed_chars switch
  • The compiler was incorrectly folding constants for double or long long types
  • The compiler was not correctly generating code to test for a null pointer with the delete operator on an array

Some other issues have been corrected, including:

  • Segmentation fault when using --preinclude and --sys_include options together
  • Segmentation fault when using __mcall_offsetof_vbase in an embedded assembly function
  • Segmentation fault when using array delete on a pointer to a const object
  • Compiler generating error #1620, "Internal error detected -- please report (tretrv)" at -O3 -Otime
  • Internal fault 0x1e1ec0 with an extern volatile const variable and compiling ‑‑apcs=/ropi
  • Internal fault 0x2234aa with C++ exceptions and several nested try ... catch blocks
  • Internal fault 0xf04372 in assignment expressions containing pointer casts to (double *), for example: *(double *)p = d;
  • Internal fault 0x28aa97 with --thumb -O0 when calling a function in a derived class whose base class has an explicit destructor
  • Internal fault 0xbd358d with inline assembly using an MSR follow by a store to a pointer that had been passed into the function
  • Internal fault 0x3e0da2 with certain expressions using long long types
  • Compiling multiple files on a command line with --apcs=/adsabi incorrectly reported a source line for the warning that the switch is deprecated
  • A source file with "#pragma arm section code" followed by "#pragma thumb" could generate an incorrect section size in the object file symbol table, leading to a warning at link time

Linker:

  • The linker could crash under certain circumstances when linking a BPABI DLL
  • The linker could incorrectly remove certain debug-related symbols where a partially linked object is used with "HIDE *" in a steering file, leading to warnings when debugging
  • The linker could incorrectly use absolute pointers to function rather than offsets in a BPABI image
  • The linker could write build attribute sections with the incorrect endian format
  • The linker's inline feature could generate unpredictable instruction encodings
  • The linker was adding an incorrect amount of padding before a FIXED region in the presence of compressed RW data in adjacent regions
  • The "--info totals" option now reports the correct "Total ROM Size" including linker-generated padding
  • The "--info totals" could report incorrect RW and/or ZI sizes for partial linking

Assembler:

  • The assembler now accepts a --depend_format option equivalent to that accepted by the compiler. The formatting of the generated dependency lines has had minor changes to bring it into line with the compiler.

Build 617

RVCT 3.0 Service Pack 1 patch build 617 includes the following corrections and improvements since RVCT 3.0 Service Pack 1 build 586:

Compiler:

Some code generation issues have been corrected, including:

  • The compiler could generate code that behaved incorrectly with respect to overflowing negation operations
  • The compiler could generate incorrect results from expressions with multiple shifts
  • The compiler could generate incorrect code for certain shift expressions with long long values
  • The compiler could generate incorrect Thumb-2 instruction sequences for some expressions using NEON intrinsics
  • The compiler could incorrectly move a MOV instruction before an LDM at -O2 and -O3
  • At -O2 and above the compiler could incorrectly reorder certain Thumb instruction sequences
  • At -O2 and above the compiler could generate some incorrect Thumb-2 instruction sequences
  • At -O2 and above the compiler could incorrectly invert some comparison expressions
  • At -O3 -Otime some code generation issues were corrected, including incorrect simplification of some expressions and incorrect transformation of some loops.

Some other issues have been corrected, including:

  • Segmentation fault with --exceptions and C++ templates with long names
  • Internal faults or segmentation fault when compiling multiple C++ files without --multifile
  • Internal fault 0x6098ba with -O3 -Otime --debug
  • Internal fault 0x995e1d with Thumb at -O0 and large functions
  • Internal fault 0x26ed41 with C++ and --remove_unneeded_entities
  • Internal fault 0x4f04a9 at -O3 -Otime with local variable in an if-statement condition
  • Internal fault 0x61e7f4 with certain switch blocks at -O2 and -O3
  • Internal faults 0x3f08c3, 0x07e885 or 0x5593a7 with particular expressions
  • C++ typedef names could appear unmangled in the debug data.

Linker:

  • The linker could produce invalid debug data sections from partially linked objects with certain steering file commands
  • The linker could generate the incorrect type of interworking veneers when producing a BPABI (Base Platform ABI) DLL
  • The linker could previously give errors when using mixed path separators ('/' and '\') under Windows
  • The linker could previously give different --map output depending on the directory separator in the library search path
  • The linker's debug compression was failing for C++ functions with different template types.

Assembler:

  • The DW_AT_name field (which holds the source filename) in the debug data was sometimes incorrect after assembling a preprocessed source file.

*Download (Login Required) EULA included in archive



*
**
*4 dots*Other ARM Websites
*
shadow *LEGAL STATEMENTshadow