Chris,

Thanks for the double check.

Regards,
Steve.

Thanks Chris,

I'm cautiously optimistic...  On one hand, assuming I'm running the experiment I think I am, it appear to work with your recommended change.  On the other hand, the resulting Makefile still includes -g and -ggdb on the CFLAGS line (which I *thought* I had previously determined wouldn't work, so it goes...).

An unexpected side benefit is that your recommendation also appears to have fixed another VERY obscure problem wherein the  static executable that includes cyassl (as well as other lib calls) no longer has the wrong instructions located at the locations the cyassl symbol references (but not for any of the other code...) in the loaded code (but *not* in the objdump -S listing of the same file as the one that is loaded).

Do you mind taking a quick sanity check of the following setup to see if there are other places we are making wrong assumptions on the ./configure setup?  I've just included extracts from the relevant Makefiles (there's a tree of included makefiles so these extracts come out of a couple of different files...)

CYASSL_CFLAGS = -gdwarf-3 -mabi=aapcs -march=armv7e-m -mthumb

CYASSL_CPPFLAGS = -DFREERTOS
CYASSL_CPPFLAGS += -DSINGLE_THREADED -DUSE_CERT_BUFFERS_1024
CYASSL_CPPFLAGS += -DBENCH_EMBEDDED -DNO_FILESYSTEM -DNO_WRITEV
CYASSL_CPPFLAGS += -DCYASSL_USER_IO -DNO_DEV_RANDOM
CYASSL_CPPFLAGS += -DSTM32F417xx -DUSE_HAL_DRIVER

CYASSL_EXTRA_INCLUDES = $(LWIP_API_INCLUDES) $(FREE_RTOS_API_INCLUDES)
CYASSL_EXTRA_INCLUDES += $(STM32F4_API_INCLUDES)

CYASSL_LDLIBS = -llwip
CYASSL_LDLIBS += -lfreertos
CYASSL_LDLIBS += -lstm32f4_sys

CYASSL_LDFLAGS = -specs=rdimon.specs -Wl,--start-group -lgcc  -lc -lm -lrdimon -Wl,--end-group 
CYASSL_LDFLAGS +=  -L$(LWIP_DIR)
CYASSL_LDFLAGS +=  -L$(FREE_RTOS_DIR)
CYASSL_LDFLAGS +=  -L$(STM32F4_SYS_DIR)

CYASSL_EXTRA_CONFIGURE_FLAGS ?=
CYASSL_EXTRA_CONFIGURE_FLAGS += CC=$(CC) AR=$(AR) LD=$(LD)

#(was...)
#CYASSL_EXTRA_CONFIGURE_FLAGS += CFLAGS="$(CYASSL_CFLAGS)" CPPFLAGS="$(CYASSL_CPPFLAGS) $(CYASSL_EXTRA_INCLUDES)"

#(is...)
CYASSL_EXTRA_CONFIGURE_FLAGS += C_EXTRA_FLAGS="$(CYASSL_CFLAGS)" CPPFLAGS="$(CYASSL_CPPFLAGS) $(CYASSL_EXTRA_INCLUDES)"

CYASSL_EXTRA_CONFIGURE_FLAGS += --host=$(XI_HOST)
CYASSL_EXTRA_CONFIGURE_FLAGS += LIBS="$(CYASSL_LDLIBS)"
CYASSL_EXTRA_CONFIGURE_FLAGS += LDFLAGS="$(CYASSL_LDFLAGS)"
CYASSL_EXTRA_CONFIGURE_FLAGS += --enable-shared=no

        ./configure \
        $(CYASSL_EXTRA_CONFIGURE_FLAGS) \
        --enable-sni \
        --enable-debug=yes \
        --enable-static=yes \
        --disable-examples \
        --disable-filesystem \
        --enable-ocsp \
        --disable-oldtls; )

With MUCH appreciation,
Steve.

Update:  I've confirmed that if I manually edit the generated makefile to remove the offending -ggdb and ensure the desired -gdwarf-3 is in place, I can work with the resulting lib.  However, since the automated build is within a much larger build and my issue only applies to a single configuration of many, my problem won't be solved until it can be addressed in the makefile that sets up and runs ./configure.  As before, all insight is appreciated and any solution will be applicable to all of us (I'm not the only one) who needs to debug with non-gdb debug info.  Thanks!

Greetings,

I need to build cyassl with dwarf-3 (not the default dwarf-4) debug information.

I've tried:
- including the -gdwarf-3 flag in my CFLAGS variable, with --enable-debug=yes, but it still includes dwarf-4 info which my debugger rejects.
- including the -gdwarf-3 flag in my CFLAGS variable, with --enable-debug=no, my debugger will run but there is no debug info for cyassl.
Similarly, if I leave the -gdwarf-3 flag off and if --enable-debug=yes, the debugger rejects it and if --enable-debug=no, the debugger will run it but with no debug info.

Obviously, one "solution" is to use a different debugger.  But that is not the solution to the problem for which I am requesting help.

How do I setup ./configure so that it will actually build with the -gdwarf-3 option (which works fine for all the rest of my code)?

Additional context:  Build is on linux as a small part of a much bigger project with both make-built parts and Windows IDE built parts, for cross compile to cortex-m4 (via arm-none-eabi-... on the linux side).  Debug in on Windows using a commercial IDE through STLink.

Thanks for any clues etc.

Steve.