<div dir="ltr"><div><br></div><div>Thank you so much Heinz for such a detailed response. </div><div>It really helped me a lot.</div><div><br></div>As advised by you and Heinz, I changed the source to <a href="https://github.com/mritunjaysharma394/ptpd/archive/master.zip">https://github.com/mritunjaysharma394/ptpd/archive/master.zip</a><div>with suggested changes. However, I have encountered few bugs again related to autoreconf. </div><div>It looks somewhat like this: </div><div><br></div><div>+ autoreconf -i -v<br>autoreconf: Entering directory `.'<br>autoreconf: <a href="http://configure.ac">configure.ac</a>: not using Gettext<br>autoreconf: running: aclocal -I m4<br>autoreconf: <a href="http://configure.ac">configure.ac</a>: tracing<br>autoreconf: <a href="http://configure.ac">configure.ac</a>: creating directory build-aux<br>autoreconf: <a href="http://configure.ac">configure.ac</a>: not using Libtool<br>autoreconf: running: /home/mritunjay/development/rtems/5/bin/autoconf<br><a href="http://configure.ac:28">configure.ac:28</a>: error: possibly undefined macro: AC_PROG_LIBTOOL<br>      If this token and others are legitimate, please use m4_pattern_allow.<br>      See the Autoconf documentation.<br>autoreconf: /home/mritunjay/development/rtems/5/bin/autoconf failed with exit status: 1<br>shell cmd failed: /bin/sh -ex  /home/mritunjay/development/rtems/rsb/rtems/build/ptpd-master-arm-rtems5-1/do-build<br>error: building ptpd-master-arm-rtems5-1<br></div><div><br></div><div>I have attached the error report as well and changes in cfg files can be found here:</div><div><a href="https://github.com/mritunjaysharma394/rtems-source-builder/commit/6b6bb2b3bd778ebe56e9a1bf3aec1747b078fd39">https://github.com/mritunjaysharma394/rtems-source-builder/commit/6b6bb2b3bd778ebe56e9a1bf3aec1747b078fd39</a><br></div><div><br></div><div>Thanks,</div><div>Mritunjay</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 5, 2020 at 2:53 AM Gedare Bloom <<a href="mailto:gedare@rtems.org">gedare@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Jun 4, 2020 at 1:38 PM junkes <<a href="mailto:junkes@fhi-berlin.mpg.de" target="_blank">junkes@fhi-berlin.mpg.de</a>> wrote:<br>
><br>
> Hallo Mritunjay,<br>
><br>
> You can't just take the github ptpd sources and make them work in RTEMS. You have to make some configuration<br>
> and sources changes before you can build the with the rsb.<br>
><br>
> Some things like the sys/cpuset.h seems not to be fully compatible yet and so the configure simply makes<br>
> "wrong" decisions. E.g. defines HAVE_SYS_CPUSET_H = 1 as sys/cpuset.h exists.I played a little bit with it and reset<br>
> the definition in ptpd-master/src/ptpd.h  (quick and dirty) and could reduce the error messages because there is a query for<br>
> this variable in the code (src/dep/sys.c):<br>
><br>
> in ptpd.h after the include of the created configs :<br>
><br>
> ...<br>
> #ifdef HAVE_CONFIG_H<br>
> # include <config.h><br>
> #endif /* HAVE_CONFIG_H */<br>
><br>
> #undef HAVE_NTP_GETTIME<br>
> #undef HAVE_SYS_CPUSET_H<br>
><br>
> #ifdef linux<br>
> ...<br>
><br>
> in src/dep/sys.c<br>
><br>
> ...<br>
> #ifdef HAVE_SYS_CPUSET_H<br>
>        cpuset_t mask;<br>
>        CPU_ZERO(&mask);<br>
>        if(cpu >= 0) {<br>
>            CPU_SET(cpu,&mask);<br>
>        } else {<br>
>                int i;<br>
>                for(i = 0;  i < CPU_SETSIZE; i++) {<br>
>                        CPU_SET(i, &mask);<br>
>                }<br>
>        }<br>
>        return(cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID,<br>
>                              -1, sizeof(mask), &mask));<br>
> #endif /* HAVE_SYS_CPUSET_H */<br>
><br>
> In src/dep/constants_dep.h  one can find:<br>
><br>
> * platform dependent */<br>
><br>
> #if !defined(linux) && !defined(__NetBSD__) && !defined(__FreeBSD__) && \<br>
> !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__sun) && !defined(__QNXNTO__)<br>
> #error PTPD hasn't been ported to this OS - should be possible \<br>
> if it's POSIX compatible, if you succeed, report it to <a href="mailto:ptpd-devel@sourceforge.net" target="_blank">ptpd-devel@sourceforge.net</a><br>
> #endif<br>
><br>
> here I added "&& !defined(__rtems__)<br>
><br>
> and here:<br>
> ...<br>
> #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__sun) || defined(__QNXNTO__) || defined(__rtems__)<br>
> # include <sys/types.h><br>
> # include <sys/socket.h><br>
> #ifdef HAVE_SYS_SOCKIO_H<br>
> #include <sys/sockio.h><br>
> #endif /* HAVE_SYS_SOCKIO_H */<br>
> # include <netinet/in.h><br>
> # include <net/if.h><br>
> # include <net/if_dl.h><br>
> # include <net/if_types.h><br>
> #ifdef HAVE_NET_IF_ETHER_H<br>
> #  include <net/if_ether.h><br>
> ...<br>
><br>
> and so on... You'd have to bite through it once and then you will surely get it compiled.<br>
><br>
Great start Heinz! Mritunjay, I think this definitely the way forward.<br>
Later, you might try to circle back and fix the hacks in nicer ways by<br>
learning how to make the autoconf stuff work correctly, and contribute<br>
those fixes back upstream to ptpd project.<br>
<br>
> HTH Heinz<br>
><br>
><br>
><br>
> On 2020-06-04 20:29, Mritunjay Sharma wrote:<br>
><br>
><br>
><br>
> On Thu, Jun 4, 2020 at 11:07 PM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>> wrote:<br>
><br>
> On 04/06/2020 16:22, Gedare Bloom wrote:<br>
><br>
> >>> In the github version this code is conditional on sys/cpuset.h being present.<br>
> >>><br>
> > Well, we do have a sys/cpuset.h in newlib. It doesn't have these BSD<br>
> > definitions though. Probably either:<br>
> > 1. Add more stuff to sys/cpuset.h to make it support BSDisms. This<br>
> > would mean adding cpuset_setaffinity support in rtems, I guess.<br>
> > 2. Figure out how to disable the conditional code using the<br>
> > cpuset_setaffinity function.<br>
> The <sys/cpuset.h> is already as compatible as possible to glibc and<br>
> FreeBSD. There is always room for improvement, however, in this area it<br>
> will be difficult.<br>
><br>
><br>
> Please it would be kind of you all to guide on what is the best thing I can do next. It is looking<br>
> a little difficult. If something similar has been done earlier, sharing it can be a lot helpful to take a cue.<br>
><br>
> Mritunjay<br>
><br>
> _______________________________________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
><br>
><br>
> _______________________________________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div>