This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

has anyone at TI rebuilt NDK lately?

I just tried to rebuild NDK and sock.c does not include serrno.h.  I am using NDK_2_23_01_01.  Someone in TI needs to update the source files. Also, can we ship a version of the libraries with debug symbols turned on? I am debugging a very weird problem where I get packets into EMACSnow.c but the ARP request does not produce a response. In order to debug, I need symbols!

Keep posted.  I may find other files that do not compile (or not).

  • Raymond,

    What version of TI-RTOS for TivaC are you using? As part of our standard regression testing, the entire installed product is rebuilt, so I'm surprised you are seeing an issue. What codegen (and version) are you using? Also how are you rebuilding the NDK? Are you on Windows or Linux?

    Todd

  • So, the problem is not that serrno.h is not included.  There is a problem with a conflict in definitions in errno.h and serrno.h.

    errno.h defines a bunch of error codes as Hex values and serrno.h defines them as decimal values.

    Can someone at TI make both files declare them the same way or better yet *not* duplicate the values?

  • Raymond,

    I just rebuilt the NDK in TI-RTOS for TivaC version 2_10_01_38. I only built for TI codegen, but I did not get any warnings or errors. What version of TI-RTOS are you using? What codegen versions are you using? What is the exact error/warning output you are seeing?

    Todd

  • Todd:

    I found the problem (may have already posted it).  The problem is warnings rather than errors, but warnings are a sign that someone messed up. The problem is that errno.h defines the socket errors as hex values and serrno.h (the actual socket version) defines them as decimal values.

    The warning you get is something along the lines of "incompatible redefinition of symbol BLAH". Not sure why the compiler gives warnings.  I suspect it is because a decimal value is intrinsically signed and a hex value is intrinsically unsigned. I think all numbers are positive, so the warnings won't make things broken.

    I had already fixed it for my local copy by putting a big "#if 0" around the ones that gave the warnings so only the definitions from errno.h were used.  Somehow I accidentally left EALREADY inside the commented out so when I compiled the library it was undefined.  Fixed by moving it outside.  Apparently EALREADY is not defined in errno.h.


    Ray

  • Hi Ray,

    Just for clarification, the warning are happening when you build your application against the NDK, not when you build the NDK...correct?

    We have an existing bug for the errno.h and serrno.h issue. We hope to have it addressed soon in a future NDK release. Here's the bug number and description.

    SDOCM00108037: macro definitions of serrno.h conflict with compiler/system errno.h macros.

    Todd

  • Todd:
    I saw the warnings both when building an application and when re-building the NDK. That is because the chain of header files includes both errno.h and serrno.h.

    Ray
  • Ray,

    I understand what the problem is, but we have not seen the issue when rebuilding the NDK (building an application...yes we know about it). Can you send a copy & paste of the warning/error you are seeing when you rebuild the NDK. Also can you include the compiler tool version you are using? I'm assuming that the NDK source is unmodified also.

    Todd