<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Hi team,<br>
<p>Reference commit
<a class="moz-txt-link-freetext" href="https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/31735">https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/31735</a> :</p>
<p>In order to handle the multiple push-style event subscribers, bmc
needs to support the async resolution of the subscribers address.
The async_resolve() API crashes if there is no thread support in
the binary. </p>
<p>I created a bmcweb binary patch by pulling this commit and
including the pthread. This works fine for the use-cases, but
increased the bmcweb binary size by 220KB. </p>
Ed's suggestion is not to use the pthreads, instead implement
alternatives to do the same job, so that the binary size is kept
minimum. He mentioned: <i>"</i><i><span style="color: rgb(33, 33, 33); font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><span style="color: rgb(33, 33, 33); font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Considering that's a ~30% increase in binary size to support one line off code, and most systems are already at their binary size limit, no, that's not going to be acceptable. </span>We can either patch boost to use this
</span></i><i><a href="https://man7.org/linux/man-pages/man3/getaddrinfo_a.3.html" target="_blank" rel="noopener" style="border: 0px none; box-sizing: border-box; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; font-size: 14px; line-height: inherit; font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; margin: 0px; padding: 0px; vertical-align: baseline; color: var(--link-color); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; -webkit-text-stroke-width: 0px;">https://man7.org/linux/man-pages/man3/getaddrinfo_a.3.html</a></i><i><span style="color: rgb(33, 33, 33); font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"> or we could build our own resolver type that calls that underneath. This was based on a quick lookthrough of solutions in Google. I'm open to other ideas here". </span></i><br>
<p>I am looking for the community views about the increased bmcweb
binary size v/s having a custom implementation for asyc_resolve.
Please share your views & ideas to get to the best solution.<br>
</p>
<br>
Thanks & regards,<br>
Sunitha<br>
<p><br>
</p>
</body>
</html>