<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>CodeWarrior for MCUのトピックprobs with long long support: undefined ARTNEULL64, undefined ARTSHLLL64 linker errors</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/probs-with-long-long-support-undefined-ARTNEULL64-undefined/m-p/269399#M10122</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm currently working on a project that needs to use long long support (64 bit) for certain bits of code.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've activated the flags 'c99' and 'slld' in the codewarrior projects (- flag c99, -flag -slld)&amp;nbsp; to activate long long support for my project.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sometimes after certain 64 bit operations the linker fails with the following linker errors:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"undefined: ARTNEULL64"&lt;/P&gt;&lt;P&gt;"undefined: ARTSHLLL64"&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the linker always seems to fail at 64 bit shift operations.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An example:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One line in my code read:&lt;/P&gt;&lt;P&gt;uint64_t dwdata;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style=""&gt;FTFL_FCCOB4 = (uint8_t)((dwData &amp;amp; 0xFF000000) &amp;gt;&amp;gt; 24);&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This led the linker to fail with the error "undefined: ARTSHLLL64"&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;after changing the order of mask and shift to&lt;/P&gt;&lt;P&gt;uint64_t dwdata;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style=""&gt;FTFL_FCCOB4 = (uint8_t)((dwData &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF ); &lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;it links just fine.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have other examples in the code where the linker fails with similar errors e.g.&lt;/P&gt;&lt;P&gt;if (collisions &amp;amp; ((uint64_t)1 &amp;lt;&amp;lt; (uint64_t)i))&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This occurs on Codewarrior 10.3 for MCU when I compile for the MC56F84763 DSC&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;any hints? The compiler/linker toolchain does support long long and other long long operations seem to work as long as they are not bit shifts.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Apr 2013 11:42:32 GMT</pubDate>
    <dc:creator>christianflügel</dc:creator>
    <dc:date>2013-04-16T11:42:32Z</dc:date>
    <item>
      <title>probs with long long support: undefined ARTNEULL64, undefined ARTSHLLL64 linker errors</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/probs-with-long-long-support-undefined-ARTNEULL64-undefined/m-p/269399#M10122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm currently working on a project that needs to use long long support (64 bit) for certain bits of code.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've activated the flags 'c99' and 'slld' in the codewarrior projects (- flag c99, -flag -slld)&amp;nbsp; to activate long long support for my project.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sometimes after certain 64 bit operations the linker fails with the following linker errors:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"undefined: ARTNEULL64"&lt;/P&gt;&lt;P&gt;"undefined: ARTSHLLL64"&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the linker always seems to fail at 64 bit shift operations.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An example:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One line in my code read:&lt;/P&gt;&lt;P&gt;uint64_t dwdata;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style=""&gt;FTFL_FCCOB4 = (uint8_t)((dwData &amp;amp; 0xFF000000) &amp;gt;&amp;gt; 24);&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This led the linker to fail with the error "undefined: ARTSHLLL64"&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;after changing the order of mask and shift to&lt;/P&gt;&lt;P&gt;uint64_t dwdata;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style=""&gt;FTFL_FCCOB4 = (uint8_t)((dwData &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF ); &lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;it links just fine.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have other examples in the code where the linker fails with similar errors e.g.&lt;/P&gt;&lt;P&gt;if (collisions &amp;amp; ((uint64_t)1 &amp;lt;&amp;lt; (uint64_t)i))&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This occurs on Codewarrior 10.3 for MCU when I compile for the MC56F84763 DSC&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;any hints? The compiler/linker toolchain does support long long and other long long operations seem to work as long as they are not bit shifts.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2013 11:42:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/probs-with-long-long-support-undefined-ARTNEULL64-undefined/m-p/269399#M10122</guid>
      <dc:creator>christianflügel</dc:creator>
      <dc:date>2013-04-16T11:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: probs with long long support: undefined ARTNEULL64, undefined ARTSHLLL64 linker errors</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/probs-with-long-long-support-undefined-ARTNEULL64-undefined/m-p/269400#M10123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I seem to have solved the problem myself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There seems to be some kind of conflict if both the option or pragma 'c99 and the option or pragma 'slld' are active at the same time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if I activate both 'c99' and 'slld' then neither "unsigned long long" nor "uint64_t" will work (with inclusion of &amp;lt;stdint.h&amp;gt;). Code will compile but the linker will complain. This seems to be strange since uint64_t in stdint.h is basically just a typedef to unsigned long long anyway.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If both options are deactivated then there is no support for long long at all&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If only the c99 option is active then at least 'unsigned long long' will work without producing linker errors and a short test of the bit shift also shows that it will shift beyond 32 bits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alas 'unit64_t' data type is not available.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This seems to be an issue with the current version of the compiler/linker toolchain since I also experience the problem with certain 32 bit or 16 bit operations where somehow unsigned short or unsigned char work but uint_8T and uint16_t don't.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2013 14:11:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/probs-with-long-long-support-undefined-ARTNEULL64-undefined/m-p/269400#M10123</guid>
      <dc:creator>christianflügel</dc:creator>
      <dc:date>2013-04-16T14:11:09Z</dc:date>
    </item>
  </channel>
</rss>

