<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On May 10, 2019, at 18:42 , Chris Johns <<a href="mailto:chrisj@rtems.org" class="">chrisj@rtems.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On 10/5/19 10:27 pm, <a href="mailto:dufault@hda.com" class="">dufault@hda.com</a> wrote:<br class=""><blockquote type="cite" class=""><br class=""><br class=""><blockquote type="cite" class="">On May 10, 2019, at 08:07 , Sebastian Huber<br class=""><<a href="mailto:sebastian.huber@embedded-brains.de" class="">sebastian.huber@embedded-brains.de</a><br class=""><<a href="mailto:sebastian.huber@embedded-brains.de" class="">mailto:sebastian.huber@embedded-brains.de</a>>> wrote:<br class=""><br class="">On 10/05/2019 13:58, Gedare Bloom wrote:<br class=""><blockquote type="cite" class="">On Tue, May 7, 2019 at 5:03 AM Peter Dufault<<a href="mailto:dufault@hda.com" class="">dufault@hda.com</a><br class=""><<a href="mailto:dufault@hda.com" class="">mailto:dufault@hda.com</a>>>  wrote:<br class=""><blockquote type="cite" class="">What is best practice to change build behavior?  e.g. I need to use<br class="">--whole-archive/--no-whole-archive in one place but --gc-sections breaks it<br class="">and that's turned on for the BSP (xilinx_zynq_a9_qemu).<br class=""><br class="">I’ve done this in the .cfg files for the BSP:<br class=""><br class="">ifneq ($(RTEMS_GC_SECTIONS_DISABLE),1)<br class="">LDFLAGS_GC_SECTIONS_DISABLE = -Wl,--gc-sections<br class="">endif<br class=""><br class="">(...)<br class=""><br class="">LDFLAGS = $(LDFLAGS_GC_SECTIONS_DISABLE)<br class=""><br class="">and then I set RTEMS_GC_SECTIONS_DISABLE=1 in the one Makefile where I need<br class="">it.  I don’t see similar patterns, is this the way to do it?<br class=""><br class=""></blockquote>Historically a new BSP variant has been introduced when there needs to<br class="">be a change at this .cfg level. But, I could see a rationale to<br class="">include this kind of switching behavior at a higher level. Someone<br class="">might consider how to integrate it into our configure.ac/Makefile.am<br class="">black magic, but that is beyond me:).<br class=""><br class="">An alternative approach that may work from what you propose is to use<br class="">following in the xilinx zynq .cfg file:<br class="">LDFLAGS ?= -Wl, --gc-sections<br class="">then, you can provide own LDFLAGS = -Wl on your make command line or<br class="">in your Makefile, I think that would work bit more elegant<br class=""></blockquote><br class="">Nobody forces you to use -Wl, --gc-sections to link your application. For the<br class="">RTEMS tests and samples this shouldn't be an issue?<br class=""><br class=""></blockquote>My make pulls in those settings.  I think it is best to use the same settings<br class="">that the RTEMS tests and samples unless I have a good reason to change them,<br class="">e.g., I need —whole-archive in one application in one place.<br class=""><br class="">What do you recommend?  Where is an example to build from?<br class=""></blockquote><br class="">We do not have simple examples with documentation to support them. I receive a<br class="">stream of requests about building libdl applications and all I can do is point<br class="">user to the testsuite Makefile.am's.<br class=""><br class="">The Makefile.inc approach has a range of problems so adding documentation and<br class="">examples based on it is something I do not support. The approach I would like to<br class="">see happen is documented in <a href="https://devel.rtems.org/ticket/3302" class="">https://devel.rtems.org/ticket/3302</a>.<br class=""><br class="">You do not need to build applications with the exact same flags that the kernel<br class="">uses however you need to be careful in managing what you do use. As I state in<br class="">the ticket RTEMS Tools [1] and RTEMS Waf [2] both have support to filter the<br class="">CFLAGS into parts so you can manage what is used when building applications. I<br class="">would prefer this is formalised when exported by RTEMS rather than having to<br class="">have this fragile code which does break from time to time.<br class=""><br class="">Chris<br class=""><br class="">[1] <a href="https://git.rtems.org/rtems-tools/tree/rtemstoolkit/rld-cc.cpp#n79" class="">https://git.rtems.org/rtems-tools/tree/rtemstoolkit/rld-cc.cpp#n79</a><br class="">[2] <a href="https://git.rtems.org/rtems_waf/tree/rtems.py#n793" class="">https://git.rtems.org/rtems_waf/tree/rtems.py#n793</a><br class=""></div></div></blockquote><br class=""></div><div>I’ll make a summary and then move on to other items.  Thanks all, I’ve gotten what I need from the discussion.</div><div><br class=""></div><div>Gedare: I don’t like “?=“ in any complicated setting because you need to hunt around to make sure nothing has already over-ridden default behavior.  A “request” such as setting RTEMS_GC_SECTIONS_DISABLE=1 is globally clear as to what it is trying to be accomplish at a local level and harder to responsibly break.</div><div><br class=""></div><div>Sebastian: I still don’t understand what your comment suggests, I almost never feel forced to do anything.  When using a BSP I want to build with the settings used by the developer and that the tests are run on.  I don’t want to modify them much unless I need to.  In this case the standard settings break another flag. You don’t need to answer - this is not that important.</div><div><br class=""></div><div>Chris: Your response is appropriate for the -devel list and beyond where I want to go on this subject right now.  I’ll add the requirement that someone coming from a Makefile based build system must find it easy to get started with RTEMS and incorporate the libraries into their project without digging deeply into details.</div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 12px;">Peter<br class="">-----------------<br class="">Peter Dufault<br class="">HD Associates, Inc.      Software and System Engineering</span></font></div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br class=""></span></font></div>This email is delivered through the public internet using protocols subject to interception and tampering.</span></div></span></div></div></div></div></div></div></div></div></div>
</div>
<br class=""></body></html>