[SOLVED] Stealthy linker errors

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Stealthy linker errors

    One of the things that I've noticed is linker errors tend to be pretty stealthy.

    In this case I accidentally added the declaration of a variable in an include file that was included in 10 files.

    I reproduced the issue with adding the following to that header.

    Source Code

    1. uint8_t blah;
    This is the output. You have to turn on "Show build info" and "Echo command lines" to get that amount.



    Otherwise, you get the following


    And honestly takes a minute to remember how to try to find the error.

    thanks,
    thomas
  • But the compiler (and linker) are pedantic - so, if you get these wrong, you will get errors!


    TxCodeMonkey wrote:

    my code example clearly did not have the extern qualifier
    Which is why it is (or can be) a definition - rather than a declaration.

    In your OP, both of the screenshots seem to be the same - did you mean one of them to be different?
  • awneil, take a step back and look at the bigger picture.

    The linker is properly creating the CORRECT errors. Yes, the linker has it correct. The problem is SES is not displaying the error in a easy to see manor. I have no idea why you are over reaction to an obvious error in my code. The original cause for my hunt was a missing typedef. And this the linker assumed I was trying to create an overlapping variable in multiple object files. Again, the link did the correct thing.

    Have a tool simply say "build failed" is not helpful. I am simply asking Segger to improve the way they display linker errors in the standard build window.
  • Hello Thomas,

    Thank you for your inquiry.
    The reported issue was reproducible. In other cases ES will jump to the corresponding error message and mark it red. This does not seem to be the case here.
    We will investigate further and see if such a case can be also displayed as usual.

    Sorry for the inconvenience caused.

    If you are looking for a more verbose output we recommend switching the output view from Tasks to Output.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Nino,

    We missed you, hopefully your time away from the forum was good. As always, thank you for your response.


    I also like the task view, but it is not clickable on the error.

    In general, it would be cool if there was a bit more precision with cursor focus. I have, in effect 3 monitors. The compilation output view is in a separate window on a different monitor than the primary window. When you click on an error, if would be cool for cursor/mouse focus to be moved to the primary window at the line where the error is located.

    Attached is a screen shot, FWIW.

    Again, thank you.

  • Hello,

    TxCodeMonkey wrote:

    We missed you, hopefully your time away from the forum was good.
    Yep, vacation was nice. Now back to the real world again ;)


    TxCodeMonkey wrote:

    I also like the task view, but it is not clickable on the error.
    It should be clickable if everything went right. We now have a reproducer so this should be fixed soon.


    TxCodeMonkey wrote:

    In general, it would be cool if there was a bit more precision with cursor focus. I have, in effect 3 monitors. The compilation output view is in a separate window on a different monitor than the primary window. When you click on an error, if would be cool for cursor/mouse focus to be moved to the primary window at the line where the error is located.
    Not sure if this is easily possible with the GUI lib we used here, but we will investigate and add it to our wishlist if possible.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Nino,

    Glad to hear the let you out of the office :D

    I very much appreciate your work on this board. Thanks to your management team for allowing you to have the time to participate this broadly with your user community.

    cheers,
    thomas
  • Hi Thomas,

    Thank you for the flowers. We try to have an ear for customers and users without support contracts as well (when time allows it) ;)

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.