Label 'xxxxx' is defined pubweak in a section implicitly declared root

Technical Note 30605

Arkitekturer:

ARM, STM8

Komponent:

assembler

Uppdaterad:

2016-11-01 16:04

Introduction

After upgrading to version 7.10.1 (or later) of IAR Embedded Workbench for ARM or to version 2.10.1 (or later) of IAR Embedded Workbench for STM8 a message similar to

Warning[25] : Label 'xxxxx' is defined pubweak in a section implicitly declared root

might  be issued during assembly, even though there were no such warnings in earlier version(s).

Discussion

The IAR Assembler is issuing the warning for a deprecated assembler construction where an implicit :ROOT flag is inconsistent with how PUBWEAK is used.

As an example, consider these lines:

    PUBWEAK NMI_Handler
    SECTION .text:CODE:REORDER(1)
NMI_Handler

In this, and most other cases, you should add a :NOROOT flag to remove the inconsistency and avoid the warning.

The syntax for the assembler directive SECTION is:

SECTION section :type [:flag] [(align)]

More information can be found in the IAR Assembler Reference Guide, Section control directives.

Conclusion

In most cases, adding :NOROOT to the SECTION control directive is a good way to remove the deprecated construct and avoid the warning message:

     PUBWEAK NMI_Handler
     SECTION .text:CODE:REORDER:NOROOT(1)
NMI_Handler

 

All product names are trademarks or registered trademarks of their respective owners.

Det här innehållet finns tyvärr inte på svenska.

Vår webbplats finns främst på vårt koncernspråk engelska, förutom det innehåll för investerare som vi är lagstadgade att kommunicera på svenska. Vi rekommenderar att du besöker vår globala webbplats på engelska för att få en bättre upplevelse.

Vi stöder inte längre Internet Explorer. För att få bästa möjliga upplevelse av iar.com rekommenderar vi att du uppgraderar till en modern webbläsare som Chrome eller Edge.