<?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>topic Re: C compiler error porting from Alpha to I64 in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031531#M35575</link>
    <description>The statement:&lt;BR /&gt;&lt;BR /&gt;myaddr.sin_addr.s_addr = host-&amp;gt;h_addr;&lt;BR /&gt;&lt;BR /&gt;might also work as a replacement for the memcpy.&lt;BR /&gt;&lt;BR /&gt;A memcpy of a longword address is somewhat like hunting insects with anvils.  It works, but it's an effort.  If you've a lot of these dinky memcpy sequences in the code and particularly in critical paths, definitely look into allowing the compiler to fully inline the memcpy and related operations.&lt;BR /&gt;&lt;BR /&gt;And when you're mostly done with the compilation and link and initial debug, the next step is often hunting for unaligned references in the resulting execution environment, as these can massively degrade your processor performance.  These unaligned references are seriously expensive for OpenVMS to field for you.&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Fri, 02 Mar 2007 10:45:38 GMT</pubDate>
    <dc:creator>Hoff</dc:creator>
    <dc:date>2007-03-02T10:45:38Z</dc:date>
    <item>
      <title>C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031526#M35570</link>
      <description>Hey guys&lt;BR /&gt;&lt;BR /&gt;I'm getting a compiler error:&lt;BR /&gt;flagword = TCPIP$C_MSG_NBIO + MSG_PEEK;&lt;BR /&gt;...................^&lt;BR /&gt;%CC-E-UNDECLARED, In this statement, "TCPIP$C_MSG_NBIO" is not declared.&lt;BR /&gt;at line number 114 in file DKA0:[INA.PROGS.DK]DEC90_OPEN.C;8&lt;BR /&gt;types.c and socket.h are included. it worked fine on an alpha system (vms V7.2-1, c V??) , but now we ported the c source to an I64 (vms V8.3, c V7.1)  and getting this compiling error. &lt;BR /&gt;any ideas? thanks for any remark.</description>
      <pubDate>Fri, 02 Mar 2007 08:13:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031526#M35570</guid>
      <dc:creator>Dario Karlen</dc:creator>
      <dc:date>2007-03-02T08:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031527#M35571</link>
      <description>Dario,&lt;BR /&gt;The constant TCPIP$C_MSG_NBIO is defined in&lt;BR /&gt;SYS$LIBRARY:TCPIP$INETDEF.H&lt;BR /&gt;Regards,&lt;BR /&gt;Kris (aka Qkcl)</description>
      <pubDate>Fri, 02 Mar 2007 08:36:59 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031527#M35571</guid>
      <dc:creator>Kris Clippeleyr</dc:creator>
      <dc:date>2007-03-02T08:36:59Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031528#M35572</link>
      <description>Hi Kris&lt;BR /&gt;&lt;BR /&gt;Thanks a lot. &lt;BR /&gt;I included ucx$inetdef.h already, but with this file I got the error. now I replaced it with the file you suggested and it worked. &lt;BR /&gt;the last compiling error I get is this:&lt;BR /&gt;memcpy(&amp;amp;myaddr.sin_addr.s_addr, host-&amp;gt;h_addr, 4);&lt;BR /&gt;....^&lt;BR /&gt;%CC-I-IMPLICITFUNC, In this statement, the identifier "memcpy" is implicitly dec&lt;BR /&gt;lared as a function.&lt;BR /&gt;&lt;BR /&gt;can anybody help? my c knowledge is unfortunately very basic.</description>
      <pubDate>Fri, 02 Mar 2007 09:04:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031528#M35572</guid>
      <dc:creator>Dario Karlen</dc:creator>
      <dc:date>2007-03-02T09:04:20Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031529#M35573</link>
      <description>&lt;!--!*#--&gt;Dario,&lt;BR /&gt;&lt;BR /&gt;Online help is very good for these things.  It looks like you just need to include string.h:&lt;BR /&gt;&lt;BR /&gt;$ help crtl memcpy&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;CRTL&lt;BR /&gt;&lt;BR /&gt;  memcpy&lt;BR /&gt;&lt;BR /&gt;       Copies a specified number of bytes from one object to another.&lt;BR /&gt;&lt;BR /&gt;       Format&lt;BR /&gt;&lt;BR /&gt;         #include  &lt;STRING.H&gt;&lt;BR /&gt;&lt;BR /&gt;         void *memcpy  (void *dest, const void *source, size_t size);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    Additional information available:&lt;BR /&gt;&lt;BR /&gt;    Function_Variants     Arguments  Description           Return_Value&lt;BR /&gt;&lt;BR /&gt;CRTL memcpy Subtopic?&lt;BR /&gt;&lt;/STRING.H&gt;</description>
      <pubDate>Fri, 02 Mar 2007 09:41:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031529#M35573</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2007-03-02T09:41:34Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031530#M35574</link>
      <description>You've moved forward to a C compiler that defaults to detecting declaration errors; that better verifies the source code for correctness and consistency.&lt;BR /&gt;&lt;BR /&gt;Where C symbols have moved over the years and the C compiler has definitely gotten better at spotting latent errors -- that memcpy was probably just an implicit declaration that the old compiler silently allowed -- but in cases like that TCPIP$C_MSG_NBIO symbol, that really smells like you're not using quite the same procedure(s) or same compilation command(s) or same header(s) that were originally used.  That there are differences between what was used on OpenVMS Alpha V7.2-1 and OpenVMS I64 V8.? environment.&lt;BR /&gt;&lt;BR /&gt;I've ported piles of C code among OpenVMS VAX and OpenVMS Alpha and OpenVMS I64, and (at least from Alpha to Integrity) it usually comes straight across.  &lt;BR /&gt;&lt;BR /&gt;Porting code forward from older C is a bit more problematic, as the older compilers missed or ignored various errors.&lt;BR /&gt;&lt;BR /&gt;One way to potentially speed the process is the /FIRST_INCLUDE qualifier.  I've used this qualifier with some success when porting open source onto OpenVMS, as it allows me to specify various fixes for the source code -- without altering the main source.  It's also useful as it allows me to potentially experiment with the compilation, without having to back changes out of the main module.  (This approach doesn't always work and certainly can't fix all cases of coding errors and compiler complaints, but for cases like #include string.h, it can be a very handy technique.)&lt;BR /&gt;&lt;BR /&gt;Stephen Hoffman&lt;BR /&gt;HoffmanLabs&lt;BR /&gt;</description>
      <pubDate>Fri, 02 Mar 2007 10:20:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031530#M35574</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2007-03-02T10:20:07Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031531#M35575</link>
      <description>The statement:&lt;BR /&gt;&lt;BR /&gt;myaddr.sin_addr.s_addr = host-&amp;gt;h_addr;&lt;BR /&gt;&lt;BR /&gt;might also work as a replacement for the memcpy.&lt;BR /&gt;&lt;BR /&gt;A memcpy of a longword address is somewhat like hunting insects with anvils.  It works, but it's an effort.  If you've a lot of these dinky memcpy sequences in the code and particularly in critical paths, definitely look into allowing the compiler to fully inline the memcpy and related operations.&lt;BR /&gt;&lt;BR /&gt;And when you're mostly done with the compilation and link and initial debug, the next step is often hunting for unaligned references in the resulting execution environment, as these can massively degrade your processor performance.  These unaligned references are seriously expensive for OpenVMS to field for you.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 02 Mar 2007 10:45:38 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031531#M35575</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2007-03-02T10:45:38Z</dc:date>
    </item>
    <item>
      <title>Re: C compiler error porting from Alpha to I64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031532#M35576</link>
      <description>thank you a lot guys&lt;BR /&gt;with your help is was an easy solution. &lt;BR /&gt;&lt;BR /&gt;I'm very pleased to have this resource center and so many friendly specialists.</description>
      <pubDate>Mon, 05 Mar 2007 04:08:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/c-compiler-error-porting-from-alpha-to-i64/m-p/5031532#M35576</guid>
      <dc:creator>Dario Karlen</dc:creator>
      <dc:date>2007-03-05T04:08:08Z</dc:date>
    </item>
  </channel>
</rss>

